メニューボタン
IBMi海外記事2021.11.25

RDi V9.6 パート11、経験豊富なRDiユーザー向けの新機能

Susan Gantner 著

RDiのV9.6に関する記事シリーズは、きっと連載終了したのだろうと思っていたところだったでしょうか。ただいま戻りました。まるで終わりのない歌のようです。しかし、それも幸いなことであり、さらに多くの新機能がRDiに追加されているからこそです。そして、それらの多くは、読者の皆さんや私のようなRDiユーザーから寄せられたRFE(機能拡張の要望)を受けてのものです。

新リリースを待つのが、いつもより長かった気がしますが、ようやく9.6.0.11リリースが利用可能になりました。今回のリリースでの機能強化については、2回に分けて紹介しようと思います。今回の記事は、主に経験豊富なRDiユーザー向けです。次回は、「RDi初心者」ユーザーに向けて、RDiへの移行を容易にするいくつかの機能強化を中心に紹介しようと思っています。

言うまでもなく、今回のリリースでおそらく一番重要な機能は、RPG言語の新機能のサポートということになるでしょう。RDiではRPGの最新機能がサポートされているということについて、私はわざわざ口にすることはありません。RPGの新機能が利用可能になってからRDiでサポートされるまでに、タイム ラグがほとんどないのが常だからです。ただし、今年は状況が少し異なりました。4月のRPGアップデートと同時にRDiの新たなリリースはありませんでした。そのため、%Splitや%Upperや%Lowerを使用してみた方は、もちろんコードはコンパイルできるものの、うっとうしい構文エラー報告に耐えるのが大変だったと思います。9.6.0.11では、春の機能強化だけでなく、9月のアナウンスメントでの最新のRPG機能強化も利用することができます。

ロックまたはロックなし

9.6.0.11をインストールした後、最初に気付くことになりそうな変化は、エディターのメンバー タブの新たなアイコンではないでしょうか。これはメンバーがロックされているかどうかを示しています。9.6の以前のリリースでは、新たなアイコンが、参照用に開かれているメンバーに使用されるようになりました。しかし、メンバーが編集用に開かれていても、そのメンバーに対する現行のロックがないかもしれないというケースもあります。たとえば、メンバーが開かれていたか、RDi終了時にメンバーが開かれたままであったために、ホスト サーバー ジョブへの接続が失われたのかもしれないというケースです。今回のリリースで、RDiがファイルをロックしているかどうかが、タブ アイコンではっきり分かるようになりました。図1は、タブ アイコンの3種類のパターンを示しています。1つは編集用に開かれているが現在ロックされていないメンバー、1つは参照用に開かれているメンバー、1つは現行のロックがある、編集用に開かれているメンバーです。

図1:メンバーがロックされていることを示すタブ アイコン。

新たなロック アイコンに加えて、「Lock remote members on startup(起動時にリモート メンバーをロック)」を有効化する新たな設定オプションが追加されました。これは、デフォルトではオンに設定されていません。このオプションは、「リモート・システム LPEXエディター」設定ページにあります(「設定」ダイアログで、「lock」で検索すると、すぐに見つかります)。このオプションが設定されていると、RDiの開始時に、RDiは必ず、エディターですでに開かれているすべてのメンバーに対してロックを試みます。これは、ホスト接続が失われた後に再接続するだけの場合にも機能します。

「アウトライン」: これまでにない改善

RDiに関する連載記事を読んでこられた方なら、私がRDiの「アウトライン」ビューの大ファンであることはご存じかと思います(特に、RPGLEメンバーの編集時)。「アウトライン」にも、いくつかの機能強化がなされています。

まず、ファイルおよびレコード フォーマットの相互参照情報は、単に参照がある行を示すだけのものではなくなっています。READ、OPEN、%EOF、EXFMTなど、その行に対する命令が表示されるようになりました。

また、「アウトライン」では、エクスポートされたプロシージャー(すなわち、EXPORTキーワードが指定されたプロシージャー)は、内部プロシージャーと区別するために少し異なるアイコンで示されるようになっています。

図2には、これらの「アウトライン」の機能強化がいくつか示されています。

図2: 「アウトライン」ビューの新たな機能強化。

最後になりますが、特にCLプログラマーにとって、おそらく一番、意義深い「アウトライン」の機能強化は、CLの「アウトライン」が実に有用なものになっていることです。

今回のリリース以前は、CLコード用の「アウトライン」の情報は、控えめに言っても、希薄と言わざるを得ませんでした。今回、RPGコードで頼りになる機能の多くがCLプログラムの「アウトライン」に含まれるようになりました。パラメーターおよびその他の変数がそれらの定義でリストされるだけではなく、RPGの「アウトライン」と同じように、値が修正されているかどうかを示し、その項目が使用されるコード行を識別するライブでの相互参照もあります。

