コード エディタ

提供: RAD Studio
移動先: 案内検索

RAD Studio 入門 への移動


コード エディタフォーム デザイナは、IDE ウィンドウの中央のペインにあります。 コード エディタは、構文強調表示、複数取り消し機能、および言語要素の状況依存型ヘルプを備えたフル機能のカスタマイズ可能な UTF8 エディタです。

アプリケーションのユーザー インターフェイスを設計する際、RAD Studio によって基底のコードが生成されます。オブジェクトのプロパティを変更すると、変更内容が自動的にソース ファイルに反映されます。

また、すべてのプログラムが同じ特性を共有するので、RAD Studio によって自動生成されたコードを使用して、すぐに作業を開始できます。 自動生成コードは、プログラムを作成するために検討できるアウトラインと考えることができます。

メモ: 新規編集ウィンドウで、同時に同じユニットのコード エディタとフォーム デザイナ ウィンドウを開くことができます。 オブジェクト インスペクタでイベントを作成、またはイベント ハンドラをダブルクリックすると、コード エディタ ウィンドウがイベントの場所までスクロールし、フォーム デザイナ ウィンドウは同じ状態のままになります。

コード エディタのコンテキスト メニューは、コード エディタコンテキスト メニューのコマンドを説明しています。

ビデオ『RAD Studio Code Editor(RAD Studio 2010 エディタ)』(英語版、Mike Rozlog 解説)では、エディタ機能を理解するうえで有用なヒントや秘訣が紹介されています。

コード エディタは、コードの記述に役立つ次の機能を備えています。

変更バー

コード エディタ の左マージンに表示される緑色の変更バーは、現在の編集セッションで変更されていない行を示します。黄色の変更バーは、最後の[ファイル|保存]操作の後に変更が行われたことを示します。

ただし、この変更バーの色(デフォルトの緑色と黄色)は、カスタマイズして別の色に変更できます。 [ツール|オプション...|ユーザー インターフェイス|エディタ設定オプション|色]を選択します。[要素]ドロップダウン メニューで、[変更された行]を選択してから、前景色や背景色を変更します。

コードのインデント

Tab キーを使用すると、コード エディタの現在の行、またはコードのブロックをインデントできます。 Tab キーがインデントされるスペースの数は、[インデント幅] オプション([ツール|オプション...|ユーザー インターフェイス|エディタ設定オプション|言語] オプション内)によって決定されます。

  • コードのある行をインデントするには、その行の先頭にカーソルを置いて Tab キーを押します。
  • コードのあるブロック全体をインデントするには、そのコード ブロックを強調表示させて Tab キーを押します。
  • テキストを左側に移動("インデントを解除")するには、Shift+Tab キーを使います。

コードの整形

RAD Studio には、カスタマイズ可能なソース コード フォーマッタが用意されています。 コード エディタで、Delphi や C++ のコードを編集する際に、[ソースの整形]コンテキスト メニュー コマンド(または、[編集|ソースの整形]メニュー コマンド)を適用して、ソース コードを整形することができます。 インデントスペース改行大文字表記整列といった各整形オプションは、[オプション]ダイアログ ボックス([ツール|オプション...|言語|フォーマッタ])の[フォーマッタ]グループ下で、設定することができます。 [ソースの整形]コマンドはコードを自動で整形することに注意してください。 [オプション]ダイアログ ボックスで指定された整形オプションだけが考慮され、コード エディタで手動で実行した整形の結果はすべて上書きされます。 たとえば、手動で挿入したコードのインデントは無視されます。 コード ブロックを選択してから[ソースの整形]コマンドを呼び出すと、選択したブロックだけを整形できます。

メモ: ツール オプションのエディタ設定ページでは、その他にも整形オプションを提供しており、それらには、ソース オプション表示キーの割り当て支援機能などがあります。 「コード エディタをカスタマイズする」を参照してください。

支援機能

