Terminal

终端(Terminal) 是 IDE 重要的组成部分,能帮助用户快速的进行系统命令的执行及文件操作等,下面介绍一些常见的插件内的拓展场景。

自定义链接识别

...
vscode.window.registerTerminalLinkProvider({
  // 鼠标 hover 时会触发这个方法
  provideTerminalLinks: (context, token) => {
    // context.line 就是当前行的字符串
    const startIndex = (context.line as string).indexOf('opensumi.com');
    if (startIndex === -1) {
      return [];
    }
    // 返回一个数组,内容是识别出来的所有链接
    return [
      {
        startIndex,
        length: 'opensumi.com'.length,
        // You can return data in this object to access inside handleTerminalLink
        data: 'Example data'
      }
    ];
  },
  // 点击链接时会触发这个方法
  handleTerminalLink: (link: any) => {
    vscode.window.showInformationMessage(`Link activated (data = ${link.data})`);
    // 这里可以通过 vscode.open 打开外部链接
    vscode.commands.executeCommand('vscode.open', vscode.Uri.parse('https://opensumi.com'));
  }
});
...

效果如下:

link