From 7853e65503bc220b4bbf09a26fc217a4a91df063 Mon Sep 17 00:00:00 2001 From: Marius Date: Wed, 18 Mar 2026 13:58:23 +0100 Subject: [PATCH] fix(vscode): skip non-file URIs in ImportDefinitionsService parser lookup (#7239) VS Code output panel URIs (e.g. output:tasks) were being passed to getParserForFile, causing TypeError when tree-sitter Parser failed to load. Add early-return for non-file URI schemes and a defensive null check on the Parser export. --- .../core/autocomplete/context/ImportDefinitionsService.ts | 6 ++++++ .../autocomplete/continuedev/core/util/treeSitter.ts | 3 +++ 2 files changed, 9 insertions(+) diff --git a/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/ImportDefinitionsService.ts b/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/ImportDefinitionsService.ts index 247778c91ce..538d79d218f 100644 --- a/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/ImportDefinitionsService.ts +++ b/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/context/ImportDefinitionsService.ts @@ -33,6 +33,12 @@ export class ImportDefinitionsService { return null } + // Skip non-file URIs (e.g. output:tasks, vscode:, untitled:) — these are + // VS Code virtual documents that have no parseable source. + if (/^[a-zA-Z][\w+.-]*:/.test(filepath) && !filepath.startsWith("file:") && !filepath.startsWith("/")) { + return null + } + const parser = await getParserForFile(filepath) if (!parser) { return { diff --git a/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/treeSitter.ts b/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/treeSitter.ts index 3d3ca9b6d02..a8aa4961f69 100644 --- a/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/treeSitter.ts +++ b/packages/kilo-vscode/src/services/autocomplete/continuedev/core/util/treeSitter.ts @@ -126,6 +126,9 @@ export async function getParserForFile(filepath: string) { try { // Dynamically import Parser to avoid issues with WASM loading const { Parser } = require("web-tree-sitter") + if (!Parser) { + return undefined + } await Parser.init() const parser = new Parser()