diff --git a/packages/ide/vscode/package.json b/packages/ide/vscode/package.json index 44f22fcc..634044c6 100644 --- a/packages/ide/vscode/package.json +++ b/packages/ide/vscode/package.json @@ -1,7 +1,7 @@ { "name": "zenstack-v3", "publisher": "zenstack", - "version": "3.0.9", + "version": "3.0.11", "displayName": "ZenStack V3 Language Tools", "description": "VSCode extension for ZenStack (v3) ZModel language", "private": true, diff --git a/packages/language/src/module.ts b/packages/language/src/module.ts index cff4ac0e..df83d4e0 100644 --- a/packages/language/src/module.ts +++ b/packages/language/src/module.ts @@ -94,6 +94,8 @@ export function createZModelLanguageServices( // when documents reach Parsed state, inspect plugin declarations and load corresponding // plugin zmodel docs + // Note we must use `onBuildPhase` instead of `onDocumentPhase` here because the latter is + // not called when not running inside a language server. shared.workspace.DocumentBuilder.onBuildPhase(DocumentState.Parsed, async (documents) => { for (const doc of documents) { if (doc.parseResult.lexerErrors.length > 0 || doc.parseResult.parserErrors.length > 0) { @@ -101,6 +103,10 @@ export function createZModelLanguageServices( continue; } + if (doc.uri.scheme !== 'file') { + continue; + } + const schemaPath = fileURLToPath(doc.uri.toString()); const pluginSchemas = getPluginDocuments(doc.parseResult.value as Model, schemaPath); for (const plugin of pluginSchemas) {