mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-26 11:38:51 +01:00
Make script blocks respect js/ts.implicitProjectConfig.strictNullChecks (#179333)
Fixes #179331 Also fixes experimental decorators for script blocks
This commit is contained in:
@@ -103,12 +103,20 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume
|
||||
|
||||
const host = getLanguageServiceHost(languageId === 'javascript' ? ts.ScriptKind.JS : ts.ScriptKind.TS);
|
||||
const globalSettings: Settings = {};
|
||||
|
||||
function updateHostSettings(settings: Settings) {
|
||||
const hostSettings = host.getCompilationSettings();
|
||||
hostSettings.experimentalDecorators = settings?.['js/ts']?.implicitProjectConfig?.experimentalDecorators;
|
||||
hostSettings.strictNullChecks = settings?.['js/ts']?.implicitProjectConfig.strictNullChecks;
|
||||
}
|
||||
|
||||
return {
|
||||
getId() {
|
||||
return languageId;
|
||||
},
|
||||
async doValidation(document: TextDocument, settings = workspace.settings): Promise<Diagnostic[]> {
|
||||
host.getCompilationSettings()['experimentalDecorators'] = settings && settings.javascript && settings.javascript.implicitProjectConfig.experimentalDecorators;
|
||||
updateHostSettings(settings);
|
||||
|
||||
const jsDocument = jsDocuments.get(document);
|
||||
const languageService = await host.getLanguageService(jsDocument);
|
||||
const syntaxDiagnostics: ts.Diagnostic[] = languageService.getSyntacticDiagnostics(jsDocument.uri);
|
||||
|
||||
@@ -37,9 +37,10 @@ export { ClientCapabilities, DocumentContext, LanguageService, HTMLDocument, HTM
|
||||
export { TextDocument } from 'vscode-languageserver-textdocument';
|
||||
|
||||
export interface Settings {
|
||||
css?: any;
|
||||
html?: any;
|
||||
javascript?: any;
|
||||
readonly css?: any;
|
||||
readonly html?: any;
|
||||
readonly javascript?: any;
|
||||
readonly 'js/ts'?: any;
|
||||
}
|
||||
|
||||
export interface Workspace {
|
||||
|
||||
Reference in New Issue
Block a user