開いているファイルのリストを含め、職場と自宅で VS Code インスタンスを同期させようとしています。同期設定の拡張機能があることは知っていますが、私の知る限り、開いているファイルはカバーしていません。インスタンスの実行中にライブ同期が行われることを期待していませんが、たとえば両方のマシンを再起動して Code を起動すると、それらが同一になるようにします。
現在、OneDrive に Code のポータブル インストールがあり、AppData\Roaming\Code も OneDrive に移動して、実際のディレクトリをこのコピーへのシンボリック リンクに置き換えようとしました。
しかし、自宅でエディターを開くと、独自の「開いているファイル」セットが表示されます。
私は ProcMon を使ってそれがどこから来たのかを知ろうとし、ソースを少し読んでみました。質問する方が簡単かもしれません :-)
ちなみに、私はプロジェクトの Code git フォルダーを開いています。このフォルダーは両方の PC で同じパスにあります。
ベストアンサー1
AppData\Roaming\Code
問題の場所については、あなたの言う通りだと思います。具体的には、
AppData\Roaming\Code\storage.json
そしてそのwindowsState
セクション。AppData\Roaming\Code\Backups\workspaces.json
これらのファイル (または少なくともstorage.json
) は、Code を終了する ([ファイル] > [終了]) まで更新されません。職場のマシンで Code を開いたままにして、自宅のマシンに戻ったときに変更が反映されていない場合は、それが期待どおりに表示されない理由である可能性があります。
Code / Atom は状態情報を sqlite3 データベースにも保存し、そこには多くの状態情報が保存されます。
AppData\Roaming\Code\Local Storage\file__0.localstorage
次のようなSQLiteブラウザツールを使用します。http://sqlitebrowser.org/開くと、テーブルによく知られたパス参照が多数表示されますItemTable
。列はvalue
「BLOB」(バイナリ) として表示されますが、任意の行をクリックしてデータをファイルにエクスポートできます。これを実行して、テキスト エディター (例: Code! :)) で開くと、JSON 文字列だけであることがわかります。
(VS Code は GitHub の Atom エディターをベースとしているため、「Code」ではなく「Atom」を使用して問題を検索すると、他の方法では見つけられない情報が見つかることが多いです。)