Skip to content
Tsserver extension for coc.nvim
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin use local tsserverForkStart Apr 19, 2019
snippets update snippet Dec 8, 2018
src remove TS version from status line (#30) May 23, 2019
.gitignore init Sep 7, 2018
.npmignore init Sep 7, 2018 chore doc Apr 25, 2019
package-lock.json add package-lock.json Apr 27, 2019
package.json use npm-run-all Apr 28, 2019
tsconfig.json init Sep 7, 2018
tslint.json improve tslint Mar 5, 2019
yarn.lock use vim to run watchBuild Apr 12, 2019


Tsserver language server extension for coc.nvim.

Most of the code is from typescript-language-features extension which is bundled with VSCode.

Note: if you're using nvm or other node version manager, you need configure tsserver.npm to your global npm executable path to avoid fetching types on vim start every time.

Note: for react to work as expected, you need have your jsx filetype to be javascript.jsx and your tsx filetype to be typescript.jsx or typescript.tsx


In your vim/neovim, run command:

:CocInstall coc-tsserver


Almost the same as VSCode.

  • Supports javascript & typescript and jsx/tsx.
  • Installs typings automatically.
  • Commands to work with tsserver, including:
    • tsserver.reloadProjects
    • tsserver.openTsServerLog
    • tsserver.goToProjectConfig
    • tsserver.restart
    • tsserver.format
    • tsserver.organizeImports
    • tsserver.watchBuild
  • Code completion support.
  • Go to definition.
  • Code validation.
  • Document highlight.
  • Document symbols of current buffer.
  • Folding and folding range of current buffer.
  • Format current buffer, range format and format on type.
  • Hover for documentation.
  • Implementations codeLens and references codeLens.
  • Organize imports command.
  • Quickfix using code actions.
  • Code refactor using code actions.
  • Find references.
  • Signature help.
  • Rename symbols support.
  • Rename imports on file rename.
  • Search for workspace symbols.

Tsserver module is resolved from your local workspace. If it's not found, the bundled tsserver module will be used.

Configuration options

  • tsserver.enable:Enable tsserver extension, default: true
  • tsserver.locale:Locale of tsserver, default: ""
  • tsserver.typingsCacheLocation:Folder path for cache typings, default: ""
  • tsserver.orgnizeImportOnSave:Orgnize import on buffer will save, default: false
  • tsserver.formatOnType:Run format on type special characters., default: true
  • tsserver.enableJavascript:Use tsserver for javascript files, default: true
  • tsserver.tsdk:Directory contains tsserver.js,, default: ""
  • tsserver.npm:Executable path of npm for download typings, default: ""
  • tsserver.log:Log level of tsserver, default: "off"
  • tsserver.trace.server:Trace level of tsserver, default: "off"
  • tsserver.pluginRoot:Folder contains tsserver plugins, default: []
  • tsserver.debugPort:Debug port number of tsserver
  • tsserver.reportStyleChecksAsWarnings default: true
  • tsserver.implicitProjectConfig.checkJs:Enable checkJs for implicit project, default: false
  • tsserver.implicitProjectConfig.experimentalDecorators:Enable experimentalDecorators for implicit project, default: false
  • tsserver.disableAutomaticTypeAcquisition:Disable download of typings, default: false
  • typescript.updateImportsOnFileMove.enable:Enable update imports on file move., default: true
  • typescript.implementationsCodeLens.enable:Enable codeLens for implementations, default: true
  • typescript.referencesCodeLens.enable:Enable codeLens for references, default: true
  • typescript.preferences.importModuleSpecifier default: "non-relative"
  • typescript.preferences.noSemicolons default: false
  • typescript.preferences.quoteStyle default: "single"
  • 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
  • typescript.validate.enable:Enable/disable TypeScript validation., default: true
  • typescript.suggest.enabled default: true
  • typescript.suggest.paths:Enable/disable suggest paths in import statement and require calls, default: true
  • typescript.suggest.autoImports:Enable/disable auto import suggests., default: true
  • typescript.suggest.completeFunctionCalls:Enable snippet for method suggestion, default: true
  • typescript.format.insertSpaceAfterCommaDelimiter default: true
  • typescript.format.insertSpaceAfterConstructor default: false
  • typescript.format.insertSpaceAfterSemicolonInForStatements default: true
  • typescript.format.insertSpaceBeforeAndAfterBinaryOperators default: true
  • typescript.format.insertSpaceAfterKeywordsInControlFlowStatements default: true
  • typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions default: true
  • typescript.format.insertSpaceBeforeFunctionParenthesis default: false
  • typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis default: false
  • typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces default: false
  • typescript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces default: false
  • typescript.format.insertSpaceAfterTypeAssertion default: false
  • typescript.format.placeOpenBraceOnNewLineForFunctions default: false
  • typescript.format.placeOpenBraceOnNewLineForControlBlocks default: false
  • javascript.updateImportsOnFileMove.enable default: true
  • javascript.implementationsCodeLens.enable default: true
  • javascript.referencesCodeLens.enable default: true
  • javascript.preferences.importModuleSpecifier default: "non-relative"
  • javascript.preferences.noSemicolons default: false
  • javascript.preferences.quoteStyle default: "single"
  • javascript.validate.enable:Enable/disable JavaScript validation., default: true
  • 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
  • javascript.suggest.names default: true
  • javascript.suggest.enabled default: true
  • javascript.suggest.paths:Enable/disable suggest paths in import statement and require calls, default: true
  • javascript.suggest.autoImports:Enable/disable auto import suggests., default: true
  • javascript.suggest.completeFunctionCalls:Enable snippet for method suggestion, default: true
  • javascript.format.insertSpaceAfterCommaDelimiter default: true
  • javascript.format.insertSpaceAfterConstructor default: false
  • javascript.format.insertSpaceAfterSemicolonInForStatements default: true
  • javascript.format.insertSpaceBeforeAndAfterBinaryOperators default: true
  • javascript.format.insertSpaceAfterKeywordsInControlFlowStatements default: true
  • javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions default: true
  • javascript.format.insertSpaceBeforeFunctionParenthesis default: false
  • javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis default: false
  • javascript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces default: false
  • javascript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces default: false
  • javascript.format.insertSpaceAfterTypeAssertion default: false
  • javascript.format.placeOpenBraceOnNewLineForFunctions default: false
  • javascript.format.placeOpenBraceOnNewLineForControlBlocks default: false

Configurations are the same as with VSCode. Try completion with tsserver, typescript or javascript in your coc-settings.json.

Related extensions

Trouble shooting

  • Add "tsserver.log": "verbose" to your coc-settings.json (opened by command :CocConfig)
  • To trace LSP communication, add "tsserver.trace.server": "verbose" to your coc-settings.json
  • Restart coc server by command :CocRestart
  • Make the issue happen.
  • Open tsserver log file by command CocCommand tsserver.openTsServerLog
  • Open tsserver output channel by command CocCommand workspace.showOutput tsserver

If you find any issues, please create an issue.



You can’t perform that action at this time.