多数のソースファイルで構成されているプログラムを作成(あるいは閲覧)する際に、
ある特定の識別名(関数名、変数名、構造体名、マクロ名等)が使われている箇所を
全てリストアップするには、Grep が便利です。
しかし、その識別名が定義されているおおもとの箇所だけを対象として、
その箇所のソースファイルを即座に開きたい時には、「タグ検索ジャンプ」が
非常に便利です。
「タグ検索ジャンプ」を実行すると、現カーソル位置にある識別名が、
所定の「タグファイル」から検索されます。このタグファイルには、各識別名の
定義箇所の情報が格納されています。そこで、その情報が見つかれば、そのファイルの
編集ウィンドウが開いて、その定義箇所にカーソルが移動します。
このように、タグ検索ジャンプでは、必ず「タグファイル」が検索されます。
そのため、このファイルは、事前に作成しておく必要があります。
それには、「タグファイル作成」を実行します。この機能は、初期環境では、
メインメニューの「移動」内にあります。なお、タグファイルの作成に関する詳細は、
後述します。
「タグ検索ジャンプ」の実行は、初期環境では、
Ctrl+I キー
に割り当てられています。また、メインメニューの「移動」内にも配置されています。
タグ検索ジャンプの実行に関する詳細は、後述します。
なお、他のテキストエディタでは、「タグ検索ジャンプ」という用語ではなく、
単に「タグジャンプ」あるいは「ダイレクトタグジャンプ」等という用語が
使われています。しかし、本エディタとしては、このうちのどれを使うのも
若干違和感があるので、独自の用語を使っています。
タグファイルの作成には、ctags.exe という外部プログラムを利用させて頂いています。
このプログラムは、非常に優秀で、C/C++ 言語だけでなく、様々なプログラミング言語にも
対応しています。また、単に、関数だけでなく、変数、クラスとそのメンバー、さらに、
マクロ等をも扱えます。
ctags.exe の詳しい情報は、以下のサイトをご覧ください。
http://hp.vector.co.jp/authors/VA025040/ctags/
タグファイルの作成は、勿論、ctags.exe を直接実行することによって行なえますが、
ctags.exe には、豊富なオプションがあり、それに柔軟に対応するには、スクリプトを
介する方が得策です。
現状では、そのオプションをまだ十分には使いこなしていませんが、
CtagMake.mc という MikoScript を介して、ctags.exe を起動するようになっています。
なお、このスクリプトでは、ctags.exe が、
本エディタのツールフォルダ内に入っていることを
前提にしています。(初期環境で、インストールされています。)
また、このスクリプトでは、C/C++ 言語の関数、クラス、マクロ、広域変数等を
対象にしています。
これを変更するには、このスクリプトのソースを書き換える必要があります。
簡単な変更なら、このソース内のコメントの有効/無効を切り換えるだけでできます。
ctags.exe が生成するタグファイルは、通常、"tags" という名前になっています。
このファイルには、各識別名と、それが定義されているファイルの名前と行の情報が、
対になって格納されています。行の情報としては、行番号、または、行内容(その行にある
文字列)のどちらかになります。行番号の場合、タグファイルのサイズが小さて済みますが、
もとのファイルが変更された時に、ジャンプ先がズレてしまう欠点があります。
CtagMake.mc では、現状、行内容の方を採用しています。
タグ検索ジャンプの実行は、CTagFind.mc という MikoScript で行ないます。
このスクリプトは、"tags" ファイル(上記参照)を、まず、現編集ファイルのフォルダ内で
検索します。もし、そこになければ、次のようにします。