mirror of
https://github.com/jimeh/.emacs.d.git
synced 2026-02-19 13:46:41 +00:00
feat(language/typescript): switch to new typescript-ts-mode
As typescript-mode has effectively been deprecated, let's switch to the new typescript-ts-mode in Emacs 29.x.
This commit is contained in:
@@ -219,12 +219,15 @@
|
||||
(require 'siren-terraform)
|
||||
(require 'siren-thrift)
|
||||
(require 'siren-toml)
|
||||
(require 'siren-typescript)
|
||||
(require 'siren-vue)
|
||||
(require 'siren-web-mode)
|
||||
(require 'siren-x509)
|
||||
(require 'siren-xml)
|
||||
(require 'siren-yaml)
|
||||
|
||||
;; Languages that require Emacs' 29.x built-in treesit functionality.
|
||||
(when (fboundp 'treesit-ready-p)
|
||||
(require 'siren-typescript))
|
||||
|
||||
(provide 'siren-core-modules)
|
||||
;;; siren-core-modules.el ends here
|
||||
|
||||
@@ -8,52 +8,38 @@
|
||||
|
||||
(require 'siren-flycheck)
|
||||
(require 'siren-lsp)
|
||||
(require 'siren-web-mode)
|
||||
(require 'siren-treesit)
|
||||
|
||||
(use-package typescript-mode
|
||||
:defer t
|
||||
(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-mode . siren-typescript-mode-setup)
|
||||
(typescript-mode . siren-typescript-mode-setup))
|
||||
|
||||
:general
|
||||
(:keymaps 'typescript-mode-map
|
||||
"C-j" 'newline-and-indent)
|
||||
|
||||
:preface
|
||||
(defun siren-typescript-mode-setup ()
|
||||
(let ((width 2))
|
||||
(setq-local typescript-indent-level width
|
||||
indent-level width
|
||||
tab-width width))
|
||||
|
||||
(lsp-deferred)
|
||||
(flycheck-mode t)))
|
||||
|
||||
(use-package tide
|
||||
(use-package tsx-ts-mode
|
||||
:straight (:type built-in)
|
||||
:mode "\\.tsx\\'"
|
||||
:hook
|
||||
(typescript-mode . siren-tide-mode-setup)
|
||||
(web-mode . siren-tide-web-mode-setup)
|
||||
(typescript-mode . siren-typescript-mode-setup))
|
||||
|
||||
:preface
|
||||
(defun siren-tide-web-mode-setup ()
|
||||
(when (string-equal "tsx" (file-name-extension buffer-file-name))
|
||||
(siren-tide-mode-setup)))
|
||||
(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-tide-mode-setup ()
|
||||
(interactive)
|
||||
(tide-setup)
|
||||
|
||||
(setq-local flycheck-check-syntax-automatically '(save mode-enabled)
|
||||
company-tooltip-align-annotations t)
|
||||
|
||||
(eldoc-mode t)
|
||||
(tide-hl-identifier-mode t))
|
||||
|
||||
:init
|
||||
(add-to-list 'auto-mode-alist '("\\.tsx\\'" . web-mode))
|
||||
(with-eval-after-load 'flycheck
|
||||
(flycheck-add-mode 'typescript-tslint 'web-mode)))
|
||||
(lsp-deferred)
|
||||
(flycheck-mode t))
|
||||
|
||||
(provide 'siren-typescript)
|
||||
;;; siren-typescript.el ends here
|
||||
|
||||
20
modules/text-editing/siren-treesit.el
Normal file
20
modules/text-editing/siren-treesit.el
Normal file
@@ -0,0 +1,20 @@
|
||||
;;; siren-treesit.el --- jimeh's Emacs Siren: treesit
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Configuration for treesit
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'treesit)
|
||||
|
||||
(defun siren-treesit-prepare (mode source)
|
||||
"Setup treesit for MODE with SOURCE."
|
||||
(add-to-list 'treesit-language-source-alist source)
|
||||
(let ((lang (car source)))
|
||||
(advice-add mode :before `(lambda (&rest _)
|
||||
(when (not (treesit-ready-p ',lang))
|
||||
(treesit-install-language-grammar ',lang))))))
|
||||
|
||||
(provide 'siren-treesit)
|
||||
;;; siren-treesit.el ends here
|
||||
@@ -215,12 +215,10 @@
|
||||
("terraform-doc" . "16179e57ce290190c222b27961900657a1981330")
|
||||
("terraform-mode" . "39d2fd5bfc86c6bf1c7bc38e6f0016d714f2d79d")
|
||||
("themes" . "b5ff201f4bea4286e9ed015a2043cf2394182232")
|
||||
("tide" . "29475d9eee26f4101322209e9b6b199df5386094")
|
||||
("transient" . "239be53b01e003c5206087d850d9672a42dc4b32")
|
||||
("tree-sitter-langs" . "1076cf2366be8ef1bd6fd7239f92f16cc0890fce")
|
||||
("treemacs" . "9986d6cd3d2822db7ae0e6d8a275db7057f3e828")
|
||||
("treepy.el" . "7c4a0d21322506a4d4b2301b4274ec955b429b47")
|
||||
("typescript.el" . "4fcb4594819caf472ae42ea068a1c7795cf07f46")
|
||||
("use-package" . "bcf0984cf55b70fe6896c6a15f61df92b24f8ffd")
|
||||
("uuidgen-el" . "7b728c1d92e196c3acf87a004949335cfc18eab3")
|
||||
("vertico" . "a595b05ecc87ce0cd6663f01727159e6640b2d2e")
|
||||
|
||||
Reference in New Issue
Block a user