mirror of
https://github.com/jimeh/.emacs.d.git
synced 2026-02-19 13:46:41 +00:00
chore(treesit): tweak setup of built-in treesit modes
This commit is contained in:
@@ -136,6 +136,7 @@
|
||||
(require 'siren-string-inflection)
|
||||
(require 'siren-toggle-comments)
|
||||
(require 'siren-tree-sitter)
|
||||
(require 'siren-treesit)
|
||||
(require 'siren-yasnippet)
|
||||
|
||||
;; Version control
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
;;; Code:
|
||||
|
||||
(require 'siren-lsp)
|
||||
(require 'siren-treesit)
|
||||
|
||||
(if (fboundp 'dockerfile-ts-mode)
|
||||
;; Use built-in treesit support if available.
|
||||
@@ -21,17 +20,24 @@
|
||||
|
||||
:init
|
||||
(require 'siren-treesit)
|
||||
(siren-treesit-prepare
|
||||
'dockerfile-ts-mode
|
||||
'(dockerfile "https://github.com/camdencheek/tree-sitter-dockerfile"))
|
||||
|
||||
:config
|
||||
(siren-flycheck-setup-hadolint))
|
||||
(siren-flycheck-setup-hadolint)
|
||||
|
||||
;; Remove auto-mode-alist entry added by dockerfile-ts-mode, as it's too
|
||||
;; greedy and matches on files such as "siren-dockerfile.el" which is a
|
||||
;; problem when trying to edit this file for example.
|
||||
(setq auto-mode-alist
|
||||
(delete '("\\(?:Dockerfile\\(?:\\..*\\)?\\|\\.[Dd]ockerfile\\)\\'"
|
||||
. dockerfile-ts-mode)
|
||||
auto-mode-alist)))
|
||||
|
||||
;; Otherwise, fallback to regular dockerfile-mode.
|
||||
(use-package dockerfile-mode
|
||||
:hook (dockerfile-mode . siren-dockerfile-mode-setup)
|
||||
:config (siren-flycheck-setup-hadolint)))
|
||||
:hook
|
||||
(dockerfile-mode . siren-dockerfile-mode-setup)
|
||||
:config
|
||||
(siren-flycheck-setup-hadolint)))
|
||||
|
||||
(defun siren-dockerfile-mode-setup ()
|
||||
"Shared setup for both `dockerfile-mode' and `dockerfile-ts-mode'."
|
||||
|
||||
@@ -22,10 +22,7 @@
|
||||
(toml-ts-mode . siren-toml-mode-setup)
|
||||
|
||||
:init
|
||||
(require 'siren-treesit)
|
||||
(siren-treesit-prepare
|
||||
'toml-ts-mode
|
||||
'(toml "https://github.com/tree-sitter/tree-sitter-toml"))))
|
||||
(require 'siren-treesit)))
|
||||
|
||||
(defun siren-toml-mode-setup ()
|
||||
(run-hooks 'prog-mode-hook)
|
||||
|
||||
@@ -6,38 +6,38 @@
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'siren-flycheck)
|
||||
(require 'siren-lsp)
|
||||
(require 'siren-treesit)
|
||||
;; Requires Emacs 29.x or later for built-in treesit support.
|
||||
(when (fboundp 'treesit-ready-p)
|
||||
(require 'siren-flycheck)
|
||||
(require 'siren-lsp)
|
||||
(require 'siren-treesit)
|
||||
|
||||
(let ((repo "https://github.com/tree-sitter/tree-sitter-typescript")
|
||||
(ref "v0.20.2"))
|
||||
(siren-treesit-prepare
|
||||
'typescript-ts-mode
|
||||
`(typescript . (,repo ,ref "typescript/src")))
|
||||
(siren-treesit-prepare
|
||||
'tsx-ts-mode
|
||||
`(tsx . (,repo ,ref "tsx/src"))))
|
||||
(use-package typescript-ts-mode
|
||||
:straight (:type built-in)
|
||||
:mode "\\.ts\\'"
|
||||
:hook
|
||||
(typescript-ts-mode . siren-typescript-mode-setup)
|
||||
|
||||
(use-package typescript-ts-mode
|
||||
:straight (:type built-in)
|
||||
:mode "\\.ts\\'"
|
||||
:hook
|
||||
(typescript-ts-mode . siren-typescript-mode-setup))
|
||||
:config
|
||||
(when (not (treesit-ready-p 'typescript))
|
||||
(treesit-install-language-grammar 'typescript)))
|
||||
|
||||
(use-package tsx-ts-mode
|
||||
:straight (:type built-in)
|
||||
:mode "\\.tsx\\'")
|
||||
(use-package tsx-ts-mode
|
||||
:straight (:type built-in)
|
||||
:mode "\\.tsx\\'"
|
||||
:config
|
||||
(when (not (treesit-ready-p 'tsx))
|
||||
(treesit-install-language-grammar 'tsx)))
|
||||
|
||||
(defun siren-typescript-mode-setup ()
|
||||
"Default setup function for `typescript-mode' and `typescript-ts-mode'."
|
||||
(let ((width 2))
|
||||
(setq-local typescript-indent-level width
|
||||
indent-level width
|
||||
tab-width width))
|
||||
(defun siren-typescript-mode-setup ()
|
||||
"Default setup function for `typescript-ts-mode' and `tsx-ts-mode'."
|
||||
(let ((width 2))
|
||||
(setq-local typescript-indent-level width
|
||||
indent-level width
|
||||
tab-width width))
|
||||
|
||||
(lsp-deferred)
|
||||
(flycheck-mode t))
|
||||
(lsp-deferred)
|
||||
(flycheck-mode t)))
|
||||
|
||||
(provide 'siren-typescript)
|
||||
;;; siren-typescript.el ends here
|
||||
|
||||
@@ -16,5 +16,13 @@
|
||||
(when (not (treesit-ready-p ',lang))
|
||||
(treesit-install-language-grammar ',lang))))))
|
||||
|
||||
(use-package treesit-auto
|
||||
:demand t
|
||||
:if (fboundp 'treesit-ready-p)
|
||||
:custom
|
||||
(treesit-auto-install nil)
|
||||
:config
|
||||
(global-treesit-auto-mode))
|
||||
|
||||
(provide 'siren-treesit)
|
||||
;;; siren-treesit.el ends here
|
||||
|
||||
@@ -228,6 +228,7 @@
|
||||
("treemacs" . "127485317a19254ca20ba1910d10edf7dbaa2d97")
|
||||
("treemacs-nerd-icons" . "c6f4a74ea4f414528fc43a6fe95f7f17687faeb4")
|
||||
("treepy.el" . "7c4a0d21322506a4d4b2301b4274ec955b429b47")
|
||||
("treesit-auto" . "bac3b9d1d61a4d759f87c80de7be3b808d19cbf6")
|
||||
("use-package" . "77945e002f11440eae72d8730d3de218163d551e")
|
||||
("uuidgen-el" . "7b728c1d92e196c3acf87a004949335cfc18eab3")
|
||||
("vertico" . "7e2375b6f09579b5845dbf35ad168a8c6fc70e66")
|
||||
|
||||
Reference in New Issue
Block a user