b5a186ea5c32cb478b05ae7fa927f4b9f3c78b4e
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-tsserver / Readme.md
1 # coc-tsserver
2
3 Tsserver language server extension for [coc.nvim](https://github.com/neoclide/coc.nvim).
4
5 Most of the code is from `typescript-language-features` extension which is bundled with VSCode.
6
7 **Note:** for React to work as expected, you need your JSX filetype to be
8 `javascript.jsx` and your TSX filetype to be `typescript.jsx` or
9 `typescript.tsx`. In coc.nvim, these filetypes are mapped to `javascriptreact`
10 and `typescriptreact` because that's what tsserver uses.
11
12 **Note** for javascript project, make sure you have [jsconfig.json](https://code.visualstudio.com/docs/languages/jsconfig)
13
14 ## Install
15
16 In your vim/neovim, run command:
17
18 ```
19 :CocInstall coc-tsserver
20 ```
21
22 For yarn2 user what to use local typescript module:
23
24 - Add PnPify to your dependencies:
25
26   ```
27   yarn add @yarnpkg/pnpify
28   ```
29
30 - Run the following command, which will generate a new directory called .vscode/pnpify
31
32   ```
33   yarn pnpify --sdk
34   ```
35
36 ### intructions for nvm users
37
38 Disable [nvm](https://github.com/creationix/nvm) with the following command:
39
40 ```
41 nvm deactivate
42 ```
43
44 Next, find out what the global path of your installed version of npm with the following command:
45
46 ```
47 which npm
48 ```
49
50 The output of the above command should go into the `tsserver.npm` property in your `coc-settings.json` file, a partial example listed below:
51
52 ```
53 "tsserver.npm": "/usr/local/bin/npm"
54 ```
55
56 ## Features
57
58 Almost the same as VSCode.
59
60 - Supports javascript & typescript and jsx/tsx.
61 - Installs typings automatically.
62 - Commands to work with tsserver, including:
63   - `tsserver.reloadProjects`
64   - `tsserver.openTsServerLog`
65   - `tsserver.goToProjectConfig`
66   - `tsserver.restart`
67   - `tsserver.format`
68   - `tsserver.organizeImports`
69   - `tsserver.watchBuild`
70 - Code completion support.
71 - Go to definition.
72 - Code validation.
73 - Document highlight.
74 - Document symbols of current buffer.
75 - Folding and folding range of current buffer.
76 - Format current buffer, range format and format on type.
77 - Hover for documentation.
78 - Implementations codeLens and references codeLens.
79 - Organize imports command.
80 - Quickfix using code actions.
81 - Code refactor using code actions.
82 - Find references.
83 - Signature help.
84 - Rename symbols support.
85 - Rename imports on file rename, require [watchman](https://facebook.github.io/watchman/) installed in your \$PATH.
86 - Search for workspace symbols.
87
88 Tsserver module first resolved from your local workspace. If it's not found,
89 use tsserver from `tsserver.tsdk` configuration or use bundled tsserver with
90 this extension.
91
92 ## Configuration options
93
94 Checkout [using the configuration file](https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file) for guide of coc.nvim's configuration.
95
96 - `tsserver.enable`:Enable tsserver extension, default: `true`
97 - `tsserver.locale`:Locale of tsserver, default: `""`
98 - `tsserver.typingsCacheLocation`:Folder path for cache typings, default: `""`
99 - `tsserver.formatOnType`:Run format on type special characters., default: `true`
100 - `tsserver.enableJavascript`:Use tsserver for javascript files, default: `true`
101 - `tsserver.maxTsServerMemory`:Set the maximum amount of memory to allocate to the TypeScript server process
102 - `tsserver.tsdk`:Directory contains tsserver.js,, default: `""`
103 - `tsserver.npm`:Executable path of npm for download typings, default: `""`
104 - `tsserver.log`:Log level of tsserver, default: `"off"`
105 - `tsserver.trace.server`:Trace level of tsserver, default: `"off"`
106 - `tsserver.pluginRoot`:Folder contains tsserver plugins, default: `[]`
107 - `tsserver.debugPort`:Debug port number of tsserver
108 - `tsserver.watchOptions`:Configure which watching strategies should be used to keep track of files and directories. Requires using TypeScript 3.8+ in the workspace, default: undefined.
109 - `tsserver.reportStyleChecksAsWarnings` default: `true`
110 - `tsserver.implicitProjectConfig.checkJs`:Enable checkJs for implicit project, default: `false`
111 - `tsserver.implicitProjectConfig.experimentalDecorators`:Enable experimentalDecorators for implicit project, default: `false`
112 - `tsserver.disableAutomaticTypeAcquisition`:Disable download of typings, default: `false`
113 - `tsserver.useBatchedBufferSync`: use batched buffer synchronize support.
114 - `typescript.updateImportsOnFileMove.enable`:Enable update imports on file move., default: `true`
115 - `typescript.implementationsCodeLens.enable`:Enable codeLens for implementations, default: `true`
116 - `typescript.referencesCodeLens.enable`:Enable codeLens for references, default: `true`
117 - `typescript.preferences.importModuleSpecifier` default: `"auto"`
118 - `typescript.preferences.importModuleSpecifierEnding` default: `true`
119 - `typescript.preferences.quoteStyle` default: `"single"`
120 - `typescript.suggestionActions.enabled`:Enable/disable suggestion diagnostics for TypeScript files in the editor. Requires using TypeScript 2.8 or newer in the workspace., default: `true`
121 - `typescript.validate.enable`:Enable/disable TypeScript validation., default: `true`
122 - `typescript.showUnused`: show unused variable hint, default: `true`.
123 - `typescript.suggest.enabled` default: `true`
124 - `typescript.suggest.paths`:Enable/disable suggest paths in import statement and require calls, default: `true`
125 - `typescript.suggest.autoImports`:Enable/disable auto import suggests., default: `true`
126 - `typescript.suggest.completeFunctionCalls`:Enable snippet for method suggestion, default: `true`
127 - `typescript.format.enabled`:Enable/disable format of typescript files.
128 - `typescript.format.insertSpaceAfterCommaDelimiter` default: `true`
129 - `typescript.format.insertSpaceAfterConstructor` default: `false`
130 - `typescript.format.insertSpaceAfterSemicolonInForStatements` default: `true`
131 - `typescript.format.insertSpaceBeforeAndAfterBinaryOperators` default: `true`
132 - `typescript.format.insertSpaceAfterKeywordsInControlFlowStatements` default: `true`
133 - `typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions` default: `true`
134 - `typescript.format.insertSpaceBeforeFunctionParenthesis` default: `false`
135 - `typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets` default: `false`
136 - `typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces` default: `false`
137 - `typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis` default: `false`
138 - `typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces` default: `false`
139 - `typescript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces` default: `false`
140 - `typescript.format.insertSpaceAfterTypeAssertion` default: `false`
141 - `typescript.format.placeOpenBraceOnNewLineForFunctions` default: `false`
142 - `typescript.format.placeOpenBraceOnNewLineForControlBlocks` default: `false`
143 - `typescript.suggest.includeAutomaticOptionalChainCompletions`: default: `true`
144 - `javascript.format.enabled`: Enable/disable format for javascript files.
145 - `javascript.showUnused`: show unused variable hint.
146 - `javascript.updateImportsOnFileMove.enable` default: `true`
147 - `javascript.implementationsCodeLens.enable` default: `true`
148 - `javascript.referencesCodeLens.enable` default: `true`
149 - `javascript.preferences.importModuleSpecifier` default: `"auto"`
150 - `javascript.preferences.importModuleSpecifierEnding` default: `true`
151 - `javascript.preferences.quoteStyle` default: `"single"`
152 - `javascript.validate.enable`: Enable/disable JavaScript validation., default: `true`
153 - `javascript.suggestionActions.enabled`: Enable/disable suggestion diagnostics for JavaScript files in the editor. Requires using TypeScript 2.8 or newer in the workspace., default: `true`
154 - `javascript.suggest.names`: default `true`
155 - `javascript.suggest.enabled`: default `true`
156 - `javascript.suggest.paths`: Enable/disable suggest paths in import statement and require calls, default: `true`
157 - `javascript.suggest.autoImports`: Enable/disable auto import suggests., default: `true`
158 - `javascript.suggest.completeFunctionCalls`:Enable snippet for method suggestion, default: `true`
159 - `javascript.format.insertSpaceAfterCommaDelimiter` default: `true`
160 - `javascript.format.insertSpaceAfterConstructor` default: `false`
161 - `javascript.format.insertSpaceAfterSemicolonInForStatements` default: `true`
162 - `javascript.format.insertSpaceBeforeAndAfterBinaryOperators` default: `true`
163 - `javascript.format.insertSpaceAfterKeywordsInControlFlowStatements` default: `true`
164 - `javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions` default: `true`
165 - `javascript.format.insertSpaceBeforeFunctionParenthesis` default: `false`
166 - `javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets` default: `false`
167 - `javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces` default: `false`
168 - `javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis` default: `false`
169 - `javascript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces` default: `false`
170 - `javascript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces` default: `false`
171 - `javascript.format.insertSpaceAfterTypeAssertion` default: `false`
172 - `javascript.format.placeOpenBraceOnNewLineForFunctions` default: `false`
173 - `javascript.format.placeOpenBraceOnNewLineForControlBlocks` default: `false`
174 - `javascript.suggest.includeAutomaticOptionalChainCompletions`: default: `true`
175
176 Configurations are the same as with VSCode. Try completion with `tsserver`, `typescript`
177 or `javascript` in your `coc-settings.json`.
178
179 ## Related extensions
180
181 - [coc-eslint](https://github.com/neoclide/coc-eslint): enable [eslint](https://github.com/eslint/eslint) plugin for tsserver to lint TypeScript and JavaScript files.
182 - [coc-tslint-plugin](https://github.com/neoclide/coc-tslint-plugin): enable [tslint](https://github.com/palantir/tslint)
183   plugin for tsserver ([deprecated](https://github.com/palantir/tslint/issues/4534)).
184 - [coc-vetur](https://github.com/neoclide/coc-vetur): [vue](https://github.com/vuejs/vue) extension.
185 - [coc-angular](https://github.com/iamcco/coc-angular): [angular](https://github.com/angular/angular) extension.
186
187 ## Troubleshooting
188
189 - Add `"tsserver.log": "verbose"` to your `coc-settings.json` (opened by command
190   `:CocConfig`)
191 - To trace LSP communication, add `"tsserver.trace.server": "verbose"` to your
192   `coc-settings.json`
193 - Restart coc server by command `:CocRestart`
194 - Make the issue happen.
195 - Open tsserver log file by command `CocCommand tsserver.openTsServerLog`
196 - Open tsserver output channel by command `CocCommand workspace.showOutput tsserver`
197
198 If you find any issues, please [create an issue](https://github.com/neoclide/coc-tsserver/issues/new).
199
200 ## License
201
202 MIT