ふとしたことから、VSCodeの過去ファイルを一括表示、確認できるソフトが無いかなぁと思って探したところ、手ごろなGUIツールが無かったので、じゃあさくっと作っちゃおう、ということで作成しました。
いやね、VSCodeのLocalHistory的な機能使えばそれで済むじゃん?と言われればそれまでなのですが、VSCodeで本格開発していると、過去にきわめて有象無象のファイルを触ってることが多々あると思うんです。
それらファイルをまずは左に表示して、その次に選択したファイルの過去履歴を真ん中に表示して、で、最後に選択したファイルの日時当時の内容を右に表示する、的なシンプルなソフトが欲しかったわけですよ。
Q.誰がこのソフト必要?
A.私です
Q.いや、誰が必要なのよ?
A.もしかしたらフォレンジックに携わる方には役に立つかもしれませんね。
ダウンロードは以下からどうぞ。Googleサイトの仕様かわかりませんが、以前は出ていたプレビューが出ないようですが、そのままダウンロードできると思います。
主な仕様
・VSCodeの過去のファイル履歴が存在するHistoryフォルダを解析対象としています。
・Historyフォルダは、Windowsなら、「C:\Users\[各々のユーザー名]\AppData\Roaming\Code\User\History」です。
・このHistoryフォルダには、過去に編集したファイル毎(正確にはファイルパス毎?)に対応する英数字(ハッシュ?)のフォルダが作成されています。
・これらファイル別のフォルダの中には、さらにファイルの保存履歴毎に対応する英数字(ハッシュ?)のファイルが作成されています。
・フォルダの中には、これらの英数字(ハッシュ?)のファイルがそれぞれいつ作成されたかを記録するentries.jsonファイルが存在します。
・entries.jsonファイルには、各ファイルの日時がUnixEpochで記録されています。
・よって、フォルダ毎のentries.jsonを読み取ることで、「ファイルパス毎」の「保存履歴日時毎」の「ファイル内容」を一覧表示する仕様となっています。
使用しているライブラリ
・AvalonEdit(MITライセンス):テキストエディタを高度に色付けするために使ってます
・NewtonsoftJson(MITライセンス):entries.jsonのパースに使っています。