typescript - 语义突出显示在我的 VS Code 扩展中不起作用
问题描述
我按照此处的说明在我的 VS Code 扩展上实现语义突出显示。这是我写的代码:
MySemanticTokenProvider.ts
import * as vscode from 'vscode';
const tokenTypes = ['variable'];
const tokenModifiers = ['declaration'];
export const legend = new vscode.SemanticTokensLegend(tokenTypes, tokenModifiers);
export const provider: vscode.DocumentSemanticTokensProvider = {
provideDocumentSemanticTokens(document: vscode.TextDocument): vscode.ProviderResult<vscode.SemanticTokens> {
// analyze the document and return semantic tokens
const tokensBuilder = new vscode.SemanticTokensBuilder(legend);
// highlight the characters from position 1, 1 to position 1, 5
tokensBuilder.push(
new vscode.Range(new vscode.Position(1, 1), new vscode.Position(1, 5)),
'variable',
['declaration']
);
return tokensBuilder.build();
}
};
export const documentSelector = { language: 'mylanguage', scheme: 'file' };
settings.json
{
"editor.semanticHighlighting.enabled": "configuredByTheme"
}
mylanguagetheme.json
{
"name": "mylanguage",
"type": "light",
...
"semanticHighlighting": true,
"semanticTokenColors": {
"variable.declaration:mylanguage": {
"foreground": "#0f8f90"
}
}
extension.ts
import * as vscode from 'vscode';
import {legend, provider, documentSelector} from './MySemanticTokenProvider';
...
context.subscriptions.push(
vscode.languages.registerDocumentSemanticTokensProvider(documentSelector, provider, legend)
);
根据我的代码,我希望编辑器中从位置 (1, 1) 到位置 (1, 5) 的字符被突出显示;但是,语义突出显示不起作用。我该如何解决这个问题?
解决方案
推荐阅读
- sharepoint-2013 - 如何在 SharePoint 中添加文档库、公告应用程序
- java - 如何删除android studio中基本活动中的下一个按钮?
- json - 如何区分显式分配 null 到字段或不在 @PATCH 的 json 文件中的字段
- java - 如果应用了 @Id 注释,则 Mongo DB @Field("transaction_id") 将被忽略
- mysql - 我怎样才能在它之前得到每个月的总和?
- java - 有人知道黄瓜是否可以支持 HSF API 自动化吗?或任何工具都可以支持 HSF Api 自动化
- scala - 如何根据另一列的值填充 Spark DataFrame 列?
- javascript - On keyup 不满足条件
- python - 有没有办法按有序类别中的项目数过滤熊猫数据框?
- android - 既然 Flow 存在,是否有理由使用 Android 约束布局链?