无法对 TreeItem 使用 viewitem == 和 contextValue

问题描述 投票:0回答:1

我有以下 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 。

visual-studio-code vscode-extensions
1个回答
0
投票

正如评论所暗示的,它应该是

viewItem
而不是
viewitem

© www.soinside.com 2019 - 2024. All rights reserved.