From 06ed5ade3f30a2ac5039f127635114f13b582698 Mon Sep 17 00:00:00 2001 From: Jeetaditya Chatterjee Date: Tue, 19 Oct 2021 01:54:17 +0100 Subject: [PATCH] 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 --- modules/lang/agda/config.el | 5 +++++ modules/lang/cc/config.el | 5 +++++ modules/lang/csharp/config.el | 4 ++++ modules/lang/elm/config.el | 4 ++++ modules/lang/go/config.el | 4 ++++ modules/lang/java/config.el | 4 ++++ modules/lang/javascript/config.el | 9 +++++++++ modules/lang/json/config.el | 4 ++++ modules/lang/julia/config.el | 4 ++++ modules/lang/ocaml/config.el | 4 ++++ modules/lang/php/config.el | 4 ++++ modules/lang/python/config.el | 4 ++++ modules/lang/ruby/config.el | 4 ++++ modules/lang/rust/config.el | 4 ++++ modules/lang/scala/config.el | 4 ++++ modules/lang/sh/config.el | 28 ++++++++++++++++------------ modules/lang/swift/config.el | 4 ++++ modules/lang/web/config.el | 6 ++++++ 18 files changed, 93 insertions(+), 12 deletions(-) diff --git a/modules/lang/agda/config.el b/modules/lang/agda/config.el index 212a9b5e1..97f107625 100644 --- a/modules/lang/agda/config.el +++ b/modules/lang/agda/config.el @@ -38,3 +38,8 @@ "h" #'agda2-display-implicit-arguments "q" #'agda2-quit "r" #'agda2-restart))) + +;; Tree Sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! '(agda-mode + agda2-mode) #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/cc/config.el b/modules/lang/cc/config.el index f6ff67a0b..7d35a4d40 100644 --- a/modules/lang/cc/config.el +++ b/modules/lang/cc/config.el @@ -304,3 +304,8 @@ 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/usr/local/include"] :resourceDir (cdr (doom-call-process "clang" "-print-resource-dir")))))))) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! '(c-mode-hook + c++-mode-hook) #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/csharp/config.el b/modules/lang/csharp/config.el index 4da8c94a3..367169547 100644 --- a/modules/lang/csharp/config.el +++ b/modules/lang/csharp/config.el @@ -72,3 +72,7 @@ or terminating simple string." (use-package! sln-mode :mode "\\.sln\\'") + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! 'csharp-mode-hook #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/elm/config.el b/modules/lang/elm/config.el index 42b03352a..4a8c2697e 100644 --- a/modules/lang/elm/config.el +++ b/modules/lang/elm/config.el @@ -21,3 +21,7 @@ :when (featurep! :checkers syntax) :after elm-mode :config (add-to-list 'flycheck-checkers 'elm)) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! 'elm-mode-hook #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/go/config.el b/modules/lang/go/config.el index dd97318d8..dca231476 100644 --- a/modules/lang/go/config.el +++ b/modules/lang/go/config.el @@ -76,3 +76,7 @@ (use-package! flycheck-golangci-lint :when (featurep! :checkers syntax) :hook (go-mode . flycheck-golangci-lint-setup)) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! 'go-mode-hook #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/java/config.el b/modules/lang/java/config.el index 1c6c8bac7..8955bb5c1 100644 --- a/modules/lang/java/config.el +++ b/modules/lang/java/config.el @@ -49,3 +49,7 @@ If the depth is 2, the first two directories are removed: net.lissner.game.") (set-docsets! 'groovy-mode "Groovy" "Groovy_JDK") (set-eval-handler! 'groovy-mode "groovy") (set-repl-handler! 'groovy-mode #'+java/open-groovy-repl)) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! 'java-mode-hook #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/javascript/config.el b/modules/lang/javascript/config.el index 6f3c13f6c..6aa94a7c2 100644 --- a/modules/lang/javascript/config.el +++ b/modules/lang/javascript/config.el @@ -311,3 +311,12 @@ to tide." (def-project-mode! +javascript-gulp-mode :when (locate-dominating-file default-directory "gulpfile.js")) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! '(javascript-mode-hook + js-mode-hook + js2-mode-hook + js3-mode-hook + typescript-mode-hook + rjsx-mode) #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/json/config.el b/modules/lang/json/config.el index b96221d11..303f2345a 100644 --- a/modules/lang/json/config.el +++ b/modules/lang/json/config.el @@ -29,3 +29,7 @@ :map json-mode-map :localleader "s" #'counsel-jq)) + +(eval-when! (featurep! +tree-sitter) + (add-hook! '(json-mode + jsonc-mode) #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/julia/config.el b/modules/lang/julia/config.el index d97811284..b69459f80 100644 --- a/modules/lang/julia/config.el +++ b/modules/lang/julia/config.el @@ -99,3 +99,7 @@ ;; Prevent timeout while installing LanguageServer.jl (setq-hook! 'julia-mode-hook eglot-connect-timeout (max eglot-connect-timeout 60)) :config (eglot-jl-init)) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! 'julia-mode-hook #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/ocaml/config.el b/modules/lang/ocaml/config.el index 696aa9822..7eaaaf0e6 100644 --- a/modules/lang/ocaml/config.el +++ b/modules/lang/ocaml/config.el @@ -118,3 +118,7 @@ ((equal ext ".eliomi") (setq-local ocamlformat-file-kind 'interface))))) (setq +format-with 'ocamlformat)))) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! 'tuareg-mode-hook #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/php/config.el b/modules/lang/php/config.el index 8eb917f63..406cc39fd 100644 --- a/modules/lang/php/config.el +++ b/modules/lang/php/config.el @@ -176,3 +176,7 @@ :on-exit (setq phpunit-args nil phpunit-executable nil)) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! #'php-mode-hook #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/python/config.el b/modules/lang/python/config.el index d7932e2ba..2b5273a76 100644 --- a/modules/lang/python/config.el +++ b/modules/lang/python/config.el @@ -345,3 +345,7 @@ (use-package! lsp-pyright :when (featurep! +pyright) :after lsp-mode)) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! 'python-mode-hook #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/ruby/config.el b/modules/lang/ruby/config.el index c39686e1b..0e1121d42 100644 --- a/modules/lang/ruby/config.el +++ b/modules/lang/ruby/config.el @@ -195,3 +195,7 @@ (map! :localleader :map projectile-rails-mode-map "r" #'projectile-rails-command-map)) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! 'ruby-mode-hook #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/rust/config.el b/modules/lang/rust/config.el index b9971ad85..b97fb20e3 100644 --- a/modules/lang/rust/config.el +++ b/modules/lang/rust/config.el @@ -81,3 +81,7 @@ (set-lookup-handlers! 'rustic-mode :definition '(racer-find-definition :async t) :documentation '+rust-racer-lookup-documentation)) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! 'rustic-mode-hook #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/scala/config.el b/modules/lang/scala/config.el index 470eb0dcc..27864a264 100644 --- a/modules/lang/scala/config.el +++ b/modules/lang/scala/config.el @@ -50,3 +50,7 @@ (use-package! sbt-mode :after scala-mode :config (set-repl-handler! 'scala-mode #'+scala/open-repl :persist t)) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! 'scala-mode-hook #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/sh/config.el b/modules/lang/sh/config.el index 16e23a610..a1de74ca4 100755 --- a/modules/lang/sh/config.el +++ b/modules/lang/sh/config.el @@ -24,18 +24,18 @@ (set-repl-handler! 'sh-mode #'+sh/open-repl) (set-lookup-handlers! 'sh-mode :documentation #'+sh-lookup-documentation-handler) (set-ligatures! 'sh-mode - ;; Functional - :def "function" - ;; Types - :true "true" :false "false" - ;; Flow - :not "!" - :and "&&" :or "||" - :in "in" - :for "for" - :return "return" - ;; Other - :dot "." :dot "source") + ;; Functional + :def "function" + ;; Types + :true "true" :false "false" + ;; Flow + :not "!" + :and "&&" :or "||" + :in "in" + :for "for" + :return "return" + ;; Other + :dot "." :dot "source") (when (featurep! +lsp) (add-hook 'sh-mode-local-vars-hook #'lsp! 'append)) @@ -93,3 +93,7 @@ :config (when (featurep! +lsp) (add-hook 'powershell-mode-local-vars-hook #'lsp! 'append))) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! 'sh-mode-hook #'turn-on-tree-sitter-mode)) diff --git a/modules/lang/swift/config.el b/modules/lang/swift/config.el index dc0fc6074..b349ec022 100644 --- a/modules/lang/swift/config.el +++ b/modules/lang/swift/config.el @@ -31,3 +31,7 @@ "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)) diff --git a/modules/lang/web/config.el b/modules/lang/web/config.el index 2185048c0..a40fe6010 100644 --- a/modules/lang/web/config.el +++ b/modules/lang/web/config.el @@ -55,3 +55,9 @@ (def-project-mode! +web-phaser-mode :modes '(+javascript-npm-mode) :when (+javascript-npm-dep-p '(or phaser phaser-ce)))) + +;; Tree sitter +(eval-when! (featurep! +tree-sitter) + (add-hook! '(html-mode-hook + mhtml-mode-hook + css-mode-hook)) #'turn-on-tree-sitter-mode)