【问题标题】:How to open file and insert text using the VSCode API如何使用 VSCode API 打开文件和插入文本
【发布时间】:2016-11-11 19:20:00
【问题描述】:

如何在选项卡中打开一个新的只读文本文件并使用 Visual Studio Code API 在该文件中插入一些格式化文本?

我没有找到任何关于此添加简单文本的示例

以下是我打开一些无标题文件的代码。

var setting: vscode.Uri = vscode.Uri.parse("untitled:" + "C:\summary.txt");
vscode.workspace.openTextDocument(setting).then((a: vscode.TextDocument) => {
    vscode.window.showTextDocument(a, 1, false);
}, (error: any) => {
    console.error(error);
    debugger;
});

请给出可以添加到这些行以添加文本的简单示例。 因为官方的例子有点复杂。

【问题讨论】:

  • 不要将Uri.parse 用于文件。使用Uri.file。文件名/路径可能包含# 字符

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


【解决方案1】:

除了 DAXaholic 的回答,如果您想在活动编辑器中插入文本,可以使用vscode.window.activeTextEditor

function enterText(text: string) {
    const editor = vscode.window.activeTextEditor;
    if (editor) {
        editor.edit(editBuilder => {
            editBuilder.insert(editor.selection.active, text);
        });
    }
}

在我的示例中,文本被插入到当前光标位置。

【讨论】:

    【解决方案2】:

    下面的内容应该会给你的想法

    ...
    var setting: vscode.Uri = vscode.Uri.parse("untitled:" + "C:\summary.txt");
    vscode.workspace.openTextDocument(setting).then((a: vscode.TextDocument) => {
        vscode.window.showTextDocument(a, 1, false).then(e => {
            e.edit(edit => {
                edit.insert(new vscode.Position(0, 0), "Your advertisement here");
            });
        });
    }, (error: any) => {
        console.error(error);
        debugger;
    });
    ...
    

    【讨论】:

    • 那么如何在活动文档中插入文本?
    • @SaravanaKumar get editor using const e = vscode.window.activeTextEditor; then you can use e.edit() as in DAXaholic's answer
    • 还有没有办法添加来自 API 的文本?
    猜你喜欢
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 2020-07-13
    • 2012-03-20
    相关资源
    最近更新 更多