You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

1.6 KiB

Language - JavaScript - TypeScript

Package

Define TypeScript JavaScript language package.

  (use-package emacs
    :after uno-lang-js
    :config
    (provide 'uno-lang-js-ts))

TypeScript, TSX Mode

  (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))

LSP Integration

  (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 "\\*emmet-ls\\*")
    (uno/add-useless-buffer "\\*emmet-ls::.*\\*")
    (uno/add-useless-buffer "\\*ts-ls\\*")
    (uno/add-useless-buffer "\\*ts-ls::.*\\*"))