我正在使用vs代码扩展构建一个解析json的扩展。 所以我的需要是,它应该能够从特定文件夹加载.json文件并迭代文件的内容。 然后它应该允许用户从中选择几个键,从中创建一个新的json文件,并将其保存在任何文件夹中。
但我无法找到任何方式来读取和编写“vs代码扩展”中的文件。有人可以帮助我。
答案 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,您只需要require
或import
JSON文件,例如:
const jsonObject = require('./myJSONfile.json');
// do something
对于带有注释的JSON,您可以使用node-jsonc-parser。
操作之后,可以使用nodej.js的fs
模块写入磁盘。