doomemacs/modules/lang/swift/config.el
Jeetaditya Chatterjee 06ed5ade3f
refactor!(tree-sitter): add +tree-sitter flag
BREAKING CHANGE: break the global nature of the tree sitter
module by adding a +tree-sitter flag to every applicable module

In the background this hooks turn-on-tree-sitter-mode
to the major-mode-hook of the language.
This may also solve the eager loading of tree sitter
2022-05-22 21:26:00 +01:00

37 lines
1.2 KiB
EmacsLisp

;;; lang/swift/config.el -*- lexical-binding: t; -*-
(after! swift-mode
(set-repl-handler! 'swift-mode #'run-swift))
(use-package! flycheck-swift
:when (featurep! :checkers syntax)
:unless (featurep! +lsp)
:after swift-mode
:config (flycheck-swift-setup))
(use-package! company-sourcekit
:when (featurep! :completion company)
:unless (featurep! +lsp)
:after swift-mode
:config
(set-company-backend! 'swift-mode '(company-sourcekit company-yasnippet)))
(use-package! lsp-sourcekit
:when (featurep! +lsp)
:after swift-mode
:init (add-hook 'swift-mode-local-vars-hook #'lsp! 'append)
:config
(setq lsp-sourcekit-executable
(cl-find-if #'executable-find
(list lsp-sourcekit-executable ; 'sourcekit-lsp' by default
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/sourcekit-lsp"
"sourcekit"
"/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/sourcekit-lsp"
"/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/sourcekit"))))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'swift-mode-hook #'turn-on-tree-sitter-mode))