Add typescript.check.npmIsInstalled configuration

This commit is contained in:
Qiming Zhao 2021-12-22 01:17:42 +08:00
parent 43e6f62e87
commit 3bd84b1ead
5 changed files with 26 additions and 6 deletions

View file

@ -132,6 +132,9 @@ for guide of coc.nvim's configuration.
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, default: `false`
- `typescript.check.npmIsInstalled`: Check if npm is installed for [Automatic
Type
Acquisition](https://code.visualstudio.com/docs/nodejs/working-with-javascript#_typings-and-automatic-type-acquisition).
- `typescript.updateImportsOnFileMove.enable`:Enable update imports on file
move., default: `true`
- `typescript.implementationsCodeLens.enable`:Enable codeLens for

View file

@ -258,7 +258,7 @@
},
"tsserver.disableAutomaticTypeAcquisition": {
"type": "boolean",
"default": true,
"default": false,
"description": "Disable download of typings"
},
"tsserver.useBatchedBufferSync": {
@ -266,6 +266,12 @@
"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,

View file

@ -177,7 +177,7 @@ export default class FileConfigurationManager {
const config = workspace.getConfiguration(`${language}.preferences`, uri)
const suggestConfig = this.getCompleteOptions(language)
// getImportModuleSpecifierEndingPreference available on ts 2.9.0
const preferences: Proto.UserPreferences & { importModuleSpecifierEnding?: string } = {
const preferences: Proto.UserPreferences = {
quotePreference: this.getQuoteStyle(config),
importModuleSpecifierPreference: getImportModuleSpecifier(config) as any,
importModuleSpecifierEnding: getImportModuleSpecifierEndingPreference(config),
@ -191,6 +191,8 @@ export default class FileConfigurationManager {
includeCompletionsForImportStatements: suggestConfig.includeCompletionsForImportStatements,
includeCompletionsWithClassMemberSnippets: suggestConfig.includeCompletionsWithClassMemberSnippets,
includeCompletionsWithSnippetText: suggestConfig.includeCompletionsWithSnippetText,
allowIncompleteCompletions: true,
displayPartsForJSDoc: true,
}
return preferences
}

View file

@ -97,7 +97,7 @@ export class TypeScriptServiceConfiguration {
}
public get disableAutomaticTypeAcquisition(): boolean {
return this._configuration.get<boolean>('disableAutomaticTypeAcquisition', true)
return this._configuration.get<boolean>('disableAutomaticTypeAcquisition', false)
}
public get formatOnType(): boolean {

View file

@ -1,4 +1,4 @@
import { StatusBarItem, window } from 'coc.nvim'
import { StatusBarItem, workspace, window } from 'coc.nvim'
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
@ -110,10 +110,19 @@ export class AtaProgressReporter {
}
}
private onTypesInstallerInitializationFailed() { // tslint:disable-line
private async onTypesInstallerInitializationFailed() { // tslint:disable-line
this.statusItem.hide()
if (!this._invalid) {
window.showMessage('Could not install typings files for JavaScript language features. Please ensure that NPM is installed', 'error')
const config = workspace.getConfiguration('typescript')
if (config.get<boolean>('check.npmIsInstalled', true)) {
const dontShowAgain = "Don't Show Again"
const selected = await window.showWarningMessage(
"Could not install typings files for JavaScript language features. Please ensure that NPM is installed or configure 'typescript.npm' in your user settings. visit https://go.microsoft.com/fwlink/?linkid=847635 to learn more.",
dontShowAgain)
if (selected === dontShowAgain) {
config.update('check.npmIsInstalled', false, true)
}
}
}
this._invalid = true
}