今更ながら VS Code Auto Time Stamp について

昨日、溜まっていた Issue に対応して 0.0.5 をアップした。

GitHubVisual Studio Marketplace 以外に何も情報を上げないまま 5 年近く経ったが、今更ながら書いてみる。

これは何か

テキストファイルの内容に含まれる作成日時・更新日時を保存時に挿入/更新する、ごくシンプルな VS Code 拡張。

例:

// Created: 2018/02/04 12:24:41
// Last modified: 2018/02/09 11:41:41

更新日時はファイル保存時に毎回更新される。作成日時は空の場合のみ挿入する形とし、コピーされたファイルの作成日時が意図せず入らないようにしている。

想定している用途

ソースファイルのヘッダーコメントやドキュメントなどに記載した日時を作業に合わせて更新するような用途を想定している。

初版を作った2018年当時は仕様書を Markdown で書いていて、かつ私個人は Emacs から VS Code へ移行を試みているところだった。 Emacs では time-stamp で更新日時、autoinsert で作成日時を入れていて、それを VS Code でも再現しようとしてできたのが初版。

VS Code への移行はできたが仕様書は MS Word で書くようになり、自分で使うことはほぼなくなっていたりする。

使い方

デフォルトでは当時の私に合わせた設定になっているため、環境・プロジェクトに合わせて変更が必要。

設定項目:

設定項目名 デフォルト値
Birth Time End $
Birth Time Start [cC]reated *:
Filename Pattern ^(?!.*[/\\]\.vscode[/\\]settings.json$)
Line Limit 5
Modified Time End $
Modified Time Start [lL]ast[ -][mM]odified *:
Moment Format YYYY/MM/DD HH:mm:ss

私はユーザー設定でラフに使用したことしかないが、多くの言語・フォーマットで使用したい場合や複数人で共有したい場合はワークスペース設定がよいと思う。

README.md にも記載したように、よくある動かないケースは以下:

  • Line Limit が小さすぎる。
  • VS Code の Auto Save(自動保存)設定が afterDelay に設定されている。

デフォルトでは作成日時・更新日時ともに日時の後ろを文末$にしているが、適切にパターンを設定すれば文の途中を対象にすることもできる。

例:Issue #11より:

{{-- MODIFIED: [ 2022-04-20 02:51:45 PM ] --}}
{{-- some other comment --}}
{
    "lpubsppop01.autoTimeStamp.momentFormat": "YYYY/MM/DD HH:mm:ss A",
    "lpubsppop01.autoTimeStamp.modifiedTimeStart": "MODIFIED: \\[ ",
    "lpubsppop01.autoTimeStamp.modifiedTimeEnd": " \\]"
}

大抵のケースに対応できるだろうと思ってこういう仕様にしたが、 fork された方が TeX 向けの拡張をされていた。 何でもOKとはいかないようだ。

0.0.5の更新内容

以下の望ましくない挙動を修正した。

  • 自動保存が afterDelay のとき挙動がおかしい。正しい動きを決められなかったため、動作しないようにした。
  • ワークスペース設定(.vscode/settings.json)が対象となり内容を壊しやすい。デフォルトで対象外とした。

またアイコンを作成・設定した。

おわりに

先に書いた通り自分ではあまり使わなくなっているが、そのうちまた出番があるかもしれない。 よければお試しください。

お読みいただいた方、良いお年を。明けていたら、おめでとうございます。