From 892d6ec2a2dcc22b216f5d4dcee025c96efc4ccb Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Sat, 30 Apr 2022 20:15:40 -0400 Subject: [PATCH] Fix md workspace cache for untitled files Makes sure we also add all text documents to the list of md docs --- .../src/workspaceContents.ts | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/extensions/markdown-language-features/src/workspaceContents.ts b/extensions/markdown-language-features/src/workspaceContents.ts index d0022682b7e..cd4801b01a3 100644 --- a/extensions/markdown-language-features/src/workspaceContents.ts +++ b/extensions/markdown-language-features/src/workspaceContents.ts @@ -73,13 +73,26 @@ export class VsCodeMdWorkspaceContents extends Disposable implements MdWorkspace async getAllMarkdownDocuments(): Promise { const maxConcurrent = 20; - const resources = await vscode.workspace.findFiles('**/*.md', '**/node_modules/**'); - + const foundFiles = new Set(); const limiter = new Limiter(maxConcurrent); - const results = await Promise.all(resources.map(resource => { - return limiter.queue(() => this.getMarkdownDocument(resource)); + + // Add files on disk + const resources = await vscode.workspace.findFiles('**/*.md', '**/node_modules/**'); + const onDiskResults = await Promise.all(resources.map(resource => { + return limiter.queue(async () => { + const doc = await this.getMarkdownDocument(resource); + if (doc) { + foundFiles.add(doc.uri.toString()); + } + return doc; + }); })); - return coalesce(results); + + // Add opened files (such as untitled files) + const openTextDocumentResults = await Promise.all(vscode.workspace.textDocuments + .filter(doc => !foundFiles.has(doc.uri.toString()) && isMarkdownFile(doc))); + + return coalesce([...onDiskResults, ...openTextDocumentResults]); } public get onDidChangeMarkdownDocument() {