From d7fec23a8a96fe0626bdb438114a36989df58845 Mon Sep 17 00:00:00 2001 From: Joyce Er Date: Wed, 22 Feb 2023 06:35:34 +0000 Subject: [PATCH] Use `fs.readFile` instead of `openTextDocument` (#175077) --- extensions/extension-editing/src/extensionLinter.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/extensions/extension-editing/src/extensionLinter.ts b/extensions/extension-editing/src/extensionLinter.ts index 1e38459ab0a..bac6bd71e8a 100644 --- a/extensions/extension-editing/src/extensionLinter.ts +++ b/extensions/extension-editing/src/extensionLinter.ts @@ -12,6 +12,7 @@ import * as MarkdownItType from 'markdown-it'; import { languages, workspace, Disposable, TextDocument, Uri, Diagnostic, Range, DiagnosticSeverity, Position, env, l10n } from 'vscode'; import { INormalizedVersion, normalizeVersion, parseVersion } from './extensionEngineValidation'; +import { TextDecoder } from 'util'; const product = JSON.parse(fs.readFileSync(path.join(env.appRoot, 'product.json'), { encoding: 'utf-8' })); const allowedBadgeProviders: string[] = (product.extensionAllowedBadgeProviders || []).map((s: string) => s.toLowerCase()); @@ -69,6 +70,7 @@ export class ExtensionLinter { private timer: NodeJS.Timer | undefined; private markdownIt: MarkdownItType.MarkdownIt | undefined; private parse5: typeof import('parse5') | undefined; + private textDecoder = new TextDecoder(); constructor() { this.disposables.push( @@ -346,8 +348,8 @@ export class ExtensionLinter { } const file = folder.with({ path: path.posix.join(folder.path, 'package.json') }); try { - const document = await workspace.openTextDocument(file); - return parseTree(document.getText()); + const fileContents = await workspace.fs.readFile(file); // #174888 + return parseTree(this.textDecoder.decode(fileContents)); } catch (err) { return undefined; }