跳到主要内容

ResolvedCodeEditorLanguage

type ResolvedCodeEditorLanguage =
| {
kind: "none";
}
| {
kind: "not-found";
name: string;
}
| {
description: CodeEditorLanguageDescription;
kind: "found";
};

Defined in: language-resolution.ts:31

一次语言解析的结果。

三个分支对应编辑器的三种处置:装上语言扩展(found)、清空语言扩展(none)、 清空并报告配置错误(not-found)。刻意用可辨识联合而不是 CodeEditorLanguageDescription | null —— 后者把「明确不高亮」和「配置写错了」 压成同一个值,调用方无从区分该不该报错。

Union Members​

Type Literal​

{
kind: "none";
}

kind​

readonly kind: "none";

明确不需要语法高亮:语言名为空、为 'plaintext',或候选列表为空。


Type Literal​

{
kind: "not-found";
name: string;
}

kind​

readonly kind: "not-found";

语言名在候选列表里找不到 —— 属配置错误,调用方应向宿主报告。

name​

readonly name: string;

未能解析的语言名,原样保留大小写以便出现在错误信息里。


Type Literal​

{
description: CodeEditorLanguageDescription;
kind: "found";
}

description​

readonly description: CodeEditorLanguageDescription;

命中的语言描述;load() 由调用方按自己的竞态规则发起。

kind​

readonly kind: "found";

解析成功。