【问题标题】:Command on TreeViewItem item click, VSCode ExtensionTreeViewItem 项上的命令单击,VSCode 扩展
【发布时间】:2019-11-13 12:58:18
【问题描述】:

上下文:有关在 TreeView 的任何项目上构建可点击的编辑按钮的问题。

点击TreeViewItem前面的编辑​​按钮时如何调用回调函数?

编辑按钮的图像: https://code.visualstudio.com/api/extension-guides/tree-view#view-actions

我注意到 TreeItem 实例上的 command 属性并浏览了文档,但无法理解如何使用该命令调用回调函数。

任何帮助将不胜感激。 谢谢

文档:https://code.visualstudio.com/docs/extensionAPI/vscode-api#TreeItem

            "view/item/context": [
                {
                    "command": "issuesList.deleteEntry",
                    "when": "view == issuesList && viewItem == dependency",
                    "group": "inline"
                },
                {
                    "command": "issuesList.viewInVisualizer",
                    "when": "view == issuesList && viewItem == dependency"
                }
            ]

【问题讨论】:

    标签: visual-studio-code treeview vscode-extensions treeviewitem


    【解决方案1】:

    看来您应该通过vscode.commands.registerCommand API 将函数绑定到命令。 代码看起来像

    import * as vscode from 'vscode';
    export function activate(context: vscode.ExtensionContext) {
        // other code
        vscode.commands.registerCommand('issuesList.deleteEntry', (node: Dependency) => node.deleteEntry());
        vscode.commands.registerCommand('issuesList.viewInVisualizer', (node: Dependency) => viewInVisualizer(node));
    }
    

    更详细的用法可以在https://code.visualstudio.com/api/references/vscode-api#commands找到,还有TreeView的完整示例在https://github.com/microsoft/vscode-extension-samples/tree/master/tree-view-sample

    【讨论】:

      【解决方案2】:
          const tree = vscode.window.createTreeView('myview', {treeDataProvider: dataProvider, showCollapseAll: true });
          tree.onDidChangeSelection( e => click(e.selection));
      

      【讨论】:

      • 嗨@wr_alan,感谢您回答这个问题,我还建议提供解释可以进一步改善您的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      • 2019-02-02
      • 2014-06-12
      • 2018-09-07
      • 2019-09-20
      • 1970-01-01
      • 2019-06-21
      相关资源
      最近更新 更多