text:小川 誠 ティアンドトラスト
それでは、FF RPG の開発に必要なVSCodeの拡張機能について見ていこう。必須の拡張機能は、次のとおりである。
①Japanese Language Pack for Visual Studio Code
②RPG for IBM i
③SFTP/FTP sync
拡張機能をインストールする場合は、アクティビティバーの拡張機能アイコンをクリックする。するとサイドバーが拡張機能検索およびインストール済み機能一覧に切り替わるので、ここで利用したい拡張機能を検索してインストールする。
Japanese Language Pack for Visual Studio Code
VSCodeのUI言語を日本語化する場合にインストールする。VSCodeの導入直後に日本語パックをインストールしている場合は、インストール済みに「Japanese Language Pack for Visual Studio Code」が表示される。これをクリックすると、エディタ部にその拡張機能の説明およびインストール/アンインストールを実行するリンクを含むページが表示される。
VSCodeのインストール直後にインストールしなかった場合は、検索ボックスにJapaneseと入力して検索し、詳細ページ上部のインストールボタンをクリックする。
RPG for IBM i
Niels Liisberg 氏が開発した拡張機能であり、以下が可能になる。
・色分け表示
命令コード、キーワード、関数、文字リテラルなどを識別しやすいように色分けして表示する(図表1)。

・スニペットによる入力アシスト
スニペットとは、定形のテキストをあらかじめ登録しておき、エディタの必要な箇所でそれを呼び出して入力する機能である。RPG for IBM i拡張機能には、いくつかのスニペットが事前に登録されている。
たとえばエディタ内でifと入力すると、スニペットの候補が自動的に表示される(図表2)。

ここで3つ目の候補をクリックすると、図表3のコードがエディタ内に挿入される。

またmainと入力すると、図表4のように表示される(上部のmainはすでに入力されている文字列mainを表している)。

2番目をクリックすると、図表5のコードがエディタ内に挿入される。

入力パターンが決まっている場合は、スニペットの利用により入力作業が効率化し、入力ミスも防げるので積極的に利用したい。
RPG for IBM iで用意されている上記以外のスニペット一覧は、以下のとおりである。
dcl-s(図表6)

dow(図表7)

select(図表8)

when(図表9)

proc(図表10)

最初のnameを別の名前で上書きすると、後続の2つのnameも同時に上書きされる。
exsr(図表11)

exsrbegsr(図表12)

最初のsubrutineを別の名前で上書きすると、後続の2つのsubrutineも同時に上書きされる。
read loop(図表13)

最初のfilenameを別の名前で上書きすると、後続の3つのfilenameも同時に上書きされる。
スニペットは必要に応じて追加できる。適用範囲もグローバル、フォルダ、ファイルの拡張子単位などで登録できるので、ぜひ活用してほしい。
SFTP/FTP sync
SFTPで検索すると、同じアイコンの拡張機能が3つ出てくるが、オリジナルはliximomo 氏が作成したもので、残りの2つはそのfolk(*1) である。今回はNatizyskunk氏がfolkしたもので説明する。
(*1) folkとは、Gitの他のリポジトリを自分のアカウントのリモートリポジトリにコピーすること
この拡張機能により、あらかじめ定義したリモートサーバーの指定ディレクトリに、VSCodeで作成・修正したファイルをプッシュできる。設定により、ローカルファイルの変更を保存すると同時に自動的にプッシュさせることも可能だ。
IBM iはFTPとSFTPをどちらも利用できるが、可能であればSFTPを使用したい。通信経路が暗号化されることと、公開鍵認証を利用すればパスワードの送付も必要ないので、安全にソースコードをプッシュできる。
SFTPを利用するには、IBM iでsshdを開始しておく必要がある。開始するには、以下のSTRTCPSVR コマンドを使用する。
開始しているかどうかは、IBM Navigator for iなどで確認する(図表14)。
SFTPを使用するには、接続するサーバー情報などを事前に登録する必要があるが、それについては後述する。

著者|
小川 誠氏
ティアンドトラスト株式会社
常務取締役
1989年、エス・イー・ラボ入社。その後、1993年にティアンドトラストに入社。システム/38 から IBM i まで、さまざまな開発プロジェクトに参加。またAS/400 、IBM i の機能拡張に伴い、他プラットフォームとの連携機能開発も手掛ける。IBM i 関連の多彩な教育コンテンツの作成や研修、セミナーなども担当。2021年6月から現職。
[i Magazine・IS magazine]