【问题标题】:VSCode create unsaved file and add contentVSCode 创建未保存的文件并添加内容
【发布时间】:2016-12-09 20:17:02
【问题描述】:

在 VS Code 中,我想在新编辑器(同一窗口)中创建一个新文档,但它需要保持未保存状态。当文档处于未保存状态时,我找不到以编程方式设置该文档内容的方法。

我用过: commands.executeCommand("workbench.action.files.newUntitledFile") 但似乎没有办法将内容添加到文件中。

当我创建一个新的临时文件并使用以下命令打开它时: 工作区.openTextDocument(路径) 文件已保存。

有什么想法吗?

【问题讨论】:

    标签: visual-studio-code vscode-extensions


    【解决方案1】:

    尝试使用openTextDocumentuntitled 文档在给定路径创建未保存的文件,然后使用WorkspaceEdit 添加一些文本:

    import * as vscode from 'vscode';
    import * as path from 'path';
    
    const newFile = vscode.Uri.parse('untitled:' + path.join(vscode.workspace.rootPath, 'safsa.txt'));
    vscode.workspace.openTextDocument(newFile).then(document => {
        const edit = new vscode.WorkspaceEdit();
        edit.insert(newFile, new vscode.Position(0, 0), "Hello world!");
        return vscode.workspace.applyEdit(edit).then(success => {
            if (success) {
                vscode.window.showTextDocument(document);
            } else {
                vscode.window.showInformationMessage('Error!');
            }
        });
    });
    

    新文件在第一次打开时不会保存,但在用户保存时会保存到给定的路径。

    希望能提供一个好的起点。

    【讨论】:

      【解决方案2】:

      我不知道如何在编辑器中打开它,但您可以创建一个未保存的文件,其内容如下:

      vscode.workspace.openTextDocument({
        content: "your content", 
        language: "text"
      });
      

      【讨论】:

        【解决方案3】:

        这应该在 VSCode 1.54(2021 年 2 月)中得到支持,这意味着默认实现来自 Mattvscode.workspace.openTextDocument script

        打开编辑器新建无标题文件操作

        我们在Open Editors 视图标题区域中引入了New Untitled File 操作。

        【讨论】:

        • 好消息,但评论不清楚。请参阅@DarkTrick 的答案。
        【解决方案4】:

        当最终使用this solution from Matt 保存文档时我遇到了一些问题,但我能够将它与DarkTrick's response 结合使用。

        通过使用默认行为创建一个空文档并在 then 子句中激活它。

        vscode.workspace.openTextDocument({
            content: newXmlContent,
            language: "xml"
        }).then(newDocument => {
            vscode.window.showTextDocument(newDocument);
        });
        

        这允许我创建一个包含我想要的任何内容的无标题文档并在编辑器中显示它。虽然我无法给它一个具体的名字。这可能是创建无标题文档的限制。

        【讨论】:

          猜你喜欢
          • 2013-01-21
          • 2011-04-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多