我有以下 TreeItem:
class Benchmark extends vscode.TreeItem {
results: BenchmarkResult[] = [];
constructor(name: string) {
super(name);
this.contextValue = 'benchmark';
}
addResult(real_time: number, time_unit: string, iterations: number) {
let result = new BenchmarkResult(real_time, time_unit, iterations);
this.results.push(result);
this.collapsibleState = vscode.TreeItemCollapsibleState.Collapsed;
}
}
我已经设置了 contextValue,因为我希望根据 TreeItem 显示不同的菜单。 我尝试在我的 package.json 中设置它,如下所示:
"menus": {
"view/item/context": [
{
"command": "benchmark-vscode.runBenchmarkBinary",
"title": "Discover/run benchmarks",
"when": "view == benchmarks && viewitem == benchmarkbinary"
},
{
"command": "benchmark-vscode.runBenchmark",
"title": "Run benchmark",
"when": "view == benchmarks && viewitem == benchmark"
}
]
}
但是“何时”值的组合没有达到我的预期。 我要么根本没有菜单,要么在一项下获得所有菜单。 我在这里缺少什么?
N.B 我还尝试了检查上下文键,但我看不到我的 contextValue 。
正如评论所暗示的,它应该是
viewItem
而不是viewitem