支援機能とは、コード エディタ に組み込まれている機能の一部で(コード補完、パラメータ補完、コード ヒント、ツールチップ式、ツールチップ インサイト、定義への移動、ブロック補完、エラー インサイト)、コード記述プロセスを支援するものを指します。 これらの機能は、コードによく挿入されるステートメントの特定、プロパティやメソッドの選択などに役立ちます。 これらの機能の詳細については、「コード支援機能のリファレンス」を参照してください。

コード支援機能を有効にし設定するには、[ツール|オプション...|ユーザー インターフェイス|エディタ設定オプション|言語]を選択し、[支援機能] オプションを選択します。

メモ: 支援機能は、言語ごとに定義されています。

コード補完 — Ctrl+Space

コード補完の機能では、入力された文字列を名前のどこかに含むすべての項目(メソッド、変数、プロパティなど)のドロップダウン リストが表示されます。

コード補完を行うには、コード エディタの使用時、Ctrl+Space を押します。 文字を選択し、Enter を押して、コードのカーソル位置にテキストを挿入します。

例:

  • C++

Code Completion CPP.png

メモ: 拡張 C++ コンパイラの場合、この機能は言語サーバー プロトコルのサーバーを使用します。 これは非同期であり、ブロッキングを行いません。
  • Delphi

Code Completion Delphi.png

メモ: マッチングでは、大文字小文字は区別されません。

ナビゲーション ツールバー

ナビゲーション ツールバーは、コード エディタの上部に表示されるもので、コード内を移動するのに役立ちます。

Navigation Toolbar.png

ナビゲーション ツールバーには、左から右に次のコントロールが含まれています。

  • 使用ユニット: このボタン UsedUnits.pngについているドロップダウン メニューには、現在のユニットが使用するすべてのユニットのリストが表示されます。 リストからユニットを選択して開きます。 メニューには、ユニットが宣言順に表示されます。 ドロップダウン メニューは、ショートカット Ctrl+Alt+N & Ctrl+Alt+U を押すことでも開くことができます。
  • ファイル セクション: このボタン UnitSections.png についているドロップダウン メニューには、ファイル内のセクションのリストが表示されます。 これらのセクションには、ファイルの先頭interface セクションinterface の uses 句implementation セクションimplementation の uses 句initialization セクション、および ファイルの末尾が含まれます。 これらのセクションの 1 つを選択して表示し、その先頭にカーソルを置きます。 ドロップダウン メニューは、ショートカット Ctrl+Alt+N & Ctrl+Alt+S を押すことでも開くことができます。
  • [型]: このコンボ ボックスには、現在のユニットで宣言されているすべての型の名前が表示されます。いずれかの型を選択すると、その型の宣言にカーソルが移動します。ショートカット Ctrl+Alt+N、Ctrl+Alt+T を押すと、型のコンボ ボックスが開きます。
  • [メソッド]: このコンボ ボックスには、現在のユニットに含まれているすべての手続きおよび関数の名前が表示されます。いずれかの項目を選択すると、その手続きまたは関数の実装にカーソルが移動します。ショートカット Ctrl+Alt+N、Ctrl+Alt+P を押すと、メソッドのコンボ ボックスが開きます。
  • プロジェクト シンボルの検索: Glass.png ボタンでは、アクティブな選択されたプロジェクトにあるすべてのシンボルに対して検索をかけることができます。 Ctrl+Alt+N & Ctrl+Alt+F ショートカットにより、プロジェクト シンボル検索ツールが開かれます。 プロジェクト シンボル検索は、ユーザーが入力するにつれてフィルタをかけていきます。 検索ウィンドウには、シンボル名の一部の文字列と一致する検索結果が表示されていきます。たとえば、about は、AboutBoxTAboutBox、や reabout に一致します。

ナビゲーション ツールバーを非表示にするには、「ナビゲーション ツールバーの非表示方法」で定義されている手順に従ってください。。

詳細については、「ナビゲーション ツールバーの使用」を参照してください。

コード ナビゲーション

以下のセクションでは、コード エディタの使用中にコード内を移動するための機能について説明します。

メソッド間の移動

