IntelliSense を使用した COBOL コードの効率的な記述

IntelliSense とは、メンバーの一覧、パラメーター ヒント、クイック ヒント、入力候補などの Visual Studio のさまざまな機能を指す総称です。

Enterprise Developer では、ネイティブ COBOL と .NET COBOL の両方の記述支援に IntelliSense を使用できます。

COBOL 向けの IntelliSense のサポートは構成可能です。IDE 内の [ツール > オプション > テキスト エディター > Micro Focus COBOL > IntelliSense] セクションで IntelliSense のユーザー設定を変更し、挿入される語の大文字小文字、入力候補一覧を表示するか 1 つの候補を自動的に挿入するか、候補を上書きモードで追加するか挿入として追加するかなどのオプションを指定できます。詳細は、「COBOL 用 IntelliSense の構成」を参照してください。

ネイティブ COBOL での IntelliSense

ここでは、ネイティブ COBOL の IntelliSense によって提供される記述支援について説明します。

IntelliSense が提供する編集機能は、構文的に正しいコードを記述できるように支援します。IntelliSense を使用すると、迅速に語を補完し、使用可能な要素を検索できます。

IntelliSense は、現在のカーソル位置に応じてスコープ内のデータ項目に絞って入力支援を表示します。

次の機能があります。

入力候補一覧
デフォルトでは、入力開始直後に IntelliSense によって入力候補一覧 (候補を示すポップアップ) が表示されます。入力候補一覧が自動的にポップアップ表示されない場合は、Ctrl+Space を押すと表示されます。この方法は、まだ入力を開始していない場合、または入力候補一覧の自動表示が無効になっている場合に実行できます。

次のリストは、入力候補一覧の動作をまとめたものです。

  • コンテキストに依存した候補 - 一覧には、コード内のカーソルの位置およびプロジェクトのタイプに関連のある候補のみが含まれます。

    たとえば、COBOL 動詞は手続き部の節では表示されますが、作業場所節では表示されません。また表示される COBOL 動詞はネイティブ コードに関連するもののみです。MSS プロジェクトの入力候補一覧には、メインフレーム サブシステム コード スニペットが含まれます。

  • 候補は、入力した文字で始まり、最も一致するものが IntelliSense のポップアップで強調表示されます。この一覧は、入力するにつれて自動更新されます。
  • 候補には、COBOL 動詞、句、および語 (keyword)、COPY 文の入力候補一覧にあるコピーブック (Copybook)、コード スニペット (code snippet)、変数 (variable)、レベル 78 項目 (78 level item)、節および段落 (section) などが含まれます。
  • 入力候補一覧には、COPY 文が含まれます。
  • 入力候補一覧は、プログラム、および拡張コピーブック ビューに表示されているプログラム内のコピーブックの両方で使用できます。
文の補完
IntelliSense は、COBOL 文を完成させるためのインテリジェントな支援を提供します。文を入力していると、IntelliSense によって、文を完成させるために使用できる関連のある句および一意名の候補が表示されます。候補では、選択した COBOL 方言において文に適用される構文規則と、スコープ内における一意名が考慮されます。

文を完成させるには、次の手順を実行します。

  1. COBOL 文の最初の動詞を入力して Space を押します。

    デフォルトでは、使用できる句および一意名が含まれている入力候補一覧が IntelliSense によって自動的にポップアップ表示されます。

  2. その一覧から候補を選択し、EnterTab、または Space を押してコードに挿入します。
  3. さらに候補を表示するには、Space を押します。
COPY 文の補完
COPY 文を入力して Space を押すと、コピーブックが含まれている最初の入力候補一覧が表示されます。

一覧からコピーブックを選択すれば、IntelliSense によって COPY 文の後にそのコピーブックが挿入されます。コピーブックが挿入された後、入力候補一覧が表示され、文をピリオド (.) で終了するか、IN、OF、REPLACING、または SUPPRESS 句で文を続けるかを選択できます。

デフォルトでは、COPY 文の候補には、現在のプロジェクトに属するコピーブック、またはプロジェクトのプロパティの [Copybooks] タブで指定したディレクトリで見つかったコピーブックのみが含まれますが、これを変更してシステムのコピーブックも含めるようにすることができます。システムのコピーブックは、プロジェクトに含まれていないが、COBCPY 変数を使用して定義されるコピーブックです。[ツール > オプション > テキスト エディター > Micro Focus COBOL > IntelliSense] セクションからユーザー設定を変更できます。

自動補完
入力候補一覧に 1 つの候補が含まれている場合、Ctrl+Space を押すと、自動的にその候補がコードに挿入されます。IDE ユーザー設定でこのオプションをオフにして、動作を変更することができます ([ツール > オプション > テキスト エディター > Micro Focus COBOL > IntelliSense] セクションに移動)。
非一意の名前の修飾
変数名が一意ではない場合、IntelliSense によってその名前が修飾されます。

StudentRecord と TeacherRecord の 2 つの集団項目を定義するプログラムの例について考えます。両方の集団項目には、FirstName、Surname、Phone といった同名の PIC X 基本項目が数多く含まれています。このような場合は、IntelliSense によって次のように基本項目が修飾されます。

  1. 手続き部に「move」と入力して Space を押します。

    ポップアップ表示される入力候補一覧には、COBOL キーワード、プログラムで定義した集団項目、両方の集団項目にある基本項目が含まれています。

  2. 基本項目の 1 つ (Surname of StudentRecord など) を選択してコードに挿入します。
  3. Space を押すと、TO 句を挿入することが提示されます。

    IntelliSense は、次のようにコードで使用する正確な基本項目を指定するのに役立ちます。

    move Surname of StudentRecord to...

.NET COBOL での IntelliSense

注: 次の説明は .NET COBOL にのみ該当します。

.NET COBOL の IntelliSense では、メソッド、フィールド、プロパティ、型などが含まれている候補が表示されます。これらの要素は、項目を宣言するか、手続き部でオブジェクト名に続けて、ダブル コロンや左角かっこを入力すると使用できます。

一覧から項目を選択すると、手入力せずにコードを完成できます。

ここでは、IntelliSense がポップアップ表示される状況の例を示します。

  • 型の一覧 - 01 my-string type などの型の宣言を開始したときに「type」というキーワードを入力して Space を押すとすぐに、プログラムで使用可能なネームスペースと型の一覧が IntelliSense によってポップアップ表示されます。これらのネームスペースは、プロジェクトに追加した各参照から取得されます。ネームスペースを入力すると、そのネームスペース内のすべての型が IntelliSense によって表示されます。たとえば、次のように表示されます。
    • 01 my-string type - 使用可能なすべてのネームスペースの一覧が表示されます。
    • 01 my-string type System. - System ネームスペース内のすべての型の一覧が表示されます。
    • 01 my-string type System.IO. - System.IO ネームスペース内のすべての型の一覧が表示されます。
  • メンバーの一覧 - オブジェクトを呼び出すと、そのオブジェクトに使用できるメソッド、フィールド、プロパティ、イベントの一覧が IntelliSense によってポップアップ表示されます。一覧が表示されるのは、次の例のようなインライン スタイルの invoke 文 (ダブル コロン :: を指定する) の場合です。
    invoke my-string::