提交 4a6f60ba 编写于 作者: M Martin Aeschlimann

dynamic schemas not updated. Fixes #79363

上级 3eaa4e8b
...@@ -145,11 +145,14 @@ export function activate(context: ExtensionContext) { ...@@ -145,11 +145,14 @@ export function activate(context: ExtensionContext) {
} }
}); });
const schemaDocuments: { [uri: string]: boolean } = {};
// handle content request // handle content request
client.onRequest(VSCodeContentRequest.type, (uriPath: string) => { client.onRequest(VSCodeContentRequest.type, (uriPath: string) => {
let uri = Uri.parse(uriPath); let uri = Uri.parse(uriPath);
if (uri.scheme !== 'http' && uri.scheme !== 'https') { if (uri.scheme !== 'http' && uri.scheme !== 'https') {
return workspace.openTextDocument(uri).then(doc => { return workspace.openTextDocument(uri).then(doc => {
schemaDocuments[uri.toString()] = true;
return doc.getText(); return doc.getText();
}, error => { }, error => {
return Promise.reject(error); return Promise.reject(error);
...@@ -164,10 +167,12 @@ export function activate(context: ExtensionContext) { ...@@ -164,10 +167,12 @@ export function activate(context: ExtensionContext) {
} }
}); });
let handleContentChange = (uri: Uri) => { let handleContentChange = (uriString: string) => {
if (uri.scheme === 'vscode' && uri.authority === 'schemas') { if (schemaDocuments[uriString]) {
client.sendNotification(SchemaContentChangeNotification.type, uri.toString()); client.sendNotification(SchemaContentChangeNotification.type, uriString);
return true;
} }
return false;
}; };
let handleActiveEditorChange = (activeEditor?: TextEditor) => { let handleActiveEditorChange = (activeEditor?: TextEditor) => {
...@@ -184,10 +189,13 @@ export function activate(context: ExtensionContext) { ...@@ -184,10 +189,13 @@ export function activate(context: ExtensionContext) {
} }
}; };
toDispose.push(workspace.onDidChangeTextDocument(e => handleContentChange(e.document.uri))); toDispose.push(workspace.onDidChangeTextDocument(e => handleContentChange(e.document.uri.toString())));
toDispose.push(workspace.onDidCloseTextDocument(d => { toDispose.push(workspace.onDidCloseTextDocument(d => {
handleContentChange(d.uri); const uriString = d.uri.toString();
fileSchemaErrors.delete(d.uri.toString()); if (handleContentChange(uriString)) {
delete schemaDocuments[uriString];
}
fileSchemaErrors.delete(uriString);
})); }));
toDispose.push(window.onDidChangeActiveTextEditor(handleActiveEditorChange)); toDispose.push(window.onDidChangeActiveTextEditor(handleActiveEditorChange));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册