From c4225c00115f4e3300a38e3bd36c09c5763428c1 Mon Sep 17 00:00:00 2001 From: Austin Farmer <5827236+farmerau@users.noreply.github.com> Date: Wed, 5 Jan 2022 11:38:32 -0500 Subject: [PATCH] Support detection by file extension --- src/helpers/ArticleHelper.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/helpers/ArticleHelper.ts b/src/helpers/ArticleHelper.ts index 1304218f..d9d2552b 100644 --- a/src/helpers/ArticleHelper.ts +++ b/src/helpers/ArticleHelper.ts @@ -110,8 +110,24 @@ export class ArticleHelper { * Checks if the current file is a markdown file */ public static isMarkdownFile() { - const editor = vscode.window.activeTextEditor; - return (editor && editor.document && (editor.document.languageId.toLowerCase() === "markdown" || editor.document.languageId.toLowerCase() === "mdx")); + const supportedLanguages = ["markdown", "mdx"]; + const supportedFileExtensions = [".md", ".mdx"]; + const document = vscode.window.activeTextEditor?.document; + const languageId = document?.languageId?.toLowerCase(); + const isSupportedLanguage = languageId && supportedLanguages.includes(languageId); + + /** + * It's possible that the file is a file type we support but the user hasn't installed + * language support for. In that case, we'll manually check the extension as a proxy + * for whether or not we support the file. + */ + if (!isSupportedLanguage) { + const fileName = document?.fileName?.toLowerCase(); + + return fileName && supportedFileExtensions.findIndex(fileExtension => fileName.endsWith(fileExtension)) > -1; + } + + return isSupportedLanguage; } /**