在 Visual Studio Code 中更改无标题选项卡的标题

Jer*_*yal 8 titlebar visual-studio-code vscode-extensions

我正在构建一个 VS Code 扩展,其中包括更改untitled-1选项卡的名称/标题(未保存的文件)。
我尝试在扩展的调试器控制台中运行以下代码,但它没有反映在编辑器中:

vscode.workspace.textDocuments[0].fileName="myFile"
Run Code Online (Sandbox Code Playgroud)

这是不可能的还是我错过了什么?

Von*_*onC 6

仍然(2020 年第一季度)不可能,但下一个 VSCode 1.42 将对其 Untitled editors 进行不同的命名

VS Code 中的无标题编辑器是尚未保存到磁盘的文本缓冲区。
您可以根据需要将它们保持打开状态,并且所有文本内容都会在重新启动之间存储和恢复。

未命名的编辑被赋予通用名称,例如Untitled-1和 向上计数。
在此版本中,无标题编辑器将使用文档第一行的内容作为编辑器标题,并在描述中包含通用名称:

https://media.githubusercontent.com/media/microsoft/vscode-docs/vnext/release-notes/images/1_42/untitled-title2.gif

注意:如果第一行为空或不包含任何单词,则标题将回退到Untitled_*以前。

因此,虽然您不能自己设置标题(仍然readonly fileName),但从技术上讲……更改该文件的第一行就足以更改所述“无标题”编辑器的标题。


VSCode 1.43 (Q1 2020) 中,新设置workbench.editor.untitled.labelFormat允许控制无标题编辑器是否应将内容用作标题。
可能的值为contentname
配置 ' workbench.editor.untitled.labelFormat': ' name' 以恢复以前的行为,其中无标题的编辑器将具有短标题,例如Untitled-1.

  • 这正是我试图构建扩展的目的。 (2认同)

Gam*_*a11 5

这是不可能的 - 如果您查看中 API 定义vscode.d.ts的源代码,您会看到它fileName被声明为readonly

export interface TextDocument {
    // ...
    readonly fileName: string;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,该readonly属性似乎没有反映在网站上的 API 文档中。