@@ -26,12 +26,19 @@ import { assert } from "console";
2626import { WorkspaceEdit } from "vscode-languageserver" ;
2727import { onErrorReported } from "./errorReporter" ;
2828import * as ic from "./incrementalCompilation" ;
29- import config , { extensionConfiguration } from "./config" ;
29+ import config , { extensionConfiguration , initialConfiguration } from "./config" ;
3030import { projectsFiles } from "./projectFiles" ;
3131import { NormalizedPath } from "./utils" ;
3232import { initializeLogger , getLogger , setLogLevel , LogLevel } from "./logger" ;
3333
34- function applyLogLevel ( configuration : extensionConfiguration ) {
34+ function applyUserConfiguration ( configuration : extensionConfiguration ) {
35+ // We always want to spread the initial configuration to ensure all defaults are respected.
36+ config . extensionConfiguration = Object . assign (
37+ { } ,
38+ initialConfiguration ,
39+ configuration ,
40+ ) ;
41+
3542 const debugLoggingEnabled =
3643 configuration . incrementalTypechecking ?. debugLogging === true ;
3744
@@ -538,6 +545,9 @@ let closedFile = async (fileUri: utils.FileURI) => {
538545} ;
539546
540547let updateOpenedFile = ( fileUri : utils . FileURI , fileContent : string ) => {
548+ getLogger ( ) . info (
549+ `Updating opened file ${ fileUri } , incremental TC enabled: ${ config . extensionConfiguration . incrementalTypechecking ?. enable } ` ,
550+ ) ;
541551 let filePath = utils . uriToNormalizedPath ( fileUri ) ;
542552 assert ( stupidFileContentCache . has ( filePath ) ) ;
543553 stupidFileContentCache . set ( filePath , fileContent ) ;
@@ -1488,8 +1498,7 @@ async function onMessage(msg: p.Message) {
14881498 ?. extensionConfiguration as extensionConfiguration | undefined ;
14891499
14901500 if ( initialConfiguration != null ) {
1491- config . extensionConfiguration = initialConfiguration ;
1492- applyLogLevel ( initialConfiguration ) ;
1501+ applyUserConfiguration ( initialConfiguration ) ;
14931502 }
14941503
14951504 // These are static configuration options the client can set to enable certain
@@ -1699,8 +1708,7 @@ async function onMessage(msg: p.Message) {
16991708 extensionConfiguration | null | undefined ,
17001709 ] ;
17011710 if ( configuration != null ) {
1702- config . extensionConfiguration = configuration ;
1703- applyLogLevel ( configuration ) ;
1711+ applyUserConfiguration ( configuration ) ;
17041712 }
17051713 }
17061714 } else if (
0 commit comments