使用vs代码扩展读写文件

时间:2016-08-05 06:04:37

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

我正在使用vs代码扩展构建一个解析json的扩展。 所以我的需要是,它应该能够从特定文件夹加载.json文件并迭代文件的内容。 然后它应该允许用户从中选择几个键,从中创建一个新的json文件,并将其保存在任何文件夹中。

但我无法找到任何方式来读取和编写“vs代码扩展”中的文件。有人可以帮助我。

4 个答案:

答案 0 :(得分:8)

如果您想要阅读文件的当前编辑状态,可以使用以下API workspace功能:

vscode.workspace.openTextDocument(uri).then((document) => {
  let text = document.getText();
});

这将显示文件的当前状态,包括未加载的更改。 document类型为TextDocument,如果isDirty有待定更改,则true设置为interface ICSVFormatDefinition { bool isFileInThisFormat(string filename); }

答案 1 :(得分:4)

VSCode扩展在node.js中运行。因此,您可以在扩展中使用任何可用的node.js包/模块。例如,请查看this question for reading JSON

答案 2 :(得分:2)

由于扩展在nodejs中运行,您应该能够以通常的方式使用内置或由npm安装的任何nodejs模块。

出于您的目的,您可以使用内置的 fs 模块:https://nodejs.org/dist/latest-v6.x/docs/api/fs.html

在您的扩展程序中,您需要导入所需的模块,因此您的代码文件应包含以下内容:

let fs = require("fs");

然后以通常的方式使用这些方法,例如。 fs.fileReadSync( filename, encoding ) ...

请注意,有一个例外。如果你安装一个包含已编译的二进制代码的nodejs模块,它将无法在扩展中运行,而是会看到一条错误消息,指出%1不是有效的Win32应用程序。纯javascript模块是好吧,不过。

答案 3 :(得分:0)

对于JSON,您只需要requireimport JSON文件,例如:

const jsonObject = require('./myJSONfile.json');
// do something

对于带有注释的JSON,您可以使用node-jsonc-parser

操作之后,可以使用nodej.js的fs模块写入磁盘。