VSCode 上で IBM i のソースコードを編集できる Code for IBM i
ですが、インストール時のデフォルト設定ですと、SEU でおなじみの右側の YYMMDD 日付が更新されません。
初期設定のままソースコードを保存すると全て日付は 000000 で更新されます。
本投稿では、Code for IBM i
のソースコード設定をすることで、従来の日付が設定される様にしていきます。
ソースコード設定を変更する
-
Code for IBM i
でターゲットの IBM i に接続した後、以下画面の[Settings]
を開きます。 -
Source Code
タブを開き-
Enable Source Dates
にチェック -
Source date tracking mode
を選択 -
Source Dates in Gutter
にチェック※左隅に YYMMDD 表示されます
-
-
Save settings
を押して設定を保存
2つの日付更新モード
日付を更新するモードは以下のとおり2つあります。
1つは Edit mode
です。これは従来の SEU に近い挙動で日付が更新されます。
エディタ上で一度ソースコードの変更をすると、undo(元に戻る)を実行しても日付は更新されたままとなります。次のような動作になります。
2つ目は Diff mode
です。これは「最後に開いた、又は最後に保存した」時点のスナップショットと現在のソースコードとで diff
が実行され、その差分より更新日付が判定されます。
エディタ上で一度ソースコードを変更しても、undo(元に戻る)を実行後に保存をすると、diff
内容が変更されていないと判定されソースに日付は元に戻ります。次のような動作になります。
まだ、現時点では実験的な拡張の様で、何回か Undo ⇔ Redo を繰り返していると、SEU 側で参照したときに日付の同期がとれていない事がありました。あと注意としては、Code for IBM i
は diff で中身が変更されていないと判断して、元の日付に物理的に更新しているので、レコードの更新日付は元に戻っても、メンバー自体の更新日時は変わってしまうことに留意が必要です。特に SEU を使用しているとソースレコードの更新日付とメンバーの更新日付が一致しているケースが多いので、ケースによっては誤解してしまうかもしれません。
ソースコードの日付を検索
また、ソースコードの日付箇所にマウスのカーソルを合わせると 日付の検索 ができます。検索といっても実際は強調表示なので SEU の検索とは異なります。
また SEU の場合は より小さい/等しい/より大きい
と選択出来ますが、何回か試したところこちらは 以上
の様でした。
SEU に慣れたユーザーは、ソースに日付がある方がしっくり来るかも知れませんので、設定してみて下さい。