EMACSで熱狂的なCTAGを使用しながら、Verilog言語のヘッダーファイルを指定して使用する方法

StackOverflow https://stackoverflow.com/questions/9340000

質問

私は最近、Verilog&System Verilogコーディングとコードブラウジングに熱狂的なCTAGとEMACSの使用を開始しました。現在、コマンドを使用してタグを生成します

ctags -e -R --tag-relative=yes --langmap=verilog:.v.vh.sv.svh 

私のコードには、多くの「マクロを定義するマクロ」がすべて拡張機能「.vh」& ".svh"を使用して特定のヘッダーファイルで指定されています。たとえば、名前付きヘッダーファイル foo.vh 次のコードがあります

`define WIDTH_ADDRESS 32;

とファイル top.v 次のようにマクロを呼び出します

input [`WIDTH_ADDRESS - 1 : 0] InAddress;

閲覧中 top.v emacsを使用してファイルを使用して、マクロ定義に直接ジャンプする方法はありますか foo.vh ファイル?

私は使用しています M-x tags-search <RET> WIDTH_ADDRESS <RET> しばらくの間、foo.vhファイルに到達する前に、他のファイルの `width_addressの他のかなりの数のインスタンスにジャンプします。

いくつかの調査の後、私はヘッダーファイルを使用して指定するオプションを見ました -h タグ生成中のCTAGを使用したオプション。しかし、私はそれを動作させることができず、私の部分からいくつかの構文的なエラーがあったと思います。

まず第一に、ヘッダーファイルを使用して指定することの顕著な利点はありますか -h オプション?もしそうなら、ヘッダーファイルを指定するための正しい構文は何ですか?また、他のファイルを解析する前に、これらのヘッダーファイルを最初に調べるためにこれらのヘッダーファイル(拡張機能 ".VH"& "。SVH")を調べるEMACSを指定できますか(拡張機能 ".V"& ".sv")

役に立ちましたか?

解決

-hオプションの構文はです -h .vh.svh

CTAGが「width_addressマクロの呼び出しを選択している理由がわかりません。 width_addressが「複数回定義されている」場合、すべての定義をピックアップする必要はありませんが、呼び出しではありません。たぶんそれはVerilogプラグインの問題です。いつでもタグファイルを編集し、不要なエントリを削除できます。これは、SEDまたはPERLスクリプトで簡単にできるはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top