Tide Layer
Table of ContentsClose
1. Description
This layer installs tide package which allows communication with
standalone typescript server tsserver
for JavaScript/TypeScript development.
1.1. Features:
- First class support from
tsserver
just likevscode
: speed and accuracy - Linter
- Refactor
- Go to definition
- Find references
2. Install
See tide for details. First you must have `tsserver` installed in your project or globally:
npm install -g typescript
Next enable this layer in your ~/.spacemacs
. You will need to add tide
to the
existing dotspacemacs-configuration-layers
list in this file. Then set the
backend variables for JavaScript layer, React layer and TypeScript layer to tide
in dotspacemacs-configuration-layers
(javascript :variables javascript-backend 'tide) (typescript :variables typescript-backend 'tide)
Both javascript-backend
and typescript-backend
can be set per project.
When using this layer, make sure tsconfig.json or jsconfig.json is present in the root folder of the project.
Example from emacs tide package: For JavaScript projects you may want to create
jsconfig.json
in the root folder of your project. jsconfig.json
is tsconfig.json
with allowjs attribute set to true.
{ "compilerOptions": { "target": "es2017", "allowSyntheticDefaultImports": true, "noEmit": true, "checkJs": true, "jsx": "react", "lib": [ "dom", "es2017" ] } }
Without this file tsserver
will pick up current folder as project root.
3. Key bindings
3.1. Major Mode
Key binding | Description |
---|---|
SPC m E d |
add tslint:disable-next-line at point |
SPC m E e |
fix thing at point |
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 r |
references |
SPC m h h |
documentation at point |
SPC m r i |
organize imports |
SPC m r r |
rename symbol |
SPC m r f |
rename file |
SPC m S r |
restart server |
SPC m S j |
create a barebone jsconfig.json at project root |
3.2. Reference Major Mode
Key binding | Description |
---|---|
C-j |
find previous reference |
C-k |
find next reference |
C-l |
goto reference |