「アウトライン」から収集されるデータは、ホバー ヘルプやコード ナビゲーションといった、便利なRPGのエディター機能のサポートに使用されるため、いつの日にかCLエディターでも、そうした機能を使用できるようになればと願っています。それらの機能はまだありませんが、このような「アウトライン」の機能強化は、とりあえずはCLプログラマーにとっては朗報と言えるでしょう。

機能強化されたCLアウトラインを表示するためには、設定が必要なオプションがあります。このオプションはデフォルトでオンに設定されていると思いますが、これらの新機能が表示されていない場合には、設定ダイアログのフィルター ボックスで「outline」を検索し、「IBM i 構文解析プログラム」 > 「CL」ページをクリックします。次いで、「エディターでテキストが変更されたときに「アウトライン」ビューを更新する(E)」が選択されていることを確認します。そのオプションを設定した後で、新たな宝の山、すなわち新たなCL「アウトライン」を表示するためには、「アウトライン」の更新が必要になる場合もあります。図3には、CL向けのこれらの機能のいくつかが示されています。赤くハイライトされているのは、「アウトライン」を更新するボタンです(設定オプションをオンにした後に表示)。

図3: CLの「アウトライン」ビューの新機能。

それだけではまだ足りないとでも言わんばかりに、CLプロンプト機能のパフォーマンスも向上しています。私の感覚では、「グリーン スクリーン プロンプト」のスピードまでではありませんが、以前のリリースに比べれば著しく速くなっていると思います。

RPGのコピー メンバー

RPGの機能強化に戻ります。長い間、要望されていたいくつかの機能が追加され、/Copyおよび/Includeファイルからコードを表示または編集する機能が改善されました。変数やプロシージャーなどの名前にマウス ポインターを置いたときに表示される、黄色のホバー テキストは、もうお馴染みだと思います。ホバー テキストには、名前と定義、およびその項目の定義へナビゲートするリンクが示されています。今回のリリースでは、copy/includeステートメントの上にマウス ポインターを合わせると、同じようなサポートが得られるようになりました。メンバー(またはIFSファイル)の内容が、すでにお馴染みの黄色のボックスに表示されるというわけです。コピー ファイルの場所の名前とリンクも示されているため、そのメンバーを開いて編集することも可能です。また、開きたいのがそのメンバーだと分かっている場合は、Ctlキー(Macではcommandキー)を押したままにすると、copyステートメント自体が、そのメンバーを開くためのリンクになります。これらの新たなオプションにより、コピー メンバーからのコードのブラウズまたは編集が、コンテキスト メニューを使用する従来の方法に比べて、少し簡単に行えるようになります。もちろん、お好みなら従来の方法もこれまで通り使用できます。図4は、/copyステートメントの上にマウス ポインターを合わせたときの例です。

図4: copyステートメントでのホバー機能が強化されました。

同様に、プロシージャーのプロトタイプがコピー メンバーで定義されている場合に、プロシージャー呼び出しそのものの上にマウス ポインターを合わせたときに表示される黄色のホバー ボックスは、以前からあったプロシージャー定義情報に加えて、その場所と、copy/includeメンバーを開くためのリンクが含まれるように機能強化されています。

RPGのリファクタリング機能

「定数の抽出」を行うリファクタリング オプションにも新機能が加わりました。1つには、定数の定義の前の行に、コメントを追加できるようになりました。2つには、数値定数のリファクタリングを行えるようになりました。これは、元となった文字定数のリファクタリングを行う機能が導入されて以来、多くのユーザーがずっと待ち望んでいた機能です。

検索結果の保存

これまでに、RDiで「リモート検索」(または「ストリングの検索」)を行って、「この検索結果を印刷または保存できるとよいのに」と思ったことはないでしょうか(iSphereプラグインをインストールしている方は、このオプションはすでにお持ちということになりますが)。「リモート検索」のコンテキスト メニュー(すなわち、右クリック)に、印刷、ファイルへエクスポート、またはクリップボードへ結果をコピーする新たなオプションが加わっています。私と同じなら、「リモート検索」ビューのビュー メニューに、この機能がないか探したくなるかもしれません。「オブジェクト・テーブル」で同じようなオプションが表示されている場所だからです。以前に「オブジェクト・テーブル」で利用可能だった印刷およびエクスポート オプションに、クリップボード オプションが加わりました。

続きがまだある

9.6.0.11リリースには、さらに多くの新機能や機能強化があります。それらについては、次回の記事で紹介しようと思っています。それらの機能は、主に新たなRDiユーザー向けであり、より円滑で迅速なスタートアップ エクスペリエンスが得られるようにするためのものと言えます。しかし、経験豊富なRDiユーザーにとっても、有用だと思う機能があるかもしれません。

あわせて読みたい記事

PAGE TOP