4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VS-Code Code for IBM i でソースメンバーの日付を表示する

Last updated at Posted at 2024-12-14

VSCode 上で IBM i のソースコードを編集できる Code for IBM i ですが、インストール時のデフォルト設定ですと、SEU でおなじみの右側の YYMMDD 日付が更新されません。
初期設定のままソースコードを保存すると全て日付は 000000 で更新されます。
本投稿では、Code for IBM i のソースコード設定をすることで、従来の日付が設定される様にしていきます。

ソースコード設定を変更する

  1. Code for IBM i でターゲットの IBM i に接続した後、以下画面の [Settings] を開きます。
  2. Source Code タブを開き
    1. Enable Source Dates にチェック
    2. Source date tracking mode を選択
    3. Source Dates in Gutter にチェック※左隅に YYMMDD 表示されます
  3. Save settings を押して設定を保存

2024-11-30_100403.png

2つの日付更新モード

日付を更新するモードは以下のとおり2つあります。

2024-11-30_110612.png

1つは Edit modeです。これは従来の SEU に近い挙動で日付が更新されます。
エディタ上で一度ソースコードの変更をすると、undo(元に戻る)を実行しても日付は更新されたままとなります。次のような動作になります。

q241001r.rpgle - Visual Studio Code 2024-11-30 10-38-17.gif

2つ目は Diff modeです。これは「最後に開いた、又は最後に保存した」時点のスナップショットと現在のソースコードとで diff が実行され、その差分より更新日付が判定されます。
エディタ上で一度ソースコードを変更しても、undo(元に戻る)を実行後に保存をすると、diff 内容が変更されていないと判定されソースに日付は元に戻ります。次のような動作になります。

q241001r.rpgle - Visual Studio Code 2024-11-30 10-49-41.gif

まだ、現時点では実験的な拡張の様で、何回か Undo ⇔ Redo を繰り返していると、SEU 側で参照したときに日付の同期がとれていない事がありました。あと注意としては、Code for IBM i は diff で中身が変更されていないと判断して、元の日付に物理的に更新しているので、レコードの更新日付は元に戻っても、メンバー自体の更新日時は変わってしまうことに留意が必要です。特に SEU を使用しているとソースレコードの更新日付とメンバーの更新日付が一致しているケースが多いので、ケースによっては誤解してしまうかもしれません。
2024-11-30_111154.png

ソースコードの日付を検索

また、ソースコードの日付箇所にマウスのカーソルを合わせると 日付の検索 ができます。検索といっても実際は強調表示なので SEU の検索とは異なります。
また SEU の場合は より小さい/等しい/より大きい と選択出来ますが、何回か試したところこちらは 以上 の様でした。

2024-11-30_105851.png

2024-11-30_111154.png

SEU に慣れたユーザーは、ソースに日付がある方がしっくり来るかも知れませんので、設定してみて下さい。

4
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?