Move elisp into a folder and switch to emacs-wayland on linux.
This commit is contained in:
113
ansible/roles/emacs/files/elisp/lang-javascript.el
Normal file
113
ansible/roles/emacs/files/elisp/lang-javascript.el
Normal file
@@ -0,0 +1,113 @@
|
||||
(require 'common-lsp)
|
||||
(require 'util-tree-sitter)
|
||||
|
||||
(use-package json-ts-mode
|
||||
:ensure nil
|
||||
:pin manual
|
||||
:mode (
|
||||
("\\.json\\'" . json-ts-mode)
|
||||
)
|
||||
:commands (json-ts-mode)
|
||||
:hook (
|
||||
(json-ts-mode . (lambda ()
|
||||
(add-hook 'before-save-hook 'json-fmt-jq nil 'local)
|
||||
))
|
||||
)
|
||||
:init
|
||||
(add-to-list 'treesit-language-source-alist '(json "https://github.com/tree-sitter/tree-sitter-json"))
|
||||
(unless (treesit-ready-p 'json) (treesit-install-language-grammar 'json))
|
||||
)
|
||||
|
||||
(defun json-fmt-jq ()
|
||||
"Run jq."
|
||||
(run-command-on-buffer "jq" "--monochrome-output" ".")
|
||||
)
|
||||
|
||||
(use-package tsx-ts-mode
|
||||
:ensure nil
|
||||
:pin manual
|
||||
:mode (
|
||||
("\\.tsx\\'" . tsx-ts-mode)
|
||||
)
|
||||
:commands (tsx-ts-mode)
|
||||
:hook (
|
||||
(tsx-ts-mode . (lambda ()
|
||||
(when-linux
|
||||
(eglot-ensure)
|
||||
)
|
||||
))
|
||||
)
|
||||
:init
|
||||
(add-to-list 'treesit-language-source-alist '(tsx . ("https://github.com/tree-sitter/tree-sitter-typescript" "master" "tsx/src")))
|
||||
(unless (treesit-ready-p 'tsx) (treesit-install-language-grammar 'tsx))
|
||||
)
|
||||
|
||||
|
||||
(use-package typescript-ts-mode
|
||||
:ensure nil
|
||||
:pin manual
|
||||
:mode (
|
||||
("\\.ts\\'" . typescript-ts-mode)
|
||||
)
|
||||
:commands (typescript-ts-mode)
|
||||
:hook (
|
||||
(typescript-ts-mode . (lambda ()
|
||||
(when-linux
|
||||
(eglot-ensure)
|
||||
)
|
||||
))
|
||||
)
|
||||
:init
|
||||
(add-to-list 'treesit-language-source-alist '(typescript . ("https://github.com/tree-sitter/tree-sitter-typescript" "master" "typescript/src")))
|
||||
(unless (treesit-ready-p 'typescript) (treesit-install-language-grammar 'typescript))
|
||||
)
|
||||
|
||||
(use-package js-ts-mode
|
||||
:ensure nil
|
||||
:pin manual
|
||||
:mode (
|
||||
("\\.js\\'" . js-ts-mode)
|
||||
)
|
||||
:commands (js-ts-mode)
|
||||
:hook (
|
||||
(js-ts-mode . (lambda ()
|
||||
(when-linux
|
||||
(eglot-ensure)
|
||||
)
|
||||
))
|
||||
)
|
||||
:init
|
||||
(add-to-list 'treesit-language-source-alist '(javascript . ("https://github.com/tree-sitter/tree-sitter-javascript" "master" "src")))
|
||||
(unless (treesit-ready-p 'javascript) (treesit-install-language-grammar 'javascript))
|
||||
)
|
||||
|
||||
(use-package css-ts-mode
|
||||
:ensure nil
|
||||
:pin manual
|
||||
:mode (
|
||||
("\\.css\\'" . css-ts-mode)
|
||||
)
|
||||
:commands (css-ts-mode)
|
||||
:init
|
||||
(add-to-list 'treesit-language-source-alist '(css "https://github.com/tree-sitter/tree-sitter-css"))
|
||||
(unless (treesit-ready-p 'css) (treesit-install-language-grammar 'css))
|
||||
)
|
||||
|
||||
|
||||
;; (use-package web-mode
|
||||
;; :mode (("\\.dust\\'" . web-mode)
|
||||
;; )
|
||||
;; :config
|
||||
;; (setq web-mode-markup-indent-offset 2)
|
||||
;; (setq web-mode-enable-current-element-highlight t)
|
||||
;; )
|
||||
|
||||
;; ;; Define a custom mode for dust so that org-mode handle #+BEGIN_SRC dust blocks
|
||||
;; (define-derived-mode dust-mode web-mode "WebDust"
|
||||
;; "Major mode for editing dust templates in web-mode."
|
||||
;; (web-mode)
|
||||
;; (web-mode-set-engine "dust")
|
||||
;; ;; (setq web-mode-content-type "html")
|
||||
;; )
|
||||
|
||||
(provide 'lang-javascript)
|
||||
Reference in New Issue
Block a user