如何在vs代码扩展中访问文件内容

时间:2019-11-09 12:27:26

标签: visual-studio-code vscode-extensions

我想浏览工作空间中当前打开的文件。我怎么做?

我尝试过以下行

console.log(vscode.window.activeTextEditor); //没用

以下代码无效。

    vscode.workspace.openTextDocument(vscode.window.terminals).then(document => {
        let text = document.getText();
       // console.log(text);
    });

我看到错误并说“找不到有效的项目结构,正在退出...”

P.S:目前,我正在Salesforce项目上运行它。

1 个答案:

答案 0 :(得分:0)

请考虑签出VS Code Extension Samples,尤其是Document Editing Sample。它确实显示了如何在编辑器中读取当前活动文档中的文本。

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

'use strict';

import * as vscode from 'vscode';

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

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

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

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

    context.subscriptions.push(disposable);
}

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

    "contributes": {
        "commands": [
            {
                "command": "extension.scanDocument",
                "title": "Scan current document..."
            }
        ]
    }

...运行扩展程序,打开一个文件,然后从命令托盘中调用命令。