【问题标题】:Change title of untitled tab in Visual Studio Code在 Visual Studio Code 中更改无标题选项卡的标题
【发布时间】:2018-02-03 05:42:12
【问题描述】:

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

vscode.workspace.textDocuments[0].fileName="myFile"

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

【问题讨论】:

    标签: visual-studio-code titlebar vscode-extensions


    【解决方案1】:

    仍然(2020 年第一季度)不可能,但下一个 VSCode 1.42 将name its Untitled editors differently

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

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

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

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


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

    【讨论】:

    • 这正是我试图构建扩展的目的。
    【解决方案2】:

    这是不可能的——如果你查看the API definition in vscode.d.ts的源代码,你会看到fileName被声明为readonly

    export interface TextDocument {
        // ...
        readonly fileName: string;
        // ...
    }
    

    不幸的是,readonly 属性似乎没有反映在API docs on the website 中。

    【讨论】:

    • 这很可悲。有什么办法可以说服他们使字段可变?
    • 似乎不太可能,考虑到所有其他属性也是只读的。此外,我怀疑fileName 直接对应于标签标题中最终显示的内容。
    • 哦,所以选项卡标题可能不是从文件名中获取的?你能确认一下吗
    • 看来最终还是getPathLabel()负责编辑标题,确实使用了文件名。
    猜你喜欢
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 2022-10-16
    相关资源
    最近更新 更多