Files
emacsd/lib/init-js-ts.el
Raymundo Vásquez Ruiz 8a91c170cb chore: update
2023-03-25 19:21:24 +01:00

47 lines
1.4 KiB
EmacsLisp

;; Javascript and Typescript init
(require 'json-mode)
(require 'js2-mode)
(add-to-list 'auto-mode-alist '("\\.js[x]\\'" . js2-mode))
(add-hook 'js2-mode-hook 'ac-js2-mode)
(setq ac-js2-evaluate-calls t)
(require 'typescript-mode)
(require 'tree-sitter)
(require 'tree-sitter-langs)
(add-to-list 'auto-mode-alist '("\\.ts[x]\\'" . typescript-mode))
;; Activate tree-sitter globally (minor mode registered on every buffer)
(global-tree-sitter-mode)
(add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode)
;; Emacs default and tango-dark themes
(defun setup-tide-mode ()
(interactive)
(tide-setup)
(flycheck-mode +1)
(setq flycheck-check-syntax-automatically '(save mode-enabled))
(eldoc-mode +1)
(tide-hl-identifier-mode +1)
;; company is an optional dependency. You have to
;; install it separately via package-install
;; `M-x package-install [ret] company`
(company-mode +1))
;; aligns annotation to the right hand side
(setq company-tooltip-align-annotations t)
;; formats the buffer before saving
(add-hook 'before-save-hook 'tide-format-before-save)
(add-hook 'typescript-mode-hook #'setup-tide-mode)
(add-hook 'js2-mode-hook #'setup-tide-mode)
;; configure javascript-tide checker to run after your default javascript checker
;; (flycheck-add-next-checker 'javascript-eslint 'javascript-tide 'append)
(add-hook 'json-mode #'flycheck-mode)
(add-to-list 'projectile-globally-ignored-files "*node_modules")
(provide 'init-js-ts)