2016-08-05 3 views
1

Я создаю расширение для синтаксического анализа json с использованием расширения кода. , так что мне нужно, он должен иметь возможность загружать .json-файл из определенной папки и перебирать содержимое файла. Тогда он должен позволить пользователю выбрать несколько ключей из него, чтобы сделать из него новый json-файл и сохранить его в любой папке.Чтение и запись файла с использованием расширения кода расширения

Но я не могу найти способ читать и писать файлы в «расширении кода». Может кто-то мне поможет.

ответ

0

Расширения VSCode работают в node.js. Поэтому вы можете использовать любой доступный пакет/модуль node.js в своем расширении. Например, проверьте this question for reading JSON.

1

Если вы хотите, чтобы прочитать текущее состояние редактирования файла можно использовать следующие API функции: workspace

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

Это покажет вам текущее состояние файла, включая unpersisted изменения. document имеет тип TextDocument и имеет isDirty, установленный в true, если он ожидает изменения.

0

Поскольку расширение выполняется в nodejs, вы должны иметь возможность использовать любой модуль nodejs, встроенный или установленный npm обычным способом.

Для ваших целей вы будете в порядке с встроенными фсов модуля: https://nodejs.org/dist/latest-v6.x/docs/api/fs.html

В вашем расширении вам нужно будет импортировать нужный модуль, поэтому файл код должен содержать это:

let fs = require("fs"); 

, а затем использовать методы обычным способом, например. fs.fileReadSync(filename, encoding) ...

Не исключено, что есть одно исключение. Если вы устанавливаете модуль nodejs, содержащий скомпилированный двоичный код, он не будет запускаться в расширении, и вместо этого вы увидите сообщение об ошибке, в котором что-то вроде % 1 не является допустимым приложением Win32. Чистые модули javascript в порядке.