Read and Write file using vs code extension
我正在构建一个扩展来使用vs代码扩展解析JSON。所以我需要的是,它应该能够从一个特定的文件夹中加载.json文件,并迭代文件的内容。然后,它应该允许用户从中选择几个键,从中生成一个新的JSON文件,并将其保存到任何文件夹中。
但是我找不到任何方法来读写"vs代码扩展名"中的文件。有人能帮我吗?
如果要读取文件的当前编辑状态,可以使用以下api workspace函数:
1 2 3 | vscode.workspace.openTextDocument(uri).then((document) => { let text = document.getText(); }); |
这将显示文件的当前状态,包括未持久化的更改。
vscode扩展正在node.js中运行。因此,您可以在扩展中使用任何可用的node.js包/模块。例如,查看这个问题以阅读JSON。
由于扩展是在nodejs中运行的,所以您应该能够以通常的方式使用任何nodejs模块内置或由NPM安装。
出于您的目的,您可以使用内置的fs模块:https://nodejs.org/dist/latest-v6.x/docs/api/fs.html
在扩展名中,需要导入所需的模块,因此代码文件应包含以下内容:
1 | let fs = require("fs"); |
然后以通常的方式使用这些方法,如
请不要说有一个例外。如果安装包含已编译的二进制代码的nodejs模块,它将不会在扩展中运行,而是会看到一条错误消息,指出类似%1的内容不是有效的win32应用程序。不过,纯JavaScript模块还可以。
对于JSON,您只需要
1 2 | const jsonObject = require('./myJSONfile.json'); // do something |
对于带有注释的JSON,可以使用节点JSONC解析器。
操作完成后,可以使用nodej.js的