#+TITLE: Language - JavaScript - TypeScript #+AUTHOR: Juan Placencia * Package Define TypeScript JavaScript language package. #+BEGIN_SRC emacs-lisp (use-package emacs :after uno-lang-js :config (provide 'uno-lang-js-ts)) #+END_SRC * TypeScript, TSX Mode #+BEGIN_SRC emacs-lisp (use-package web-mode :after uno-lang-js-ts) (use-package typescript-mode :after (uno-lang-js-ts web-mode) :init (define-derived-mode typescript-tsx-mode web-mode "typescript-tsx") (push '("\\.tsx$" . typescript-tsx-mode) auto-mode-alist)) (use-package emacs :after (uno-lang-js-ts ligature typescript-mode) :config (ligature-set-ligatures 'typescript-mode uno-lang-js-ligatures) (ligature-set-ligatures 'typescript-tsx-mode uno-lang-js-ligatures)) #+END_SRC * LSP Integration #+BEGIN_SRC emacs-lisp (use-package emacs :after (uno-lang-js-ts uno-lang-js-lsp typescript-mode) :hook ((typescript-mode typescript-tsx-mode) . lsp) ((typescript-mode typescript-tsx-mode) . uno/lang/js/ts/lsp) ((typescript-mode typescript-tsx-mode) . uno/lang/js/lsp) :init (defun uno/lang/js/ts/lsp () "Set up LSP for TypeScript." (when (or (file-exists-p (concat (projectile-project-root) "package.json")) (not (executable-find lsp-clients-deno-server))) (push 'deno-ls lsp-disabled-clients))) (uno/add-useless-buffer "\\*ts-ls\\*") (uno/add-useless-buffer "\\*ts-ls::.*\\*")) #+END_SRC