refactor(:lang): move tree-sitter init

Moved add-hook calls (for tree-sitter initialization) into their
respective modes' config blocks, or nearby, to be consistent with how
other, similar tools (like lsp!) are initialized, and does so at
runtime, rather than at expansion/compile time, which eval-when! caused.
This commit is contained in:
Henrik Lissner 2022-07-25 17:34:44 +02:00
parent 26b8383cbd
commit a70e634ebd
No known key found for this signature in database
GPG key ID: B60957CA074D39A3
22 changed files with 81 additions and 96 deletions

View file

@ -10,6 +10,12 @@
(after! agda2-mode (after! agda2-mode
(set-lookup-handlers! 'agda2-mode (set-lookup-handlers! 'agda2-mode
:definition #'agda2-goto-definition-keyboard) :definition #'agda2-goto-definition-keyboard)
(when (featurep! +tree-sitter)
(add-hook! '(agda-mode-local-vars-hook
agda2-mode-local-vars-hook)
:append #'tree-sitter!))
(map! :map agda2-mode-map (map! :map agda2-mode-map
:localleader :localleader
"?" #'agda2-show-goals "?" #'agda2-show-goals
@ -38,9 +44,3 @@
"h" #'agda2-display-implicit-arguments "h" #'agda2-display-implicit-arguments
"q" #'agda2-quit "q" #'agda2-quit
"r" #'agda2-restart))) "r" #'agda2-restart)))
;; Tree Sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! '(agda-mode-local-vars-hook
agda2-mode-local-vars-hook)
#'tree-sitter!))

View file

@ -67,6 +67,11 @@ This is ignored by ccls.")
:return "return" :return "return"
:yield "#require") :yield "#require")
(when (featurep! +tree-sitter)
(add-hook! '(c-mode-local-vars-hook
c++-mode-local-vars-hook)
:append #'tree-sitter!))
;; HACK Suppress 'Args out of range' error in when multiple modifications are ;; HACK Suppress 'Args out of range' error in when multiple modifications are
;; performed at once in a `c++-mode' buffer, e.g. with `iedit' or ;; performed at once in a `c++-mode' buffer, e.g. with `iedit' or
;; multiple cursors. ;; multiple cursors.
@ -304,9 +309,3 @@ If rtags or rdm aren't available, fail silently instead of throwing a breaking e
"-isystem/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include" "-isystem/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include"
"-isystem/usr/local/include"] "-isystem/usr/local/include"]
:resourceDir (cdr (doom-call-process "clang" "-print-resource-dir")))))))) :resourceDir (cdr (doom-call-process "clang" "-print-resource-dir"))))))))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! '(c-mode-local-vars-hook
c++-mode-local-vars-hook)
#'tree-sitter!))

View file

@ -35,6 +35,9 @@
(when (featurep! +lsp) (when (featurep! +lsp)
(add-hook 'csharp-mode-local-vars-hook #'lsp! 'append)) (add-hook 'csharp-mode-local-vars-hook #'lsp! 'append))
(when (featurep! +tree-sitter)
(add-hook 'csharp-mode-local-vars-hook #'tree-sitter! 'append))
(defadvice! +csharp-disable-clear-string-fences-a (fn &rest args) (defadvice! +csharp-disable-clear-string-fences-a (fn &rest args)
"This turns off `c-clear-string-fences' for `csharp-mode'. When "This turns off `c-clear-string-fences' for `csharp-mode'. When
on for `csharp-mode' font lock breaks after an interpolated string on for `csharp-mode' font lock breaks after an interpolated string
@ -72,7 +75,3 @@ or terminating simple string."
(use-package! sln-mode :mode "\\.sln\\'") (use-package! sln-mode :mode "\\.sln\\'")
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'csharp-mode-local-vars-hook #'tree-sitter!))

View file

@ -41,6 +41,9 @@
(after! lsp-mode (after! lsp-mode
(add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]_build\\'"))) (add-to-list 'lsp-file-watch-ignored-directories "[/\\\\]_build\\'")))
(when (featurep! +tree-sitter)
(add-hook 'elixir-mode-local-vars-hook #'tree-sitter! 'append))
(after! highlight-numbers (after! highlight-numbers
(puthash 'elixir-mode (puthash 'elixir-mode
"\\_<-?[[:digit:]]+\\(?:_[[:digit:]]\\{3\\}\\)*\\_>" "\\_<-?[[:digit:]]+\\(?:_[[:digit:]]\\{3\\}\\)*\\_>"
@ -99,6 +102,3 @@
"T" #'exunit-toggle-file-and-test "T" #'exunit-toggle-file-and-test
"t" #'exunit-toggle-file-and-test-other-window "t" #'exunit-toggle-file-and-test-other-window
"s" #'exunit-verify-single)) "s" #'exunit-verify-single))
(eval-when! (featurep! +tree-sitter)
(add-hook! 'elixir-mode-local-vars-hook #'tree-sitter!))

View file

@ -4,6 +4,9 @@
(if (featurep! +lsp) (if (featurep! +lsp)
(add-hook 'elm-mode-local-vars-hook #'lsp! 'append) (add-hook 'elm-mode-local-vars-hook #'lsp! 'append)
(set-company-backend! 'elm-mode 'company-elm)) (set-company-backend! 'elm-mode 'company-elm))
(when (featurep! +tree-sitter)
(add-hook 'elm-mode-local-vars-hook #'tree-sitter! 'append))
(set-repl-handler! 'elm-mode #'run-elm-interactive) (set-repl-handler! 'elm-mode #'run-elm-interactive)
(set-ligatures! 'elm-mode (set-ligatures! 'elm-mode
@ -21,7 +24,3 @@
:when (featurep! :checkers syntax) :when (featurep! :checkers syntax)
:after elm-mode :after elm-mode
:config (add-to-list 'flycheck-checkers 'elm)) :config (add-to-list 'flycheck-checkers 'elm))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'elm-mode-local-vars-hook #'tree-sitter!))

View file

@ -23,6 +23,9 @@
(add-hook 'go-mode-local-vars-hook #'lsp! 'append) (add-hook 'go-mode-local-vars-hook #'lsp! 'append)
(add-hook 'go-mode-hook #'go-eldoc-setup)) (add-hook 'go-mode-hook #'go-eldoc-setup))
(when (featurep! +tree-sitter)
(add-hook 'go-mode-local-vars-hook #'tree-sitter! 'append))
(map! :map go-mode-map (map! :map go-mode-map
:localleader :localleader
"a" #'go-tag-add "a" #'go-tag-add
@ -76,7 +79,3 @@
(use-package! flycheck-golangci-lint (use-package! flycheck-golangci-lint
:when (featurep! :checkers syntax) :when (featurep! :checkers syntax)
:hook (go-mode . flycheck-golangci-lint-setup)) :hook (go-mode . flycheck-golangci-lint-setup))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'go-mode-local-vars-hook #'tree-sitter!))

View file

@ -30,6 +30,9 @@ If the depth is 2, the first two directories are removed: net.lissner.game.")
((featurep! :tools lsp +eglot)) ((featurep! :tools lsp +eglot))
((featurep! +lsp) (load! "+lsp"))) ((featurep! +lsp) (load! "+lsp")))
(when (featurep! +tree-sitter)
(add-hook 'java-mode-local-vars-hook #'tree-sitter! 'append))
;; ;;
;;; Common packages ;;; Common packages
@ -49,7 +52,3 @@ If the depth is 2, the first two directories are removed: net.lissner.game.")
(set-docsets! 'groovy-mode "Groovy" "Groovy_JDK") (set-docsets! 'groovy-mode "Groovy" "Groovy_JDK")
(set-eval-handler! 'groovy-mode "groovy") (set-eval-handler! 'groovy-mode "groovy")
(set-repl-handler! 'groovy-mode #'+java/open-groovy-repl)) (set-repl-handler! 'groovy-mode #'+java/open-groovy-repl))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'java-mode-local-vars-hook #'tree-sitter!))

View file

@ -166,6 +166,13 @@
;; ;;
;;; Tools ;;; Tools
(when (featurep! +tree-sitter)
(add-hook! '(js2-mode-local-vars-hook
typescript-mode-local-vars-hook
typescript-tsx-mode-local-vars-hook
rjsx-mode-local-vars-hook)
:append #'tree-sitter!))
(add-hook! '(typescript-mode-local-vars-hook (add-hook! '(typescript-mode-local-vars-hook
typescript-tsx-mode-local-vars-hook typescript-tsx-mode-local-vars-hook
web-mode-local-vars-hook web-mode-local-vars-hook
@ -320,12 +327,3 @@ to tide."
(def-project-mode! +javascript-gulp-mode (def-project-mode! +javascript-gulp-mode
:when (locate-dominating-file default-directory "gulpfile.js")) :when (locate-dominating-file default-directory "gulpfile.js"))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! '(js-mode-local-vars-hook
js2-mode-local-vars-hook
typescript-mode-local-vars-hook
typescript-tsx-mode-local-vars-hook
rjsx-mode-local-vars-hook)
#'tree-sitter!))

View file

@ -5,6 +5,10 @@
:init :init
(when (featurep! +lsp) (when (featurep! +lsp)
(add-hook 'json-mode-local-vars-hook #'lsp! 'append)) (add-hook 'json-mode-local-vars-hook #'lsp! 'append))
(when (featurep! +tree-sitter)
(add-hook! '(json-mode-local-vars-hook
jsonc-mode-local-vars-hook)
:append #'tree-sitter!))
:config :config
(set-electric! 'json-mode :chars '(?\n ?: ?{ ?})) (set-electric! 'json-mode :chars '(?\n ?: ?{ ?}))
@ -29,8 +33,3 @@
:map json-mode-map :map json-mode-map
:localleader :localleader
"s" #'counsel-jq)) "s" #'counsel-jq))
(eval-when! (featurep! +tree-sitter)
(add-hook! '(json-mode-local-vars-hook
jsonc-mode-local-vars-hook)
#'tree-sitter!))

View file

@ -5,6 +5,12 @@
:config :config
(set-repl-handler! 'julia-mode #'+julia/open-repl) (set-repl-handler! 'julia-mode #'+julia/open-repl)
(when (featurep! +lsp)
(add-hook 'julia-mode-local-vars-hook #'lsp! 'append))
(when (featurep! +tree-sitter)
(add-hook 'julia-mode-local-vars-hook #'tree-sitter! 'append))
;; Borrow matlab.el's fontification of math operators. From ;; Borrow matlab.el's fontification of math operators. From
;; <https://web.archive.org/web/20170326183805/https://ogbe.net/emacsconfig.html> ;; <https://web.archive.org/web/20170326183805/https://ogbe.net/emacsconfig.html>
(dolist (mode '(julia-mode ess-julia-mode)) (dolist (mode '(julia-mode ess-julia-mode))
@ -65,10 +71,6 @@
(term-set-escape-char ?\C-c))) (term-set-escape-char ?\C-c)))
(when (featurep! +lsp)
(add-hook 'julia-mode-local-vars-hook #'lsp! 'append))
(use-package! lsp-julia (use-package! lsp-julia
:when (featurep! +lsp) :when (featurep! +lsp)
:unless (featurep! :tools lsp +eglot) :unless (featurep! :tools lsp +eglot)
@ -94,7 +96,3 @@
;; Prevent timeout while installing LanguageServer.jl ;; Prevent timeout while installing LanguageServer.jl
(setq-hook! 'julia-mode-hook eglot-connect-timeout (max eglot-connect-timeout 60)) (setq-hook! 'julia-mode-hook eglot-connect-timeout (max eglot-connect-timeout 60))
:config (eglot-jl-init)) :config (eglot-jl-init))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'julia-mode-local-vars-hook #'tree-sitter!))

View file

@ -31,6 +31,8 @@
(when (featurep! +lsp) (when (featurep! +lsp)
(add-hook 'nix-mode-local-vars-hook #'lsp! 'append)) (add-hook 'nix-mode-local-vars-hook #'lsp! 'append))
(when (featurep! +tree-sitter)
(add-hook 'nix-mode-local-vars-hook #'tree-sitter! 'append))
(map! :localleader (map! :localleader
:map nix-mode-map :map nix-mode-map
@ -42,15 +44,14 @@
"u" #'nix-unpack "u" #'nix-unpack
"o" #'+nix/lookup-option)) "o" #'+nix/lookup-option))
(use-package! nix-drv-mode (use-package! nix-drv-mode
:mode "\\.drv\\'") :mode "\\.drv\\'")
(use-package! nix-update (use-package! nix-update
:commands nix-update-fetch) :commands nix-update-fetch)
(use-package! nix-repl (use-package! nix-repl
:commands nix-repl-show) :commands nix-repl-show)
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'nix-mode-local-vars-hook #'tree-sitter!))

View file

@ -60,6 +60,9 @@
(setq lsp-clients-php-server-command "php-language-server.php")) (setq lsp-clients-php-server-command "php-language-server.php"))
(add-hook 'php-mode-local-vars-hook #'lsp! 'append)) (add-hook 'php-mode-local-vars-hook #'lsp! 'append))
(when (featurep! +tree-sitter)
(add-hook 'php-mode-local-vars-hook #'tree-sitter! 'append))
;; Use the smallest `sp-max-pair-length' for optimum `smartparens' performance ;; Use the smallest `sp-max-pair-length' for optimum `smartparens' performance
(setq-hook! 'php-mode-hook sp-max-pair-length 5) (setq-hook! 'php-mode-hook sp-max-pair-length 5)
@ -176,7 +179,3 @@
:on-exit :on-exit
(setq phpunit-args nil (setq phpunit-args nil
phpunit-executable nil)) phpunit-executable nil))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'php-mode-local-vars-hook #'tree-sitter!))

View file

@ -25,6 +25,9 @@
;; Use "mspyls" in eglot if in PATH ;; Use "mspyls" in eglot if in PATH
(when (executable-find "Microsoft.Python.LanguageServer") (when (executable-find "Microsoft.Python.LanguageServer")
(set-eglot-client! 'python-mode '("Microsoft.Python.LanguageServer")))) (set-eglot-client! 'python-mode '("Microsoft.Python.LanguageServer"))))
(when (featurep! +tree-sitter)
(add-hook 'python-mode-local-vars-hook #'tree-sitter! 'append))
:config :config
(set-repl-handler! 'python-mode #'+python/open-repl (set-repl-handler! 'python-mode #'+python/open-repl
:persist t :persist t
@ -428,7 +431,3 @@
(use-package! lsp-pyright (use-package! lsp-pyright
:when (featurep! +pyright) :when (featurep! +pyright)
:after lsp-mode)) :after lsp-mode))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'python-mode-local-vars-hook #'tree-sitter!))

View file

@ -21,6 +21,9 @@
(when (featurep! +lsp) (when (featurep! +lsp)
(add-hook 'ruby-mode-local-vars-hook #'lsp! 'append)) (add-hook 'ruby-mode-local-vars-hook #'lsp! 'append))
(when (featurep! +tree-sitter)
(add-hook 'ruby-mode-local-vars-hook #'tree-sitter! 'append))
(after! inf-ruby (after! inf-ruby
(add-hook 'inf-ruby-mode-hook #'doom-mark-buffer-as-real-h) (add-hook 'inf-ruby-mode-hook #'doom-mark-buffer-as-real-h)
;; switch to inf-ruby from compile if we detect a breakpoint has been hit ;; switch to inf-ruby from compile if we detect a breakpoint has been hit
@ -195,7 +198,3 @@
(map! :localleader (map! :localleader
:map projectile-rails-mode-map :map projectile-rails-mode-map
"r" #'projectile-rails-command-map)) "r" #'projectile-rails-command-map))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'ruby-mode-local-vars-hook #'tree-sitter!))

View file

@ -48,6 +48,9 @@
'lsp-mode)) 'lsp-mode))
(add-hook 'rustic-mode-local-vars-hook #'rustic-setup-lsp 'append)) (add-hook 'rustic-mode-local-vars-hook #'rustic-setup-lsp 'append))
(when (featurep! +tree-sitter)
(add-hook 'rustic-mode-local-vars-hook #'tree-sitter! 'append))
;; HACK If lsp/eglot isn't available, it attempts to install lsp-mode via ;; HACK If lsp/eglot isn't available, it attempts to install lsp-mode via
;; package.el. Doom manages its own dependencies through straight so disable ;; package.el. Doom manages its own dependencies through straight so disable
;; this behavior to avoid package-not-initialized errors. ;; this behavior to avoid package-not-initialized errors.
@ -81,7 +84,3 @@
(set-lookup-handlers! 'rustic-mode (set-lookup-handlers! 'rustic-mode
:definition '(racer-find-definition :async t) :definition '(racer-find-definition :async t)
:documentation '+rust-racer-lookup-documentation)) :documentation '+rust-racer-lookup-documentation))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'rustic-mode-local-vars-hook #'tree-sitter!))

View file

@ -19,6 +19,9 @@
(setq-hook! 'scala-mode-hook lsp-enable-indentation nil) (setq-hook! 'scala-mode-hook lsp-enable-indentation nil)
(add-hook 'scala-mode-local-vars-hook #'lsp! 'append)) (add-hook 'scala-mode-local-vars-hook #'lsp! 'append))
(when (featurep! +tree-sitter)
(add-hook 'scala-mode-local-vars-hook #'tree-sitter! 'append))
(set-ligatures! 'scala-mode (set-ligatures! 'scala-mode
;; Functional ;; Functional
:def "def" :def "def"
@ -50,7 +53,3 @@
(use-package! sbt-mode (use-package! sbt-mode
:after scala-mode :after scala-mode
:config (set-repl-handler! 'scala-mode #'+scala/open-repl :persist t)) :config (set-repl-handler! 'scala-mode #'+scala/open-repl :persist t))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'scala-mode-local-vars-hook #'tree-sitter!))

View file

@ -40,6 +40,9 @@
(when (featurep! +lsp) (when (featurep! +lsp)
(add-hook 'sh-mode-local-vars-hook #'lsp! 'append)) (add-hook 'sh-mode-local-vars-hook #'lsp! 'append))
(when (featurep! +tree-sitter)
(add-hook 'sh-mode-local-vars-hook #'tree-sitter! 'append))
(setq sh-indent-after-continuation 'always) (setq sh-indent-after-continuation 'always)
;; [pedantry intensifies] ;; [pedantry intensifies]
@ -93,7 +96,3 @@
:config :config
(when (featurep! +lsp) (when (featurep! +lsp)
(add-hook 'powershell-mode-local-vars-hook #'lsp! 'append))) (add-hook 'powershell-mode-local-vars-hook #'lsp! 'append)))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'sh-mode-local-vars-hook #'tree-sitter!))

View file

@ -1,7 +1,10 @@
;;; lang/swift/config.el -*- lexical-binding: t; -*- ;;; lang/swift/config.el -*- lexical-binding: t; -*-
(after! swift-mode (after! swift-mode
(set-repl-handler! 'swift-mode #'run-swift)) (set-repl-handler! 'swift-mode #'run-swift)
(when (featurep! +tree-sitter)
(add-hook 'swift-mode-local-vars-hook #'tree-sitter! 'append)))
(use-package! flycheck-swift (use-package! flycheck-swift
@ -31,7 +34,3 @@
"sourcekit" "sourcekit"
"/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/sourcekit-lsp" "/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/sourcekit-lsp"
"/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/sourcekit")))) "/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/sourcekit"))))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! 'swift-mode-local-vars-hook #'tree-sitter!))

View file

@ -77,3 +77,6 @@ If set to `nil', disable all the above behaviors.")
sass-mode-local-vars-hook sass-mode-local-vars-hook
less-css-mode-local-vars-hook) less-css-mode-local-vars-hook)
#'lsp!)) #'lsp!))
(when (featurep! +tree-sitter)
(add-hook 'css-mode-local-vars-hook #'tree-sitter! 'append))

View file

@ -168,3 +168,8 @@
web-mode-local-vars-hook web-mode-local-vars-hook
nxml-mode-local-vars-hook) nxml-mode-local-vars-hook)
#'lsp!)) #'lsp!))
(when (featurep! +tree-sitter)
(add-hook! '(html-mode-local-vars-hook
mhtml-mode-local-vars-hook)
:append #'tree-sitter!))

View file

@ -55,10 +55,3 @@
(def-project-mode! +web-phaser-mode (def-project-mode! +web-phaser-mode
:modes '(+javascript-npm-mode) :modes '(+javascript-npm-mode)
:when (+javascript-npm-dep-p '(or phaser phaser-ce)))) :when (+javascript-npm-dep-p '(or phaser phaser-ce))))
;; Tree sitter
(eval-when! (featurep! +tree-sitter)
(add-hook! '(html-mode-local-vars-hook
mhtml-mode-local-vars-hook
css-mode-local-vars-hook)
#'tree-sitter!))

View file

@ -15,6 +15,9 @@
(when (featurep! +lsp) (when (featurep! +lsp)
(add-hook 'zig-mode-local-vars-hook #'lsp! 'append)) (add-hook 'zig-mode-local-vars-hook #'lsp! 'append))
(when (featurep! +tree-sitter)
(add-hook 'zig-mode-local-vars-hook #'tree-sitter! 'append))
(when (featurep! :checkers syntax) (when (featurep! :checkers syntax)
(flycheck-define-checker zig (flycheck-define-checker zig
"A zig syntax checker using zig's `ast-check` command." "A zig syntax checker using zig's `ast-check` command."
@ -30,6 +33,3 @@
"f" #'zig-format-buffer "f" #'zig-format-buffer
"r" #'zig-run "r" #'zig-run
"t" #'zig-test-buffer)) "t" #'zig-test-buffer))
(eval-when! (featurep! +tree-sitter)
(add-hook! 'zig-mode-local-vars-hook #'tree-sitter!))