From 929e7ae1e68e4ae8f70b4ce49298637b072e8ec5 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Mon, 19 Jan 2026 07:45:44 +0800 Subject: [PATCH] Remove `color` from languages (#18681) --- src/language-js/languages.evaluate.js | 1 - src/utilities/create-language.js | 21 ++++++++------------- 2 files changed, 8 insertions(+), 14 deletions(-) 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",