diff --git a/src/language-js/languages.evaluate.js b/src/language-js/languages.evaluate.js index d618250e7..9228aa7cf 100644 --- a/src/language-js/languages.evaluate.js +++ b/src/language-js/languages.evaluate.js @@ -66,7 +66,6 @@ const languages = [ aceMode: "javascript", codemirrorMode: "jsx", codemirrorMimeType: "text/jsx", - color: undefined, })), createLanguage(linguistLanguages.TypeScript, () => ({ parsers: ["typescript", "babel-ts"], diff --git a/src/utilities/create-language.js b/src/utilities/create-language.js index 516c3b187..875cc5d67 100644 --- a/src/utilities/create-language.js +++ b/src/utilities/create-language.js @@ -1,31 +1,26 @@ import * as assert from "#universal/assert"; -/** @import {Language as LinguistLanguage} from 'linguist-languages' */ /** -@typedef {{ - name: string; +@import {Language as LinguistLanguage} from "linguist-languages" +@typedef {keyof LinguistLanguage} LinguistLanguageFields +@typedef {"color" | "languageId"} ExcludedLinguistLanguageFields +@typedef {Omit & { parsers?: readonly string[]; - group?: string | undefined; - tmScope?: string | undefined; - aceMode?: string | undefined; - codemirrorMode?: string | undefined; - codemirrorMimeType?: string | undefined; - aliases?: readonly string[] | undefined; - extensions?: readonly string[] | undefined; - filenames?: readonly string[] | undefined; - linguistLanguageId?: number | undefined; - vscodeLanguageIds?: readonly string[] | undefined; + linguistLanguageId?: LinguistLanguage["languageId"]; + vscodeLanguageIds?: string[]; interpreters?: readonly string[] | undefined; isSupported?: ((options: {filepath: string}) => boolean) | undefined; }} Language */ +/** @type {Set} */ const excludedFields = new Set([ "color", // Rename as `linguistLanguageId` "languageId", ]); +/** @type {Set} */ const arrayTypeFields = new Set([ "parsers", "aliases",