{ "name": "coc-tsserver", "version": "1.9.12", "description": "tsserver extension for coc.nvim", "main": "lib/index.js", "publisher": "chemzqm", "engines": { "coc": "^0.0.80" }, "repository": { "type": "git", "url": "https://github.com/neoclide/coc-tsserver.git" }, "keywords": [ "coc.nvim", "tsserver", "typescript" ], "scripts": { "prepare": "node esbuild.js" }, "activationEvents": [ "onLanguage:javascript", "onLanguage:javascriptreact", "onLanguage:javascript.jsx", "onLanguage:typescript", "onLanguage:typescript.tsx", "onLanguage:typescript.jsx", "onLanguage:typescriptreact", "onLanguage:jsx-tags", "onLanguage:jsonc", "onCommand:_typescript.configurePlugin", "onCommand:typescript.reloadProjects", "onCommand:javascript.reloadProjects", "onCommand:javascript.goToProjectConfig", "onCommand:typescript.goToProjectConfig", "onCommand:typescript.openTsServerLog", "onCommand:tsserver.watchBuild" ], "contributes": { "rootPatterns": [ { "filetype": "javascript", "patterns": [ "package.json", "jsconfig.json" ] }, { "filetype": "javascriptreact", "patterns": [ "package.json", "jsconfig.json" ] }, { "filetype": "typescript", "patterns": [ "package.json", "tsconfig.json" ] }, { "filetype": "typescriptreact", "patterns": [ "package.json", "tsconfig.json" ] } ], "commands": [ { "title": "Reload current project", "category": "TSServer", "command": "tsserver.reloadProjects" }, { "title": "Open log file of tsserver.", "category": "TSServer", "command": "tsserver.openTsServerLog" }, { "title": "Open project config file.", "category": "TSServer", "command": "tsserver.goToProjectConfig" }, { "title": "Restart tsserver", "category": "TSServer", "command": "tsserver.restart" }, { "title": "Find File References", "category": "TSServer", "command": "tsserver.findAllFileReferences" }, { "title": "Run `tsc --watch` for current project by use vim's job feature.", "category": "TSServer", "command": "tsserver.watchBuild" }, { "title": "Fix autofixable problems of current document.", "category": "TSServer", "command": "tsserver.executeAutofix" } ], "configuration": { "type": "object", "title": "Tsserver", "properties": { "tsserver.enable": { "type": "boolean", "default": true, "description": "Enable tsserver extension" }, "tsserver.tsconfigPath": { "type": "string", "default": "tsconfig.json", "description": "Path to tsconfig file for the `tsserver.watchBuild` command. Defaults to `tsconfig.json`." }, "tsserver.locale": { "type": [ "string", "null" ], "default": null, "description": "Sets the locale used to report JavaScript and TypeScript errors. Default of `null` uses english." }, "tsserver.typingsCacheLocation": { "type": "string", "default": "", "description": "Folder path for cache typings" }, "tsserver.formatOnType": { "type": "boolean", "default": true, "description": "Run format on type special characters." }, "tsserver.enableJavascript": { "type": "boolean", "default": true, "description": "Use tsserver for javascript files" }, "tsserver.ignoreLocalTsserver": { "type": "boolean", "default": false, "description": "Always use tsserver module from tsserver.tsdk or tsserver extension." }, "tsserver.maxTsServerMemory": { "type": "number", "default": 0, "description": "Set the maximum amount of memory to allocate to the TypeScript server process" }, "tsserver.watchOptions": { "type": "object", "description": "Configure which watching strategies should be used to keep track of files and directories. Requires using TypeScript 3.8+ in the workspace.", "properties": { "watchFile": { "type": "string", "description": "Strategy for how individual files are watched.", "enum": [ "fixedPollingInterval", "priorityPollingInterval", "dynamicPriorityPolling", "useFsEvents", "useFsEventsOnParentDirectory" ], "default": "useFsEvents" }, "watchDirectory": { "type": "string", "description": "Strategy for how entire directory trees are watched under systems that lack recursive file-watching functionality.", "enum": [ "fixedPollingInterval", "dynamicPriorityPolling", "useFsEvents" ], "default": "useFsEvents" }, "fallbackPolling": { "type": "string", "description": "When using file system events, this option specifies the polling strategy that gets used when the system runs out of native file watchers and/or doesn’t support native file watchers.", "enum": [ "fixedPollingInterval", "priorityPollingInterval", "dynamicPriorityPolling" ] }, "synchronousWatchDirectory": { "type": "boolean", "description": "Disable deferred watching on directories. Deferred watching is useful when lots of file changes might occur at once (e.g. a change in node_modules from running npm install), but you might want to disable it with this flag for some less-common setups." } } }, "tsserver.tsdk": { "type": "string", "default": "", "description": "Directory contains tsserver.js," }, "tsserver.npm": { "type": "string", "default": "", "description": "Executable path of npm for download typings" }, "tsserver.log": { "type": "string", "default": "off", "enum": [ "normal", "terse", "verbose", "off" ], "description": "Log level of tsserver" }, "tsserver.trace.server": { "type": "string", "default": "off", "enum": [ "off", "messages", "verbose" ], "description": "Trace level of tsserver" }, "tsserver.enableTracing": { "type": "boolean", "default": false, "description": "Enables tracing TS server performance to a directory. These trace files can be used to diagnose TS Server performance issues. The log may contain file paths, source code, and other potentially sensitive information from your project.", "scope": "window" }, "tsserver.pluginPaths": { "type": "array", "default": [], "items": { "type": "string" }, "description": "Folders contains tsserver plugins" }, "tsserver.reportStyleChecksAsWarnings": { "type": "boolean", "default": true }, "tsserver.implicitProjectConfig.checkJs": { "type": "boolean", "default": false, "description": "Enable checkJs for implicit project" }, "tsserver.implicitProjectConfig.experimentalDecorators": { "type": "boolean", "default": false, "description": "Enable experimentalDecorators for implicit project" }, "tsserver.disableAutomaticTypeAcquisition": { "type": "boolean", "default": false, "description": "Disable download of typings" }, "tsserver.useBatchedBufferSync": { "type": "boolean", "default": true, "description": "Use batched buffer sync support." }, "typescript.check.npmIsInstalled": { "type": "boolean", "default": true, "markdownDescription": "Check if npm is installed for [Automatic Type Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).", "scope": "window" }, "typescript.showUnused": { "type": "boolean", "default": true, "description": "Show unused variable hint." }, "typescript.showDeprecated": { "type": "boolean", "default": true, "description": "Show deprecated variable hint." }, "typescript.updateImportsOnFileMove.enable": { "type": "boolean", "default": true, "description": "Enable update imports on file move." }, "typescript.implementationsCodeLens.enable": { "type": "boolean", "default": true, "description": "Enable codeLens for implementations" }, "typescript.referencesCodeLens.enable": { "type": "boolean", "default": true, "description": "Enable codeLens for references" }, "typescript.referencesCodeLens.showOnAllFunctions": { "type": "boolean", "default": false, "description": "Enable/disable references CodeLens on all functions in typescript files.", "scope": "window" }, "typescript.preferences.importModuleSpecifier": { "type": "string", "default": "shortest", "description": "Preferred path style for auto imports.", "enumDescriptions": [ "Prefers a non-relative import only if one is available that has fewer path segments than a relative import", "Prefers a relative path to the imported file location", "Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.", "Prefers a non-relative import only if the relative import path would leave the package or project directory. Requires using TypeScript 4.2+ in the workspace." ], "enum": [ "shortest", "relative", "non-relative", "project-relative" ] }, "typescript.preferences.importModuleSpecifierEnding": { "type": "string", "enum": [ "auto", "minimal", "index", "js" ], "default": "auto", "description": "Preferred path ending for auto imports.", "scope": "resource" }, "typescript.preferences.jsxAttributeCompletionStyle": { "type": "string", "enum": [ "auto", "braces", "none" ], "markdownEnumDescriptions": [ "Insert `={}` or `=\"\"` after attribute names based on the prop type.", "Insert `={}` after attribute names.", "Only insert attribute names." ], "default": "auto", "description": "Preferred style for JSX attribute completions.", "scope": "resource" }, "typescript.preferences.includePackageJsonAutoImports": { "type": "string", "enum": [ "auto", "on", "off" ], "enumDescriptions": [ "Search dependencies based on estimated performance impact.", "Always search dependencies.", "Never search dependencies." ], "default": "auto", "markdownDescription": "Enable/disable searching `package.json` dependencies for available auto imports.", "scope": "window" }, "typescript.preferences.quoteStyle": { "type": "string", "default": "auto", "enum": [ "auto", "single", "double" ] }, "typescript.preferences.useAliasesForRenames": { "type": "boolean", "default": true, "description": "Enable/disable introducing aliases for object shorthand properties during renames. Requires using TypeScript 3.4 or newer in the workspace.", "scope": "resource" }, "typescript.suggestionActions.enabled": { "type": "boolean", "default": true, "description": "Enable/disable suggestion diagnostics for TypeScript files in the editor. Requires using TypeScript 2.8 or newer in the workspace." }, "typescript.validate.enable": { "type": "boolean", "default": true, "description": "Enable/disable TypeScript validation." }, "typescript.suggest.enabled": { "type": "boolean", "default": true }, "typescript.suggest.paths": { "type": "boolean", "default": true, "description": "Enable/disable suggest paths in import statement and require calls" }, "typescript.suggest.importStatements": { "type": "boolean", "default": true }, "typescript.suggest.autoImports": { "type": "boolean", "default": true, "description": "Enable/disable auto import suggests." }, "typescript.suggest.completeFunctionCalls": { "type": "boolean", "default": true, "description": "Enable snippet for method suggestion" }, "typescript.suggest.includeCompletionsForImportStatements": { "type": "boolean", "default": true, "description": "Enable/disable auto-import-style completions on partially-typed import statements. Requires using TypeScript 4.3+ in the workspace.", "scope": "resource" }, "typescript.suggest.includeCompletionsWithSnippetText": { "type": "boolean", "default": true, "description": "Enable/disable snippet completions from TS Server. Requires using TypeScript 4.3+ in the workspace.", "scope": "resource" }, "typescript.suggest.classMemberSnippets.enabled": { "type": "boolean", "default": true, "description": "Enable/disable snippet completions for class members. Requires using TypeScript 4.5+ in the workspace", "scope": "resource" }, "typescript.suggest.jsdoc.generateReturns": { "type": "boolean", "default": true, "markdownDescription": "Enable/disable generating `@return` annotations for JSDoc templates. Requires using TypeScript 4.2+ in the workspace.", "scope": "resource" }, "typescript.format.enabled": { "type": "boolean", "default": true, "description": "Enable format for typescript." }, "typescript.format.insertSpaceAfterCommaDelimiter": { "type": "boolean", "default": true }, "typescript.format.insertSpaceAfterConstructor": { "type": "boolean", "default": false }, "typescript.format.insertSpaceAfterSemicolonInForStatements": { "type": "boolean", "default": true }, "typescript.format.insertSpaceBeforeAndAfterBinaryOperators": { "type": "boolean", "default": true }, "typescript.format.insertSpaceAfterKeywordsInControlFlowStatements": { "type": "boolean", "default": true }, "typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": { "type": "boolean", "default": true }, "typescript.format.insertSpaceBeforeFunctionParenthesis": { "type": "boolean", "default": false }, "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": { "type": "boolean", "default": false }, "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": { "type": "boolean", "default": false }, "typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": { "type": "boolean", "default": false }, "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": { "type": "boolean", "default": false }, "typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": { "type": "boolean", "default": false }, "typescript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": { "type": "boolean", "default": false }, "typescript.format.insertSpaceAfterTypeAssertion": { "type": "boolean", "default": false }, "typescript.format.placeOpenBraceOnNewLineForFunctions": { "type": "boolean", "default": false }, "typescript.format.placeOpenBraceOnNewLineForControlBlocks": { "type": "boolean", "default": false }, "typescript.format.semicolons": { "type": "string", "default": "ignore", "description": "Defines handling of optional semicolons. Requires using TypeScript 3.7 or newer in the workspace.", "scope": "resource", "enum": [ "ignore", "insert", "remove" ] }, "typescript.suggest.includeAutomaticOptionalChainCompletions": { "type": "boolean", "default": true, "description": "Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires TS 3.7+ and strict null checks to be enabled.", "scope": "resource" }, "typescript.workspaceSymbols.scope": { "type": "string", "enum": [ "allOpenProjects", "currentProject" ], "default": "allOpenProjects", "scope": "window" }, "typescript.autoClosingTags": { "type": "boolean", "default": true, "description": "Enable/disable automatic closing of JSX tags." }, "javascript.showUnused": { "type": "boolean", "default": true, "description": "Show unused variable hint." }, "javascript.showDeprecated": { "type": "boolean", "default": true, "description": "Show deprecated variable hint." }, "javascript.updateImportsOnFileMove.enable": { "type": "boolean", "default": true }, "javascript.implementationsCodeLens.enable": { "type": "boolean", "default": true }, "javascript.referencesCodeLens.enable": { "type": "boolean", "default": true }, "javascript.referencesCodeLens.showOnAllFunctions": { "type": "boolean", "default": false, "description": "Enable/disable references CodeLens on all functions in JavaScript files.", "scope": "window" }, "javascript.preferences.importModuleSpecifier": { "type": "string", "default": "shortest", "description": "Preferred path style for auto imports.", "enumDescriptions": [ "Prefers a non-relative import only if one is available that has fewer path segments than a relative import", "Prefers a relative path to the imported file location", "Prefers a non-relative import based on the `baseUrl` or `paths` configured in your `jsconfig.json` / `tsconfig.json`.", "Prefers a non-relative import only if the relative import path would leave the package or project directory. Requires using TypeScript 4.2+ in the workspace." ], "enum": [ "shortest", "relative", "non-relative", "project-relative" ] }, "javascript.preferences.importModuleSpecifierEnding": { "type": "string", "enum": [ "auto", "minimal", "index", "js" ], "default": "auto", "description": "Preferred path ending for auto imports.", "scope": "resource" }, "javascript.preferences.jsxAttributeCompletionStyle": { "type": "string", "enum": [ "auto", "braces", "none" ], "markdownEnumDescriptions": [ "Insert `={}` or `=\"\"` after attribute names based on the prop type.", "Insert `={}` after attribute names.", "Only insert attribute names." ], "default": "auto", "description": "Preferred style for JSX attribute completions.", "scope": "resource" }, "javascript.preferences.quoteStyle": { "type": "string", "default": "auto", "enum": [ "auto", "single", "double" ] }, "javascript.preferences.useAliasesForRenames": { "type": "boolean", "default": true, "description": "Enable/disable introducing aliases for object shorthand properties during renames. Requires using TypeScript 3.4 or newer in the workspace.", "scope": "resource" }, "javascript.validate.enable": { "type": "boolean", "default": true, "description": "Enable/disable JavaScript validation." }, "javascript.suggestionActions.enabled": { "type": "boolean", "default": true, "description": "Enable/disable suggestion diagnostics for JavaScript files in the editor. Requires using TypeScript 2.8 or newer in the workspace." }, "javascript.suggest.names": { "type": "boolean", "default": true }, "javascript.suggest.enabled": { "type": "boolean", "default": true }, "javascript.suggest.paths": { "type": "boolean", "default": true, "description": "Enable/disable suggest paths in import statement and require calls" }, "javascript.suggest.autoImports": { "type": "boolean", "default": true, "description": "Enable/disable auto import suggests." }, "javascript.suggest.completeFunctionCalls": { "type": "boolean", "default": true, "description": "Enable snippet for method suggestion" }, "javascript.suggest.includeCompletionsForImportStatements": { "type": "boolean", "default": true, "description": "Enable/disable auto-import-style completions on partially-typed import statements. Requires using TypeScript 4.3+ in the workspace.", "scope": "resource" }, "javascript.suggest.classMemberSnippets.enabled": { "type": "boolean", "default": true, "description": "Enable/disable snippet completions for class members. Requires using TypeScript 4.5+ in the workspace", "scope": "resource" }, "javascript.suggest.jsdoc.generateReturns": { "type": "boolean", "default": true, "markdownDescription": "Enable/disable generating `@return` annotations for JSDoc templates. Requires using TypeScript 4.2+ in the workspace.", "scope": "resource" }, "javascript.format.enabled": { "type": "boolean", "default": true, "description": "Enable format for javascript." }, "javascript.format.insertSpaceAfterCommaDelimiter": { "type": "boolean", "default": true }, "javascript.format.insertSpaceAfterConstructor": { "type": "boolean", "default": false }, "javascript.format.insertSpaceAfterSemicolonInForStatements": { "type": "boolean", "default": true }, "javascript.format.insertSpaceBeforeAndAfterBinaryOperators": { "type": "boolean", "default": true }, "javascript.format.insertSpaceAfterKeywordsInControlFlowStatements": { "type": "boolean", "default": true }, "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": { "type": "boolean", "default": true }, "javascript.format.insertSpaceBeforeFunctionParenthesis": { "type": "boolean", "default": false }, "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": { "type": "boolean", "default": false }, "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": { "type": "boolean", "default": false }, "javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": { "type": "boolean", "default": false }, "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": { "type": "boolean", "default": false }, "javascript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": { "type": "boolean", "default": false }, "javascript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": { "type": "boolean", "default": false }, "javascript.format.insertSpaceAfterTypeAssertion": { "type": "boolean", "default": false }, "javascript.format.placeOpenBraceOnNewLineForFunctions": { "type": "boolean", "default": false }, "javascript.format.placeOpenBraceOnNewLineForControlBlocks": { "type": "boolean", "default": false }, "javascript.suggest.includeAutomaticOptionalChainCompletions": { "type": "boolean", "default": true, "description": "Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires TS 3.7+ and strict null checks to be enabled.", "scope": "resource" }, "typescript.inlayHints.parameterNames.enabled": { "type": "string", "enum": [ "none", "literals", "all" ], "enumDescriptions": [ "Disable parameter name hints.", "Enable parameter name hints only for literal arguments.", "Enable parameter name hints for literal and non-literal arguments." ], "default": "none", "description": "Enable/disable inlay hints of parameter names.", "scope": "resource" }, "typescript.inlayHints.parameterNames.suppressWhenArgumentMatchesName": { "type": "boolean", "default": true, "description": "Suppress parameter name hints on arguments whose text is identical to the parameter name.", "scope": "resource" }, "typescript.inlayHints.parameterTypes.enabled": { "type": "boolean", "default": false, "description": "Enable/disable inlay hints of parameter types.", "scope": "resource" }, "typescript.inlayHints.variableTypes.enabled": { "type": "boolean", "default": false, "description": "Enable/disable inlay hints of variable types.", "scope": "resource" }, "typescript.inlayHints.propertyDeclarationTypes.enabled": { "type": "boolean", "default": false, "description": "Enable/disable inlay hints of property declarations.", "scope": "resource" }, "typescript.inlayHints.functionLikeReturnTypes.enabled": { "type": "boolean", "default": false, "description": "Enable/disable inlay hints of return type for function signatures.", "scope": "resource" }, "typescript.inlayHints.enumMemberValues.enabled": { "type": "boolean", "default": false, "description": "Enable/disable inlay hints of enum member values.", "scope": "resource" }, "javascript.inlayHints.parameterNames.enabled": { "type": "string", "enum": [ "none", "literals", "all" ], "enumDescriptions": [ "Disable parameter name hints.", "Enable parameter name hints only for literal arguments.", "Enable parameter name hints for literal and non-literal arguments." ], "default": "none", "description": "Enable/disable inlay hints of parameter names.", "scope": "resource" }, "javascript.inlayHints.parameterNames.suppressWhenArgumentMatchesName": { "type": "boolean", "default": true, "description": "Suppress parameter name hints on arguments whose text is identical to the parameter name.", "scope": "resource" }, "javascript.inlayHints.parameterTypes.enabled": { "type": "boolean", "default": false, "description": "Enable/disable inlay hints of parameter types.", "scope": "resource" }, "javascript.inlayHints.variableTypes.enabled": { "type": "boolean", "default": false, "description": "Enable/disable inlay hints of variable types.", "scope": "resource" }, "javascript.inlayHints.propertyDeclarationTypes.enabled": { "type": "boolean", "default": false, "description": "Enable/disable inlay hints of property declarations.", "scope": "resource" }, "javascript.inlayHints.functionLikeReturnTypes.enabled": { "type": "boolean", "default": false, "description": "Enable/disable inlay hints of return type for function signatures.", "scope": "resource" }, "javascript.inlayHints.enumMemberValues.enabled": { "type": "boolean", "default": false, "description": "Enable/disable inlay hints of enum member values.", "scope": "resource" }, "javascript.autoClosingTags": { "type": "boolean", "default": true, "description": "Enable/disable automatic closing of JSX tags." }, "javascript.format.semicolons": { "type": "string", "default": "ignore", "description": "Defines handling of optional semicolons. Requires using TypeScript 3.7 or newer in the workspace.", "scope": "resource", "enum": [ "ignore", "insert", "remove" ] } } }, "snippets": [ { "language": "typescript", "path": "./snippets/typescript.json" }, { "language": "typescriptreact", "path": "./snippets/typescript.json" } ] }, "author": "chemzqm@gmail.com", "license": "MIT", "devDependencies": { "@types/node": "^12.12.12", "coc.nvim": "^0.0.81-next.11", "esbuild": "^0.14.11", "semver": "^7.3.5", "vscode-languageserver-protocol": "^3.16.0", "which": "^2.0.2" }, "dependencies": { "typescript": "^4.5.4" } }