From c9ca2baa77ce41726823c7562015dc0fe0d4f522 Mon Sep 17 00:00:00 2001 From: Ramzi <79337754+heyramzi@users.noreply.github.com> Date: Mon, 13 Apr 2026 19:04:13 +0100 Subject: [PATCH] fix: disable false "Cannot find module" diagnostics in editor (#588) * fix: disable false "Cannot find module" diagnostics in editor Monaco's TypeScript worker runs in isolation without filesystem access, so it cannot resolve imports to project files that aren't open as editor models. This produces false "Cannot find module" diagnostics for every import in TS/JS files, which is misleading noise. Disable semantic validation for both TypeScript and JavaScript defaults. Syntax highlighting and basic validation remain intact. Co-Authored-By: Claude Opus 4.6 (1M context) * fix(monaco): surgically disable TS diagnostics 2307, 2792 instead of all semantic validation --------- Co-authored-by: Claude Opus 4.6 (1M context) Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com> --- src/renderer/src/lib/monaco-setup.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/renderer/src/lib/monaco-setup.ts b/src/renderer/src/lib/monaco-setup.ts index 6d7adef78bd..a8ee26fb5cf 100644 --- a/src/renderer/src/lib/monaco-setup.ts +++ b/src/renderer/src/lib/monaco-setup.ts @@ -31,6 +31,19 @@ globalThis.MonacoEnvironment = { } } +// Why: Monaco's built-in TypeScript worker runs in isolation without filesystem +// access, so it cannot resolve imports to project files that aren't open as +// editor models. This produces false "Cannot find module" diagnostics for every +// import statement. Ignoring specific TS diagnostic codes (e.g., 2307, 2792) +// removes this noise while keeping type checking, auto-complete, and basic +// validation fully functional for local symbols. +monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({ + diagnosticCodesToIgnore: [2307, 2792] +}) +monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({ + diagnosticCodesToIgnore: [2307, 2792] +}) + // Configure Monaco to use the locally bundled editor instead of CDN loader.config({ monaco })