2012-06-10 13 views
25

Exuberant Ctags .ctagsファイルにコメントを入力するのにどのような文字を使用できますか?Exuberant Ctags設定ファイルにコメントを追加するには?

私は説明付きのコメントを追加したいと思いますが、おそらく一部の正規表現を無効にしたいと思います。

しかし、私はctags-exuberantが受け付けるコメント文字は見つかりません!
私は警告得続ける:

ctags: Warning: Ignoring non-option in /home/joey/.ctags 

エラーよりも良いですが、まだ少しうるさいです。

私は#///* ... */;をコメントとして試しましたが、ctagsはそれらをすべて解析しようとしています。ここで

はctagsのは、文句を言うだろういくつかのコメントを持つファイルの例です:

# Add some more rules for Javascript 
--langmap=javascript:+.jpp 
--regex-javascript=/^[ \t]*var ([a-zA-Z_$][0-9a-zA-Z_$]*).*$/\1/v,variable/ 
--regex-javascript=/^[ \t]*this\.([a-zA-Z_$][0-9a-zA-Z_$]*)[ \t]*=.*$/\1/e,export/ 
--regex-javascript=/^[ \t]*([a-zA-Z_$][0-9a-zA-Z_$]*):.*$/\1/p,property/ 
--regex-javascript=/^\<function\>[ \t]*([a-zA-Z_$][0-9a-zA-Z_$]*)/\1/f,function/ 

# Define tags for the Coffeescript language 
--langdef=coffee 
--langmap=coffee:.coffee 
--regex-coffee=/^class @?([a-zA-Z_$][0-9a-zA-Z_$]*)(extends [a-zA-Z_$][0-9a-zA-Z_$]*)?$/\1/c,class/ 
--regex-coffee=/^[ \t]*(@|this\.)([a-zA-Z_$][0-9a-zA-Z_$]*).*$/\2/e,export/ 
--regex-coffee=/^[ \t]*@?([a-zA-Z_$][0-9a-zA-Z_$]*):.*[-=]>.*$/\1/f,function/ 
--regex-coffee=/^[ \t]*([a-zA-Z_$][0-9a-zA-Z_$]*)[ \t]+=.*[-=]>.*$/\1/f,function/ 
--regex-coffee=/^[ \t]*([a-zA-Z_$][0-9a-zA-Z_$]*)[ \t]+=[^->\n]*$/\1/v,variable/ 
--regex-coffee=/^[ \t]*@?([a-zA-Z_$][0-9a-zA-Z_$]*):.*$/\1/p,property/ 

答えて

3

@joeytwiddleが指摘するように、コメントはパーサーによってサポートされていませんが、回避策があります。

.ctagsファイル:

--regex-C=/$x/x/x/e/ The ctags parser currently doesn't support comments 
--regex-C=/$x/x/x/e/ This is a work-around which works with '/' characters 
--regex-C=/$x/x/x/e/ http://stackoverflow.com/questions/10973224/how-to-add-comments-to-an-exuberant-ctags-config-file 
--regex-C=/$x/x/x/e/ 
--regex-C=/$x/x/x/e/ You can add whatever comment text you want here. 
30

あなたがすることはできません!私はソースコードを調べました(apt-getソースのおかげで)。無視する行のチェックはありません。関連するコードはoptions.cのparseFileOptions()にあります。

しかし、時にはコメントが必要であるため、回避策として、何かにマッチする可能性のないような形で正規表現としてコメントを入れます。 ()ラッパーが視覚効果のために純粋である一方で

--regex-coffee=/^(COMMENT: Disable next line when using prop tag)/\1/X,XXX/ 

^は、すぐに失敗する試合をするのに役立ちます。

あなたのコメントはstderrの警告を避けるために有効なregexpでなければなりません。 (つまり、エスケープされていない/は避けなければならず、[](または)のペアを使用する必要があります)。これらの制限を回避するには、Tomの解決策を参照してください。

+3

+1ソースコードを見る。ハックなソリューションはかなり醜いですが、私はむしろ警告で暮らしたいと思います。 –

+3

FWIW:これは既知の問題です:http://sourceforge.net/p/ctags/bugs/352/ – jwfearn

+0

開発チームのコメントのサポートを提案できますか? – nowox

0

コメントは動作しないことを考えると、あなたが実際にコメントを必要としないものをほとんどのものについては

... .ctags.readmeファイルについては、例えばあなたは本当に以下のコメントを必要としません。

# Define tags for the Coffeescript language 
--langdef=coffee 
--langmap=coffee:.coffee 

私はあなたがマークダウンファイルとして.ctags.readmeファイルに貼り付けコピーすることができます絶対にそれを必要とする各ラインのようあなたは、正規表現を曲げ、いくつかの心を説明するコメントを追加したいかもしれないことがわかります。

Forgive me father for I have regexed 
It was purely because I wanted some lovely coffee properties 
``` 
--regex-coffee=/^[ \t]*@?([a-zA-Z_$][0-9a-zA-Z_$]*):.*$/\1/p,property/ 
``` 

ctagsファイルの一番下に改行を区切って区切っておき、この最後のブロックを削除することができます。

あなたはこれだけのsedあなた.ctagsファイル内の1つの改行を持っている場合.ctags.ctags.readmeからの行を追加するためにいくつかの簡単なgrepをしませんそして、改行

sed -i '/^\s*$/,$d' .ctags 

後にすべての行を削除します。

grep --regex .ctags.readme >> .ctags 
1

あなたはユニバーサル・CTAG(https://ctags.io)を使用している場合は、コメントの開始として「#」を使用することができます。

関連する問題