2017-07-07 5 views
0

私はexuberant-ctagsを使用して私のdjangoプロジェクトのタグを生成しています。多くの場所で、私は関数とクラスをキーワード引数を使って呼び出しています。pyuキーワードの引数を無視するようにexuberant-ctagsを設定するにはどうしたらいいですか?

$ cat models.py 
from django.db import models 

class Foo(models.Model): 

    bar = models.CharField(
     help_text='The very important "bar" field', 
     unique=True, 
     max_length=100, 
    ) 

しかし、ctagがこれらのファイルを解析するとき、キーワード引数は変数宣言として分類されます。これにより、多数の偽のタグを含むタグファイルが汚染されます。

$ ctags -x models.py 
Foo    class   3 models.py  class Foo(models.Model): 
bar    variable  5 models.py  bar = models.CharField(
help_text  variable  6 models.py  help_text='The very important "bar" field', 
max_length  variable  8 models.py  max_length=100, 
unique   variable  7 models.py  unique=True, 

私はctags docsを読んだことがありますが、明らかに適切と思われるものは見つかりませんでした。

私は使用できるタグにいくつかの組み込み機能がありますか?または、私は間違った一致を除外するためにawkのようなものを通してタグファイルをパイプする必要がありますか?

答えて

1

それは、このPRごとに、ctags端のバグのように思える:https://github.com/universal-ctags/ctags/pull/767

確認のctagsを作る修正が今マージされているので、最新のものです。

プルリクエストは複数行のkwargs宣言に関係しているので、それらをすべて同じ行に置くと問題が解決されると思うかもしれません(ただし、コードはPEP8の推奨事項を破る可能性が高いでしょう)。

+0

ありがとうございました。私は普遍的なctagsを見てきましたが、私はまだそれに切り替わっていません。なぜなら、溢れているctagsよりももっと滲むように見えるので、私はそれを自分で構築しなければならないでしょう。私はこれに簡単な解決策がないか再検討しなければならないかもしれません。 –

+1

あなたはそれらをすべて1行に入れることによって問題を防ぐことができるはずですが、これはおそらくあなたのリンターを非常に不幸にします –

+0

それは私のコードを読んで維持するのが難しくなります。それだけの価値はありません。私は生成された 'tags'ファイルの後ろの'、 '文字との一致を取り除くことを検討しています。しかし、それはかなりハッキーであり、100%正しいものではありません。 –

関連する問題