COBOL でのクイック アクション (電球) の使用

クイック アクション (電球 light bulb) は、Visual Studio 2015 以降のエディターの機能です。この機能を使用して、コードの問題をすばやく解決し、構造を実装したり他のアクションを実行したりできます。
注: 電球機能を使用するには、IDE でバックグラウンド解析を有効 (デフォルト) にしておく必要があります。

COBOL では、クイック アクションを使用して次の修正が可能です。

欠落しているコピーブックの作成または検出

コードで参照しているコピーブックがプロジェクトのコピーブック パスで定義されたいずれのパスにも存在しない場合、エディターのクイック アクションを使用して、コピーブックを手動で見つけるか新規に作成し、そのファイルをプロジェクトに追加することができます。

クイック アクションを使用してコピーブックの欠落を解決する方法は次のとおりです。

  1. エディターで COPY 文にカーソルを合わせ、電球アイコン (light bulb) が表示されたら、アイコンをクリックして推奨される修正を確認します。

  2. 推奨されるアクションからいずれかを選択します。

    コピーブックを作成する場合は、ファイルがプロジェクトに追加され、その場所がプロジェクトのコピーブック パスに追加されます。

    欠落しているコピーブックを探す場合は、ファイル システムからファイルをブラウズして選択できます。ファイルの場所を特定すると、そのパスがプロジェクトのコピーブック パスに追加されます。

コード内の選択行からのコピーブックの作成

エディターの [Extract to Copybook] コンテキスト メニュー コマンドの代わりに、[Extract to Copybook] クイック アクションを使用できます。

  1. コピーブックに移動するコード行を選択します。

    余白部分に表示される電球機能に注目してください。

  2. [Extract to Copybook] コマンドをクリックします。
  3. コピーブックの名前および場所の入力を求められたら指定し、[Save] をクリックします。

    コピーブック ファイルが作成され、プロジェクトに追加されます。

未実装のインターフェイスの実装

電球機能を使用して、マネージ オブジェクト指向 COBOL プログラムにおいてインターフェイスを実装できます。それらを使用する手順は、次のとおりです。

  1. 実装側のクラスまたは値型の定義を次のように入力します。
    class-id MyClass implements type Interface

    この段階では、クラスにインターフェイスは実装されず、その名前でエラーが発生します。電球 (light bulb) が表示されるまで、エラーにカーソルを合わせます。

  2. 電球をクリックして、推奨される修正を確認し、インターフェイスを実装するためのコマンドをクリックします。

    Implement an interface

    この操作で、欠けていたインターフェイス メンバーが実装側のクラスまたは値型に追加されます。

注: この操作では一般的なインターフェイスはサポートされておらず、インターフェイスからのイベント メンバーは追加されません。

リファクタリングの名前の変更

[Rename] クイック アクションを使用して、変数、セクション名、段落名、識別子の名前を特定のファイルまたはソリューション全体で変更できます。

  1. エディターでコードを開き、コード内のいずれかの場所で変数または識別子の名前を変更します。

    編集した行の余白部分に電球アイコン (light bulb) が表示されます。

  2. リストからいずれかのクイック アクションを選択して、現在のプログラムまたはソリューション全体ですべての名前を変更します。

不明なタイプの解決

名前空間を完全修飾せずにタイプを指定する場合は、電球機能を使用してそのタイプを解決します。たとえば、System.IO.Path::GetFullPath を使用する必要があり、局所記憶節で次のことのみを定義してあるとします。

01 var1 type Path

出力ウィンドウに、Path は不明なタイプであるというエラー メッセージが表示されます。この宣言の行をクリックすると、プログラムのこの行の上の余白部分に電球アイコンが表示されます。

電球が表示されるまで Path にカーソルを合わせてから、電球アイコン (light bulb) をクリックして、推奨される修正を確認します。コードに適用する修正を選択します。

Resolving namespaces

タイプの名前の簡略化

コードで .NET タイプを参照する際は、完全修飾名前空間を使用するか、簡略化された名前のみを使用して名前空間を省略することができます (簡略化された名前をあいまいさなしで解決できる場合)。たとえば、String が他のクラスで使用されていない場合は、「System.String」と入力する代わりに単に「String」と入力できます。

エディターで電球クイック アクション [Simplify name Type] を使用すると、完全修飾名を簡略化された名前に自動的に置き換えることができます。

現在特定されている完全修飾名を簡略化するか、現在のファイル内 ([Document] をクリック)、または現在のファイルとその拡張コピーブック ビューに表示されるすべてのコピーブック内 ([Program] をクリック) で検出されるその名前をすべて簡略化するかを選択できます。

.NET タイプから移植可能な COBOL 構文への変換

あらゆるプラットフォームで使用されるマネージ COBOL コードを記述する際は、電球クイック アクションを使用すると、事前定義された対応するマネージ COBOL タイプを持つ .NET タイプを COBOL 事前定義タイプに変換できます。これは、簡単に Visual Studio からエクスポートして Visual COBOL for Eclipse で編集できるプラットフォーム非依存のアプリケーションの記述に役立ちます。

これには、電球クイック アクション [Convert to COBOL Syntax] を使用します。このクイック アクションは .NET タイプに対して利用でき、System.UInt64 から binary-double unsigned のような変換を迅速に実行できます。

エディターで電球クイック アクション [Convert to portable COBOL syntax] を使用すると、.NET タイプを COBOL 事前定義タイプに自動的に置き換えることができます。