#+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 (uno-lang-js-lsp . uno/lang/js/ts/lsp) ((typescript-mode typescript-tsx-mode) . uno/lang/js/lsp/check) :init (defun uno/lang/js/ts/lsp () "Attempt to load local SDKs." (when (and (member major-mode '(typescript-mode typescript-tsx-mode)) (uno/lang/js/lsp/add-to-local 'typescript-language-server "typescript-language-server/lib/cli.js") (uno/lang/js/lsp/add-to-local 'typescript "typescript/bin/tsserver")) (push 'ts-ls lsp-enabled-clients) (lsp))) (uno/add-useless-buffer "\\*ts-ls\\*") (uno/add-useless-buffer "\\*ts-ls::.*\\*")) #+END_SRC