Где хранить глобальные двоичные данные для расширения vscode - PullRequest
0 голосов
/ 04 января 2019

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

  • Кэш распределяется между всеми рабочими пространствами
  • Он состоит из 200-300 МБ сериализованных данных
  • Оно должно сохраняться между обновлениями расширения
  • Расширение является кроссплатформенным

Я обнаружил следующие четыре варианта, но ни один из них не кажется подходящим:

  1. ExtensionContext.extensionPath: Это почти идеально.Очевидное для пользователя, безопасное место в песочнице.Тем не менее, он обновляется при обновлении расширения.
  2. ExtensionContext.storagePath: Это не глобально, и пользователю сложно его очистить, поэтому очень быстро в конечном итоге будет использовано ГБ дискового пространства.
  3. ExtensionContext.globalState: размещение 300 МБ двоичных данных в хранилище словарей JSON кажется плохим.
  4. %UserData% / linux / OSX эквиваленты: Добавление и удаление файлов в неконтролируемом общем пространстве пользователя - это риск, которого я бы предпочел избежать.

Где находится подходящее место для хранения этих данных?

1 Ответ

0 голосов
/ 04 января 2019

Возможно, вы захотите создать путь к файлу, определенный в настройках пользователя; Я думаю, что это решение охватывает все ваши требования.

Вы можете установить значение по умолчанию в package.json, и оно будет прозрачным для пользователя - они могут изменить его, если захотят.

Подробнее здесь: https://code.visualstudio.com/api/references/contribution-points#contributes.configuration

...