COBOL エディタでは、プログラムまたはコピーブックでコピーブックが参照される場所に、コピーブックの内容をインラインで表示する機能がサポートされます。次の機能があります。
- COPY、-INC、++INCLUDE、EXEC SQL INCLUDE 各文のいずれかを使用して参照されるコピーブックのサポート。
- 拡張コピーブック ビューでのコピーブック編集のサポート (置き換えられた値で表示されるコピーブックを除く)。
- COPY...REPLACING 文を使用して参照されるコピーブックでは、コピーブック ファイルの元の内容を表示するか、または置き換えられた値の内容を表示できます。置き換えられた値によって表示される拡張コピーブック ビューは、読み取り専用であることが黄色い背景によって示されます。
注:読み取り専用ビューの背景色は、[
Tools > Options > Environment > Fonts and Colors] で [
COBOL Read-Only Background] 項目の背景色を変更することで設定できます。
- [Go To Definition]、[Find All References]、ドロップダウンのタイプとメンバーを使用したナビゲーション、[Error List] ウィンドウからのエラーへの移動は、いずれも拡張コピーブック ビューで結果を検索するかまたは情報を特定するための機能です。
- 拡張コピーブック ビューでのコピーブック編集時の IntelliSense およびコード スニペットのサポート。
- 拡張コピーブック ビューでの Visual Studio のアウトライン機能 (コードのリージョンの折りたたみ、展開) のサポート、および拡張コピーブックを含んでいるリージョンのサポート。
コピーブックの表示
単一のコピーブックを表示するには
ソース ファイルで参照されるすべてのコピーブックを表示するには、次の手順を実行します。
注:
- COPY 文がある行で [Go To Definition] を使用すると、コピーブックの内容がインラインで表示されます。
- COPY...REPLACING を使用して参照されるコピーブックの場合、[Show all copybooks] コマンド、[Go To Definition]、[Error List] ウィンドウからのエラーへの移動、[Find All References]、およびドロップダウンのタイプとメンバーを使用したナビゲーションは、コピーブックが元の内容で既に表示されていない限り、いずれも読み取り専用の拡張コピーブック ビュー内の項目を、置き換えられた値によって表示します。
置き換えられた値によるコピーブックの表示
COPY...REPLACING 文を使用して参照されるコピーブックの場合、元の内容を表示するか、または置き換えられた値による内容を表示できます。
編集モードに切り替えるには、[COPY] ビューを右クリックするか読み取り専用ビュー内を右クリックして、[Show "CpyFileName.cpy" for editing] をクリックします。
コピーブックの非表示
単一のコピーブックでは、次の手順を実行します。
- エディタで COPY 文または拡張コピーブック ビュー内を右クリックし、[Hide "CpyFileName.cpy"] をクリックします。
現在のファイルですべてのコピーブックを非表示にするには
- COBOL ツールバーの
をクリックするか、またはエディタでソースファイルを右クリックして [Hide all copybooks] をクリックします。
コピーブックの開始位置または終了位置への移動
エディタの拡張コピーブック ビューに表示されているコピーブックの開始位置に移動するには、次の手順を実行します。
エディタの拡張コピーブック ビューで表示されているコピーブックの終了位置に移動するには
- 拡張コピーブックのコードを右クリックし、[Go To End Of "CpyFileName.cpy"] をクリックします。
カーソルがコピーブックの終了位置に移動します。
拡張コピーブック ビューでのコピーブック編集
拡張コピーブック ビューでコピーブックを編集できます。変更を保持するには、拡張コピーブック ビューでコピーブックを編集したファイルを保存する必要があります。これにより、変更を加えた後にコピーブックを非表示にしても変更は保存されます。
拡張コピーブック ビューでの編集またはエディタの単独のタブで開いた場合の編集のどちらでも、コピーブックを編集すると、コピーブックが表示される他のどの場所でも変更内容が自動で表示されます。
拡張コピーブック ビューでコピーブックに変更を加えた後にソース プログラムを閉じると、コピーブック ファイル自体で変更を保存するように指示されます。
注:拡張コピーブック ビューでは、置き換えられた値によって表示される、COPY...REPLACING 文を使用して参照されるコピーブックを編集することはできません。この場合、拡張コピーブック ビューは読み取り専用です。それらのコピーブックを開いて編集するには、COPY...REPLACING 文の行を右クリックし、[
Show "CpyFileName.cpy" for editing] をクリックします。
エディタの単独タブでのコピーブックの編集
エディタの単独タブで COBOL ソース内からコピーブックを開くには、次の手順を実行します。
エディタの単独タブで開いているコピーブックを閉じると、そのコピーブックが表示されていたすべてのソース ファイルでそのコピーブックの拡張コピーブック ビューが非表示になります。拡張コピーブック ビューを再び表示する必要がある場合、手動で開く必要があります。
拡張コピーブック ビューでのデバッグのサポート
デフォルトで、デバッガーは拡張コピーブック ビューでインラインでステップ実行しながらデバッグを行います。この動作は、[Tools > Options > Debugging > COBOL] から変更できます。
拡張コピーブック ビューでのデバッグのサポートには次の機能が含まれています。
- 拡張コピーブック ビューで、ブレークポイントと COBOL 監視ポイントを通常の方法で直接コピーブック ファイルに設定できます。
- デバッグ時に、拡張コピーブック ビュー内でステップ実行できます。IDE では、ステップインしたとき、またはコピーブックのブレークポイントにヒットしたとき、コピーブックが自動で展開されます。
- 拡張コピーブック ビュー内でピンされたデータ ヒントを表示できます。
- 拡張コピーブック ビュー内で、[Quickwatch] および [Add Watch] コマンドを使用できます。
- いくつかのデバッガー コマンド、例えば [Show Next Statement]、[Run To Cursor]、[Set Next Statement] などを、拡張コピーブック ビューのコンテキスト メニューから実行できます。
注:拡張コピーブック ビューには、次の制限事項が適用されます。
- 拡張コピーブック ビューでは、コピーブック ビューに置き換えられた値が表示される場合、COPY...REPLACING 文によって参照されるコピーブックは編集できません。この場合、拡張コピーブック ビューは読み取り専用です。
- 拡張コピーブックの読み取り専用ステータスは、プロジェクトを閉じた後は維持されません。次回プロジェクトを開くと、コピーブックは拡張コピーブック ビューに表示されますが読み取り専用ではなくなります。
- COPY 文で OF 句または IN 句を使用したとき、コピーブックがライブラリ ファイルに格納される場合は (COPYLBR コンパイラ指令を使用した場合)、拡張コピーブック ビューで対応するコピーブックを表示できず、または Open Document コマンドを使用してコピーブックを開くことはできません。
- [Class View] から、または [Navigate To] コマンドを使用して、拡張コピーブック ビューの項目に移動する操作はサポートされません。
- 出力ウィンドウでファイルの場所を参照した場合 (ビルド出力へのポイントなど)、または [Find in Files] で受け取られた結果でファイルの場所を参照した場合、拡張コピーブック ビューの項目をポイントしません。
- 拡張コピーブックの呼び出し履歴で現在選択されている文を選択すると、実際のコピーブックが表示される場合があります。デバッガーの [Show Next Statement] コマンドを使用して実際の拡張コピーブックの位置に戻ることができます。
- [Breakpoints] ウィンドウには、拡張コピーブック ビュー内の行番号ではなく、ブレークポイントを含んでいるファイル内のブレークポイントの行番号が常に表示されます。
- [Call Stack]、[Threads]、[IntelliTrace] の各ウィンドウには、拡張コピーブック ビュー内の行番号ではなく、文を含んでいるファイルに対応する行番号が表示されます。
- 拡張コピーブック ビューでカレットを無効な位置に移動すると、[Set Next Statement] コマンドによって「Unable to set the next statement to this location」というエラー メッセージが表示されコピーブックが個別の文書として開きます。
- マネージ コードでステップ実行するとき、ステップ実行する次の文が同じクラスまたはプログラム、同じ行番号にありながら、異なるソース ファイルにある場合、デバッガーはその文をステップ オーバーします。例えば、Program1.cbl の行 10 から Copybook1.cpy の行 10 までステップ実行する場合、デバッガーはコピーブックでその文をステップ オーバーします。