spacemacs/layers/+lang/typescript/README.org

3.1 KiB

TypeScript layer

/TakeV/spacemacs/media/commit/07852abad561f4a205d32e4e30f7e347eb1e254d/layers/+lang/typescript/img/TypeScript.png

Description

This layer adds support for TypeScript and TSX editing.

This layer provides:

  • ElDoc
  • Auto complete
  • Flycheck
  • Jump to definition, Jump to type definition
  • Find occurrences
  • Rename symbol
  • Imenu
  • linting
  • tsx mode
  • formatting

Install

Pre-requisites

You will need node.js v0.12.0 or greater

If you want linting run: npm install -g typescript npm install -g tslint

If you want formatting run: npm install -g typescript-formatter

For best results, make sure that the auto-completion (company) and html layers are enabled.

Layer

To use this configuration layer, add it to your ~/.spacemacs. You will need to add typescript to the existing dotspacemacs-configuration-layers list in this file.

(setq-default dotspacemacs-configuration-layers '(typescript))

If you don't need linting, you can use:

(setq-default dotspacemacs-configuration-layers '(
  (typescript :variables
              typescript-use-tslint  nil)))

If you need formatting on save:

(setq-default dotspacemacs-configuration-layers '(
  (typescript :variables
              typescript-fmt-on-save t)))

Notes

This layer uses:

Those tools use configuration files. You can learn more in their documentations.

Make sure to add tsconfig.json in the project root folder.

tsserver mangles output sometimes issue - #2758, which will result in json parse error. Try node version 0.12.x if you get this error

Currently tsserver doesn't pickup tsconfig.json file changes. You might need to restart server after editing it.

Key bindings

Typescript Major Mode

Key Binding Description
SPC m = Reformat the buffer
SPC m g b jump back
SPC m g g jump to entity's definition
SPC m g t jump to entity's type definition
SPC m g u references
SPC m h h documentation at point
SPC m r r rename symbol
SPC m s r restart server

Reference Major Mode

Key Binding Description
C-j find previous reference
C-k find next reference
C-l goto reference