Где VS Code хранит список открытых файлов?

Я пытаюсь синхронизировать экземпляры VS Code на работе и дома, включая список открытых файлов. Я знаю, что есть расширения настроек синхронизации, но они не распространяются на Open Files AFAIK. Я не ожидаю живой синхронизации в исполняемом экземпляре, но если я, скажем, перезагружу обе машины и запустил код на них, я хочу, чтобы они были идентичными.

В настоящее время у меня есть переносная установка кода на моем OneDrive, и я попытался переместить AppData\Roaming\Code в OneDrive, заменив фактические каталоги символическими ссылками на эту копию.

Но все же, когда я открываю редактор дома, у него есть собственный набор Open Files.

Я пытался использовать ProcMon, чтобы понять, откуда он взялся, я попытался немного прочитать источники. Кажется, запрос может быть проще: -)

Btw, я открываю папку Code git моего проекта. И эта папка находится на том же пути на обоих ПК.

Ответы

Ответ 1

Я уверен, что вы правы с AppData\Roaming\Code, являющимся рассматриваемым местоположением. В частности:

  • AppData\Roaming\Code\storage.json и в этом разделе windowsState.
  • AppData\Roaming\Code\Backups\workspaces.json

Эти файлы (или, по крайней мере, storage.json) не обновляются, пока не выйдете из кода (Файл > Выход). Если вы оставите код открытым на своем рабочем компьютере и не увидите изменений, когда дойдете до своей домашней машины, возможно, вы не видите ожидаемого.

Код/Atom также хранит информацию о состоянии в базах данных sqlite3, и там хранится много информации о состоянии:

  • AppData\Roaming\Code\Local Storage\file__0.localstorage

Чтобы открыть его, используйте инструмент браузера SQLite, например http://sqlitebrowser.org/. В таблице ItemTable вы увидите множество знакомых ссылок на пути. Столбец value отображается как "BLOB" (двоичный), но вы можете щелкнуть по любой строке и экспортировать данные в файл. Сделайте это и откройте его в текстовом редакторе (например, Code!:)), и вы увидите его как строку JSON.

(Поскольку VS-код основан на редакторе GitHub Atom, поиск проблем с использованием "Atom", а не "Code", часто вырывает информацию, которую вы иначе не найдете.)