一連のエディタ ホットキーを使って、メソッド間を移動できます。メソッド間の移動を現在のクラス内のメソッドに制限することもできます。たとえば、クラス内制限を有効にし、TComponent のメソッドの 1 つにいる場合は、TComponent のメソッド間でのみ移動が行われます。

メソッド間の移動に使用するキーボード ショートカットは次のとおりです。

  • Ctrl+Q^L -- クラス内制限のオン/オフ
  • Ctrl+Alt+Up arrow -- 現在のメソッドの先頭または前のメソッドに移動
  • Ctrl+Alt+Down arrow -- 次のメソッドに移動
  • Ctrl+Alt+Home -- ソース内の最初のメソッド
  • Ctrl+Alt+End -- ソース内の最後のメソッド
  • Ctrl+Alt+Mouse_Wheel -- メソッド間のスクロール移動

クラスの検索

クラスを検索できます。[検索|クラスの検索...]コマンドを使用して、選択できるクラスのリストを表示します。クラスを選択すると、そのクラスの宣言に移動します。

ユニットの検索

Delphi 言語のプログラミング中に、名前空間またはユニットを検索するリファクタリング機能を使用できます。ユニットの検索...コマンドを使用して、ユニットを検索し、コード ファイルに追加できます。

次の変更および前の変更の検索

コードの編集時にキー入力を使用して、それまでに行った次の変更と前の変更にすばやく移動できます。キーボード ショートカットを次に示します。

  • Ctrl+Shift+F7 -- ファイルを開いた後変更された前の行(マージンが緑色)に移動します。
  • Ctrl+Shift+F8 -- ファイルを開いた後変更された次の行(マージンが緑色)に移動します。
  • Alt+Shift+F7 -- 前回の保存後に変更された前の行(マージンが黄色)に移動します。
  • Alt+Shift+F8 -- 前回の保存後に変更された次の行(マージンが黄色)に移動します。

次の行または前の行が非表示の(折りたたまれた)ブロック内にある場合は、そのブロックが展開されます。コードの折りたたみについては、このトピックの後半で説明します。

各種キー入力は、キーボード マッピング(デフォルト、IDE クラシック、BRIEF、Epsilon)と同じです。Visual Studio および Visual Basic のキーボード マッピングには、次の変更および前の変更に移動するキー入力はありません。

ソース コード内の使用箇所の検索

Delphi 言語でプログラミングを行っている場合には、[使用箇所の検索]機能を使って、ソース コード プロジェクト内のクラス、メソッド、変数、オーバーライド メソッド、派生クラス、実装インターフェイスの使用箇所を検索できます。

ライブ テンプレート

ライブ テンプレートは、記述済みコードの辞典として使用できます。このコードをコード エディタの使用中にプログラムに挿入できます。これにより、入力が必要な作業量を削減できます。

ライブ テンプレートの作成と使用については、このトピックの最後にあるリンクを参照してください。

コードの折りたたみ

コードの折りたたみ機能を使用すると、コードの領域(ブロック)を折りたたんだり展開することができます。 コードを折りたたむと、コードが階層構造で表示され、判読やナビゲーションが容易になります。 折りたたまれたコードは削除されたのではなく、展開するまで非表示になるだけです。 コードの折りたたみ機能はデフォルトでオンになっています。

コードの折りたたみ機能を使用するには、コード エディタの左端にあるプラス記号([+])およびマイナス記号([-])をクリックします。

  • プラス記号([+])をクリックすると、関連するコードの領域が展開されます。
  • マイナス記号([-])をクリックすると、関連するコードの領域が折りたたまれます。

コードの折りたたみ機能を有効または無効にするには:

  • [ツール|オプション...|ユーザー インターフェイス|エディタ]オプションの[コードの折りたたみ]チェック ボックスを使用します。
  • キーボード ショートカットの Ctrl+Shift+K+O を使用します。

