繁体   English   中英

VSCode 扩展:如何以编程方式在面板中显示视图容器

[英]VSCode extension: How to programmatically show view container in panel

我正在编写一个 VSCode 扩展,它有一个添加了WebviewView的视图容器。

"contributes": {
    "commands": [
      {
        "command": "showView",
        "title": "Show view"
      }
    ],
    "viewsContainers": {
      "panel": [
        {
          "id": "mycontainer",
          "title": "My Container",
          "icon": "media/app.svg"
        }
      ]
    },
    "views": {
      "mycontainer": [
        {
          "type": "webview",
          "id": "myview",
          "name": "MyView"
        }
      ]
    }
  },

showView命令执行中。 我想以编程方式使视图myview显示在 VSCode UI 中。 怎么做?

VSCode 在每个注册的视图上公开一个focus命令。

您的示例视图的 ID myview ,因此您想调用myview.focus命令。

您可以通过打开File->Prefs->Keyboard Shortcuts并搜索myview来验证这一点。

要测试该命令,请尝试在您的扩展激活 function 中添加以下内容。 它将在底部状态栏上创建一个可单击的按钮,该按钮将聚焦您的侧边栏视图。

activate = function (workspace) {
    const statusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 10);
    statusBarItem.command = 'myview.focus';
    statusBarItem.text = 'MYVIEW';
    statusBarItem.show();
    workspace.subscriptions.push(statusBarItem);
}

这些可能有助于webview 示例webview 查看示例

您可以通过使用视图的id来关注侧边栏中的视图并执行focus命令:

vscode.commands.executeCommand("myview.focus")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM