VSCode 创建未保存的文件并添加内容
VSCode create unsaved file and add content
在 VS Code 中,我想在新编辑器中创建一个新文档(相同 window),但它需要保持未保存状态。当文档处于未保存状态时,我找不到以编程方式设置该文档内容的方法。
我用过:
commands.executeCommand("workbench.action.files.newUntitledFile")
但是似乎没有办法将内容添加到文件中。
当我创建一个新的临时文件并打开它时:
workspace.openTextDocument(路径)
文件已保存。
有什么想法吗?
尝试使用 openTextDocument
和 untitled
文档在给定路径创建未保存的文件,然后使用 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!');
}
});
});
新文件在第一次打开时不会保存,但在用户保存时会保存到指定路径。
希望这提供了一个好的起点。
VSCode 1.54(2021 年 2 月)应支持,这意味着 from Matt 默认实现:
Open Editors New Untitled File action
We have introduced a New Untitled File
action in the Open Editors
view title area.
我不知道如何在编辑器中打开它,但您可以创建一个未保存的文件,内容如下:
vscode.workspace.openTextDocument({
content: "your content",
language: "text"
});
最终使用 this solution from Matt, but I was able to use it in combination with DarkTrick's response 保存文档时我遇到了一些问题。
通过使用默认行为创建一个空文档并在 then 子句中激活它。
vscode.workspace.openTextDocument({
content: newXmlContent,
language: "xml"
}).then(newDocument => {
vscode.window.showTextDocument(newDocument);
});
这让我可以创建一个无标题的文档,其中包含我想要的任何内容,并在编辑器中显示它。虽然我无法给它起一个具体的名字。这可能是创建无标题文档的限制。
在 VS Code 中,我想在新编辑器中创建一个新文档(相同 window),但它需要保持未保存状态。当文档处于未保存状态时,我找不到以编程方式设置该文档内容的方法。
我用过: commands.executeCommand("workbench.action.files.newUntitledFile") 但是似乎没有办法将内容添加到文件中。
当我创建一个新的临时文件并打开它时: workspace.openTextDocument(路径) 文件已保存。
有什么想法吗?
尝试使用 openTextDocument
和 untitled
文档在给定路径创建未保存的文件,然后使用 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!');
}
});
});
新文件在第一次打开时不会保存,但在用户保存时会保存到指定路径。
希望这提供了一个好的起点。
VSCode 1.54(2021 年 2 月)应支持,这意味着
Open Editors New Untitled File action
We have introduced a
New Untitled File
action in theOpen Editors
view title area.
我不知道如何在编辑器中打开它,但您可以创建一个未保存的文件,内容如下:
vscode.workspace.openTextDocument({
content: "your content",
language: "text"
});
最终使用 this solution from Matt, but I was able to use it in combination with DarkTrick's response 保存文档时我遇到了一些问题。
通过使用默认行为创建一个空文档并在 then 子句中激活它。
vscode.workspace.openTextDocument({
content: newXmlContent,
language: "xml"
}).then(newDocument => {
vscode.window.showTextDocument(newDocument);
});
这让我可以创建一个无标题的文档,其中包含我想要的任何内容,并在编辑器中显示它。虽然我无法给它起一个具体的名字。这可能是创建无标题文档的限制。