如何在 VS Code 扩展中访问文件内容

Rup*_*ili 2 visual-studio-code vscode-extensions

我想扫描工作区中当前打开的文件的内容。我试过:

console.log(vscode.window.activeTextEditor); // Doesn't work
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

vscode.workspace.openTextDocument(vscode.window.terminals).then(document => {
  let text = document.getText();
  console.log(text);
});
Run Code Online (Sandbox Code Playgroud)

最后一个抛出了错误:“没有找到有效的项目结构,正在退出......”我做错了什么?

Jan*_*jsi 9

请考虑查看VS Code 扩展示例,特别是文档编辑示例。它确实显示了如何阅读编辑器中当前活动文档中的文本。

要在当前活动的文档编辑器中读取文本,请将此代码放入您的extension.ts

'use strict';

import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
    const disposable = vscode.commands.registerCommand('extension.scanDocument', function () {
        // Get the active text editor
        const editor = vscode.window.activeTextEditor;

        if (editor) {
            let document = editor.document;

            // Get the document text
            const documentText = document.getText();

            // DO SOMETHING WITH `documentText`
        }
    });

    context.subscriptions.push(disposable);
}
Run Code Online (Sandbox Code Playgroud)

并在您的中声明此命令package.json

    "contributes": {
        "commands": [
            {
                "command": "extension.scanDocument",
                "title": "Scan current document..."
            }
        ]
    }
Run Code Online (Sandbox Code Playgroud)

...运行扩展,打开文件并从命令托盘调用命令。