また、コンテキスト メニューの[コードの折りたたみ]コマンドを使用すると、型、メソッド、XML ドキュメント コメント(Delphi の場合)、'最も近い' 領域など、特定の種類の領域を折りたたむことができます。[コードの折りたたみ]コマンドおよび[コードの展開]コマンドについては、「コード エディタのコンテキスト メニュー」で説明しています。コードの折りたたみ領域の作成方法など、コードの折りたたみ機能の詳細は、「コードを折りたたむ」を参照してください。

リファクタリング

リファクタリングは、コードの外部機能を変更せずにコードを改善する処理です。たとえば、メソッドの抽出リファクタリングを使用すれば、選択したコード フラグメントをメソッドに変更できます。IDE は、抽出されたコードを現在のメソッドの外に移動し、必要なパラメータを決め、必要であればローカル変数を生成します。また、戻り値の型を決め、元のコードを新しいメソッドの呼び出しに置き換えます。その他にも、シンボル名の変更、変数の宣言などのリファクタリング メソッドを使用できます。

同期編集

ビデオ:Sync Editing in RAD Studio(RAD Studio の同期編集機能について)』(Mike Rozlog 解説)

同期編集機能を使用すると、コード内の同一の識別子を同時に編集できます。最初の識別子を変更すると、同じ変更が残りの識別子にも自動的に適用されます。また、ジャンプ ポイントを設定して、コード内の特定のセクションに移動することもできます。

To-Do リスト

To-Do リスト は、プロジェクトで完了する必要があるタスクを記録します。[To-Do リスト]に追加されたタスクは、編集したり、コードにコメントとして追加したり、完了したことを示すようにマークしたり、リストから削除したりすることができます。フィルタを設定して、目的のタスクだけをリストに表示することもできます。

キー入力マクロ

コードの編集中に、一連のキー入力をマクロとして記録することができます。マクロを記録した後、それを再生して同じキー入力を繰り返すことができます(これは現在の IDE を開いている間に限り有効です)。マクロを記録すると、前に記録したマクロが上書きされます。

しおり

しおりは、長いファイル内の移動に便利です。 コード エディタでは、つぎの 2 つの異なる種類のブックマークを使用することができます: オン/オフ切り替えブックマーク および スタック ブックマーク

オン/オフ切り替えブックマーク

コード内の任意の場所に、オン/オフ切り替えブックマークを付けて、ファイル内のどこからでもその場所にジャンプできます。

