From 5de5d36cab79f5b374358deeb02a447fb6adcbea Mon Sep 17 00:00:00 2001 From: Ade Attwood Date: Sun, 21 Nov 2021 14:53:45 +0000 Subject: [PATCH] feat(emacs): add tree-sitter for highlighting This is mainly for jsx where the base emacs packages dont really do a good job especially will typescript tsx files. This is also giving it a go in php mode where I was getting some funky things happening in doc blocks. --- site-modules/core/files/emacs/src/development.el | 3 +++ site-modules/core/files/emacs/src/lang/js-ts.el | 7 +++++-- site-modules/core/files/emacs/src/lang/php.el | 4 +++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/site-modules/core/files/emacs/src/development.el b/site-modules/core/files/emacs/src/development.el index 720a21e..de4024c 100644 --- a/site-modules/core/files/emacs/src/development.el +++ b/site-modules/core/files/emacs/src/development.el @@ -102,6 +102,9 @@ (setq display-line-numbers-type 'relative) (add-hook 'prog-mode-hook 'display-line-numbers-mode) +(use-package tree-sitter :ensure t) +(use-package tree-sitter-langs :ensure t) + (use-package magit :ensure t :init diff --git a/site-modules/core/files/emacs/src/lang/js-ts.el b/site-modules/core/files/emacs/src/lang/js-ts.el index 3db2876..ed09ffd 100644 --- a/site-modules/core/files/emacs/src/lang/js-ts.el +++ b/site-modules/core/files/emacs/src/lang/js-ts.el @@ -9,7 +9,8 @@ (use-package js2-mode :mode "\\.m?js\\'" :interpreter "node" - :hook (js2-mode . lsp-deferred) + :hook ((js2-mode . tree-sitter-hl-mode) + (js2-mode . lsp-deferred)) :commands js2-line-break :config (setq js-chain-indent t @@ -30,7 +31,8 @@ (use-package rjsx-mode :mode (("components/.+\\.js$" . rjsx-mode)) - :hook (rjsx-mode . lsp-deferred) + :hook ((rjsz-mode . tree-sitter-hl-mode) + (rjsx-mode . lsp-deferred)) :init (defun +javascript-jsx-file-p () "Detect React or preact imports early in the file." @@ -51,6 +53,7 @@ (progn (define-derived-mode typescript-tsx-mode web-mode "TypeScript-tsx") (add-to-list 'auto-mode-alist '("\\.tsx\\'" . typescript-tsx-mode)) + (add-hook 'typescript-tsx-mode-hook 'tree-sitter-hl-mode) (add-hook 'typescript-tsx-mode-hook 'lsp-deferred)) (use-package prettier-js :commands prettier-js) diff --git a/site-modules/core/files/emacs/src/lang/php.el b/site-modules/core/files/emacs/src/lang/php.el index 0b83e33..fdebae1 100644 --- a/site-modules/core/files/emacs/src/lang/php.el +++ b/site-modules/core/files/emacs/src/lang/php.el @@ -8,5 +8,7 @@ (use-package php-mode :ensure t - :hook (php-mode . lsp-deferred) :mode "\\.php\\'") + :hook ((php-mode . (lambda() (setq flycheck-local-checkers '((lsp . ((next-checkers . (php)))))))) + (php-mode . lsp-deferred) + (php-mode . tree-sitter-hl-mode))