VSCode扩展自定义视图设置

时间:2020-05-01 21:49:49

标签: visual-studio-code vscode-extensions

我正在尝试编写一个自定义VSCode视图,该视图的行为类似于调试器的工作方式。这意味着,当您单击活动栏中的视图时,它将要求您设置它是否尚未创建。你怎么做到的?

这是我在package.json中创建视图的方式,

        "viewsContainers": {
            "activitybar": [
                {
                    "id": "my-view",
                    "title": "My View",
                    "icon": "images/my-icon.svg"
                }
            ]
        },
        "views": {
            "my-view": [
                {
                    "id": "child-view-1",
                    "name": "Child View 1"
                },
                {
                    "id": "child-view-2",
                    "name": "Child View 2"
                }
            ]
        },

我的图标显示在活动栏中,单击时会显示我的孩子视图。如何自定义该行为?单击我的图标后,我希望它检查以前是否已设置它,如果没有,请运行我的设置代码。

1 个答案:

答案 0 :(得分:0)

在创建树项目时,在对象的命令参数中设置“单击时命令”,如下所示:

new Dependency(moduleName, version, vscode.TreeItemCollapsibleState.None, {
                        command: 'extension.openPackageOnNpm',
                        title: '',
                        arguments: [moduleName]

该点击应调用定义的另一个命令以接受输入并进行相应处理。假定视图具有由树视图类实例化创建的默认项。

这个示例确实帮助我了解了所有设置:
https://github.com/microsoft/vscode-extension-samples/blob/29b21d108d4575003278060faaa3eab0f7374979/tree-view-sample/src/nodeDependencies.ts#L52

此外,此扩展程序还可以很好地利用默认选项填充树状视图,您的用户可以单击以启动环境设置:https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-cosmosdb

如果在您的示例中,尚未设置环境,并且我认为视图列表中没有要单击的对象,则欢迎视图(如下所示)应提供一个选项来获取用户朝着正确的方向移动。 https://code.visualstudio.com/api/extension-guides/tree-view#welcome-content