しおりを設定すると、本のアイコン(Bookmark iconが、コード エディタの左マージンに表示されます。 1 つのファイルで、0 番(Bookmark0.png)から 9 番(Bookmark9.png)までの 10 個のしおりを使用できます。

コード エディタのマージンでしおりアイコンをドラッグ アンド ドロップできます。移動先のしおりは、元のしおり番号が保持されます。

詳細については、「ブックマークの利用」を参照してください。

スタック ブックマーク

スタック ブックマークを使用すると、コードをナビゲートすることが可能になります。スタック ブックマークはコードの異なる場所にドロップすることで、その順番で積み重なるように追加されていきます。

スタック ブックマークを置くと、このアイコン Stack Bookmark がコードに表示され、そのスタック ブックマークの場所を示すようになります。

さらなる詳細については、「ブックマーク スタックの利用」を参照してください。

プロトタイプの同期

RAD Studio には、Delphi メソッド プロトタイプのインターフェイスと実装を同期させる、プロトタイプ同期機能があります。

プロトタイプ同期機能を使用できるのは Delphi の場合だけです。この機能では、メソッドの種類(関数、手続き、コンストラクタ、またはデストラクタ)、パラメータ、パラメータの型、パラメータの修飾子、関数の戻り値の型を同期することができます。関数名や関数の修飾子を同期することはできません。

メソッド プロトタイプを同期するには:

  1. メソッド プロトタイプのインターフェイスまたは実装に変更を加えます。
  2. プロトタイプ同期のショートカット Ctrl+Shift+Alt+P を押すか、コンテキスト メニューの[プロトタイプ同期]を選択します。
  3. RAD Studio により、必要な変更が行われ、プロトタイプが同期されます。

プロトタイプ同期機能によって、プロトタイプ メソッドのインターフェイスと実装の同期を保つことができます。

同期するメソッドが見つからなければ、「同期可能なメソッドが見つかりません」というメッセージが表示されます。

制限事項: 以下の制限事項に注意してください。

  • オーバーロードされたメソッドは同期できません。
  • メソッドのプロトタイプを同期させても、上位クラスまたは下位クラスのメソッドのプロトタイプは変更されません。

構造強調表示

構造強調表示

RAD Studio では、コードの構造(begin-end ブロックなど)を線で強調表示することができます。機能強化された RAD Studio の構造強調表示で構文を強調表示することで、コードや作業プロセスを整理された状態に保つことができます。

構造強調表示では、コード ブロックをグループ化し、該当するキーワードを識別します。構造強調表示では、交互に変わる 4 色を使用して、特定のブロックの深さを区別します。

構造強調表示の有効/無効の設定や、線の色の構成は、[構造強調表示]オプションのページで行うことができます。

StructuralHighlighting.png

フロー制御の強調表示

RAD Studio では、直線的な実行フローを妨げる手続きが使用されているコード内の箇所を強調表示できます。RAD Studio のフロー制御強調表示では、プロジェクトの直線的な実行が妨げられているコード行に対する注意を視覚的に喚起します。

そのためのアイコンは、コード エディタの左余白か、フローの変化をもたらす行の行末に表示することができます。

フロー制御強調表示の有効/無効の設定や、アイコンの位置の構成は、[構造強調表示]オプションのページで行うことができます。

FlowControlGutter.png

FlowControlEndLine.png

スマート キー

スマート ホーム キー

スマート ホーム キーのショートカットを使用して、カーソルを行の先頭とテキストの先頭に移動することができます。

コード エディタで Home キーを押すと、カーソルは、カーソルが置かれていた行の先頭に移動します。もう一度 Home キーを押すと、カーソルは、同じ行のテキストの先頭に移動します。繰り返し Home キーを押すと、カーソルの位置は、行の先頭とテキストの先頭の間で交互に切り替わります。

[ツール|オプション|ユーザー インターフェイス|エディタ設定オプション|キー マッピングにおいて、スマート ホーム キーを有効化または無効化できます。

スマート囲みキー

スマート囲みキー機能を使用すると、コードを "()" や "[]" や "{}" で囲む作業を簡単に行うことができます。

コードを "()"、"[]"、"{}" で囲むには、囲む対象のテキストをコード エディタで選択し、"("、"["、"{" のいずれかを押します。入力した文字に応じて、コード エディタで選択したテキストが "()"、"[]"、または "{}" で囲まれます。

[ツール|オプション|ユーザー インターフェイス|エディタ設定オプション|キー マッピングにおいて、スマート囲みキーを有効化または無効化できます。

選択範囲の拡張

選択範囲の拡張はキーボードのみで使用可能な機能で、これにより、カーソル位置の単語や識別子を選択し、その後、文や、行、ブロック、メソッドなどのより大きな構文グループに選択範囲を拡張することができます。

ショートカット Ctrl+W を押すと、カーソル位置の識別子が選択されます。ショートカット Ctrl+W を押し続けると、コード エディタは選択範囲を論理グループごとに展開して、現在の式、文、ブロックなどが選択されていきます。そして、メソッド全体、implementation セクション全体、最終的にはドキュメント全体が選択されます。

ブロック コメント

コード エディタ でコードを選択し、Ctrl+/(スラッシュ)を押せば、コード セクションをコメントアウトできます。選択したコードの各行の先頭には // が付けられ、コンパイラはこの行を無視します。コードの 1 行目の先頭に // が付いている場合は、Ctrl+/ を押すと、スラッシュが削除されます。Visual Studio または Visual Basic のキー マップを使用する場合は、Ctrl+K+C を使ってコメントのスラッシュを追加または削除します。

F1 ヘルプの使用

コード エディタにフォーカスがあるときに、F1 を押すとどうなるでしょうか?

  • インストール済みの CHM ヘルプ ファイルに説明が記述されている手続き、関数、定数、プロパティ、変数、フィールド、型、プログラム、ユニット、ライブラリ、またはパッケージの名前に対応する識別子にカーソルがあるときに F1 を押すと、その 識別子 についてのヘルプ トピックを開くよう IDE に指示が送られます。
    • インストール済みの CHM ヘルプ ファイルにその識別子についてのヘルプ トピックが 1 つだけ含まれる場合には、そのトピックが開きます。
    • 識別子 についてのトピックが複数のインストール済み CHM ヘルプ ファイルに含まれる場合には、IDE は、そのトピックを含む CHM ファイルを一覧表示したダイアログ ボックスを開きます。 選択した CHM ファイルに 識別子 についてのトピックが複数含まれる場合、IDE は識別子 についてのトピックをすべて一覧表示したダイアログ ボックスが開きます。 目的のものを選択します。 選択した CHM ファイルに、識別子を説明するトピックが 1 つだけの場合、IDE はこのヘルプ トピックを開きます。
メモ: identifiers についてのトピックが複数ある場合には、限定識別子を選択してより細かく identifiers を指定することができます。 限定識別子の構文は次のとおりです: identifier1.identifier2。 このとき、identifier1 は、identifier2 を限定しています。 たとえば、識別子 Clear を指定すると、IDE は、この識別子についてのトピックを何百と見つけてしまい、目的のトピックを選択することは難しくなります。 ただし、この限定識別子を TCollection.Clear として選択することができます。 その場合、F1 を押下すると、System.Classes.TCollection.Clear という唯一定義されているトピックが直接開きます。
  • カーソルが置かれた word (または token )が予約語指令C++ のキーワードであるときに F1 を押すと、この token についてのヘルプ トピックを開くよう、IDE に指示が送られます。
この token に複数のヘルプ トピックが関連付けられている場合には、token についてのトピックをすべて一覧表示したダイアログ ボックスが開きます。目的のトピックを選択してください。たとえば while という予約語にカーソルを置いて F1 を押すと、このプロンプト ダイアログ ボックスが表示されます。
  • それ以外のときに F1 を押すと、このコード エディタのヘルプ トピックが開きます。
メモ:
  • identifiersに関連するトピックは、提供されているライブラリについて記述した system.chmfmx.chmvcl.chmlibraries.chmcodeexamples.chmdata.chm の各ヘルプ ファイルの、インデックス タブに表示されます。 これら CHM ファイルのインデックス項目は、該当する Wiki から CHM ファイルを生成する際に、自動的に生成されます。 これらのインデックス項目は、Wiki トピックのタイトルで使用されている識別子と、トピック内で説明されているグローバル識別子から、生成されます。
  • 予約語指令C++ キーワードに対応する単語トークン)に関するトピックは、topics.chm ヘルプ ファイルのインデックス タブに表示されます。 これらのインデックス項目は、トピック「インデックス」に手動で記載されています。

構文の強調表示

この機能は、どの構文強調表示を現在のファイルに使用するかを、選択および表示するためのものです。 コード エディタ ステータス バーで、オプションは次のとおりです: [Delphi]、[C/C++]、[IDL]、[C#]、[SQL]、[HTML]、[スタイルシート]、[PHP]、[Java Script]、[INI ファイル]、[なし]。

エディタのフォント サイズのカスタマイズ

エディタのフォント サイズを、コード エディタのステータス バーから、水平スクロール バーを使用して設定することができます。

フォント サイズとして設定できる最小値は 6 ポイントで、最大値は 30 ポイントです。

ファイル エンコーディング

この機能は、どのファイル エンコーディングを現在のファイルに使用するかを、選択および表示するためのものです。コード エディタ ステータス バーで、オプションは次のとおりです:Text Form、Binary Form、Binary、Big Endian UCS-2、Little Endian UCS-2、Big Endian UCS-4、Little Endian UCS-4、UTF8、ANSI。デフォルトのファイル エンコーディングは、ANSI に設定されています。

関連項目