我如何改变嵌入式终端的名称从我的VSCode扩展时,它是由用户创建的?



我的扩展影响VSCode实例中的环境,所以我想帮助用户识别包含环境变化的终端(在应用我的扩展之后)以及到目前为止已经创建的终端。要做到这一点,我想这样做:

vscode.window.onDidOpenTerminal((terminal: vscode.Terminal) => {
if(CONDITION){
//terminal. = 'label:' + terminal.name; Won't work because the name is a constant
};
});

我在编写扩展方面不是很有经验,并且在文档中找不到任何关于如何最好地做到这一点的参考。有没有办法改变一个终端的名称,是由用户创建的,而不是从我的扩展?

要在扩展中重命名当前终端,您可以这样做:

vscode.window.onDidOpenTerminal((terminal) => {
if (true) {       // with your condition
vscode.commands.executeCommand('workbench.action.terminal.renameWithArg', { name: 'myName' });
}
});

这并不能区分由扩展打开的终端和由用户打开的终端(除了定时或设置变量——第一次调用时,第二次等等,更新全局变量)。