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
tsserverjust 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 |