From 351c7bacb483b2bd29c844227b27a980d0fdb32f Mon Sep 17 00:00:00 2001 From: Gabriel Nordeborn Date: Thu, 7 Mar 2024 09:44:09 +0100 Subject: [PATCH 1/2] null checks for various extension config things --- CHANGELOG.md | 4 ++++ server/src/config.ts | 8 ++++---- server/src/incrementalCompilation.ts | 6 ++++-- server/src/server.ts | 12 ++++++------ 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6cbe16bdf..e36157190 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ ## master +#### :bug: Bug Fix + +- Fix null checks for editor config, so things don't blow up. + ## 1.44.0 #### :rocket: New Feature diff --git a/server/src/config.ts b/server/src/config.ts index 33db6743e..57ec3c88c 100644 --- a/server/src/config.ts +++ b/server/src/config.ts @@ -5,17 +5,17 @@ export type send = (msg: Message) => void; export interface extensionConfiguration { allowBuiltInFormatter: boolean; askToStartBuild: boolean; - inlayHints: { + inlayHints?: { enable: boolean; maxLength: number | null; }; codeLens: boolean; binaryPath: string | null; platformPath: string | null; - signatureHelp: { + signatureHelp?: { enabled: boolean; }; - incrementalTypechecking: { + incrementalTypechecking?: { enabled: boolean; acrossFiles: boolean; debugLogging: boolean; @@ -40,7 +40,7 @@ let config: { extensionConfiguration: extensionConfiguration } = { }, incrementalTypechecking: { enabled: false, - acrossFiles: true, + acrossFiles: false, debugLogging: true, }, }, diff --git a/server/src/incrementalCompilation.ts b/server/src/incrementalCompilation.ts index 11fa581f0..74cef0d61 100644 --- a/server/src/incrementalCompilation.ts +++ b/server/src/incrementalCompilation.ts @@ -11,7 +11,9 @@ import * as c from "./constants"; import * as chokidar from "chokidar"; function debug() { - return config.extensionConfiguration.incrementalTypechecking.debugLogging; + return ( + config.extensionConfiguration.incrementalTypechecking?.debugLogging ?? false + ); } const INCREMENTAL_FOLDER_NAME = "___incremental"; @@ -420,7 +422,7 @@ async function figureOutBscArgs(entry: IncrementallyCompiledFileInfo) { let callArgs: Array = []; - if (config.extensionConfiguration.incrementalTypechecking.acrossFiles) { + if (config.extensionConfiguration.incrementalTypechecking?.acrossFiles) { callArgs.push( "-I", path.resolve(entry.project.rootPath, INCREMENTAL_FILE_FOLDER_LOCATION) diff --git a/server/src/server.ts b/server/src/server.ts index d25976550..c407b9dba 100644 --- a/server/src/server.ts +++ b/server/src/server.ts @@ -191,7 +191,7 @@ let deleteProjectDiagnostics = (projectRootPath: string) => { }); projectsFiles.delete(projectRootPath); - if (config.extensionConfiguration.incrementalTypechecking.enabled) { + if (config.extensionConfiguration.incrementalTypechecking?.enabled) { ic.removeIncrementalFileFolder(projectRootPath); } } @@ -239,7 +239,7 @@ let openedFile = (fileUri: string, fileContent: string) => { if (projectRootPath != null) { let projectRootState = projectsFiles.get(projectRootPath); if (projectRootState == null) { - if (config.extensionConfiguration.incrementalTypechecking.enabled) { + if (config.extensionConfiguration.incrementalTypechecking?.enabled) { ic.recreateIncrementalFileFolder(projectRootPath); } projectRootState = { @@ -319,7 +319,7 @@ let openedFile = (fileUri: string, fileContent: string) => { let closedFile = (fileUri: string) => { let filePath = fileURLToPath(fileUri); - if (config.extensionConfiguration.incrementalTypechecking.enabled) { + if (config.extensionConfiguration.incrementalTypechecking?.enabled) { ic.handleClosedFile(filePath); } @@ -349,7 +349,7 @@ let updateOpenedFile = (fileUri: string, fileContent: string) => { let filePath = fileURLToPath(fileUri); assert(stupidFileContentCache.has(filePath)); stupidFileContentCache.set(filePath, fileContent); - if (config.extensionConfiguration.incrementalTypechecking.enabled) { + if (config.extensionConfiguration.incrementalTypechecking?.enabled) { ic.handleUpdateOpenedFile(filePath, fileContent, send, () => { if (config.extensionConfiguration.codeLens) { sendCodeLensRefresh(); @@ -418,7 +418,7 @@ function inlayHint(msg: p.RequestMessage) { filePath, params.range.start.line, params.range.end.line, - config.extensionConfiguration.inlayHints.maxLength, + config.extensionConfiguration.inlayHints?.maxLength, ], msg ); @@ -794,7 +794,7 @@ function format(msg: p.RequestMessage): Array { } let updateDiagnosticSyntax = (fileUri: string, fileContent: string) => { - if (config.extensionConfiguration.incrementalTypechecking.enabled) { + if (config.extensionConfiguration.incrementalTypechecking?.enabled) { // The incremental typechecking already sends syntax diagnostics. return; } From 6f984a29d2d27fe1637945b26bc4ccfd36b82f9f Mon Sep 17 00:00:00 2001 From: Gabriel Nordeborn Date: Thu, 7 Mar 2024 09:46:12 +0100 Subject: [PATCH 2/2] changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e36157190..80fd1e168 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ #### :bug: Bug Fix -- Fix null checks for editor config, so things don't blow up. +- Fix null checks for editor config, so things don't blow up. https://github.com/rescript-lang/rescript-vscode/pull/944 ## 1.44.0