2012-04-07 5 views
13

私はハスケルに相当するctagsを探しています。私はHaskellプロジェクト用のタグを生成するには?

E431: Format error in tags file "tags" 
Before byte 4085 
E426: tag not found: enumFile 

:与えenumeratorのソースフォルダで

hasktags .を実行します:

hasktags: tags: openFile: resource busy (file is locked) 

そして、私はvim -t enumFileを実行すると、エラーが発生した私はhasktagsを試してみましたが、それはいくつかの問題を持っていますまたgasbagを試しましたが、ghc-7.0.4ではコンパイルされません。

答えて

8

hasktagsにはいくつかのバグがありますが、そのうちの1つはレイジーIOを使用しているため、リソースがビジー状態になる傾向があります。

それは偶然にも、私は他のオプションは、派手なIDEのようなVimのtagbarと統合するように設計された資格Module.functionタグを作るhothasktags、およびlushtags、あるhttp://hackage.haskell.org/package/fast-tags

で、タグのプログラムを書きました何か私の経験では、hothaskタグは巨大なタグファイルを生成し、ファイルを解析できないとすぐにlushtagsがクラッシュします。両方ともhaskell-src-extsを使用します。これは正確であることを意味しますが、ファイルを解析できない場合にクラッシュし、.hscファイルを処理できません。 fast-tagsには独自のパーサーがあります。つまり、そのような問題はありませんが、タグを見つけられなかったり、偽のタグを付けるバグを解析したりする可能性も高くなります。 、TAGSであなたがEmacsのタグを意味する場合、高速タグがそれらのを行いませんが、まだ:あなたが気づいたよう

は、ガスバッグ(およびhtags)は、彼らが唯一の免責

ハスケル98上で動作する意味ハスケル-SRCを使用します誰かが気にしていれば追加するのは簡単でしょう。

+0

すごい、高速タグは本当に速く、働いています!ありがとう – fqsxr

13

Mac OS X(またはWindows、下記参照)を使用していますか? その場合、hasktags -c(Vi形式タグのみを作成する)で問題を解決できます。

説明のみではないのですが、ここではOS Xシステム上で何が起こるかです:

  • デフォルトでは、hasktagsあなたはviとEmacsのために両方のタグを望んで想定しています。
  • したがって、
  • (Emacs用)tags(VI用)とTAGS両方を作成しようとするが、OS Xは、Unixのとは異なり、既定のケースによって影響を受けません。したがって、両方のファイルを持つことはできません。
  • 他のファイルを上書きするのではなく、何らかの理由でhasktagsが競合します。これはおそらく、「other」を閉じる前に1つのファイルを開くためです。 Evan Laforgeが説明したように、怠惰なI/Oのおかげでそれが期待されます。

更新:コメントで指摘したように、Windowsはまた、小文字を区別しないので、同様の問題が生じる可能性がある場合です。

+1

私の経験によれば、大文字と小文字の区別を伴わないこの説明はMS Windowsでも当てはまります。私はEmacsを使用していますので、-eを使用します。これはうまく動作します。ただし、オプションを省略するとエラーが発生します。これはhasktags-0.68.2の時点です。他の答えが示唆しているように、怠惰なIOやバグの問題のようには見えません。 – tinlyx

+0

@TingL:なぜ私は遅延メッセージがその特定のエラーメッセージ( "リソースが忙しい"さもなければエラーと1つの 'tags'ファイル(後で作成されたもの)が得られません。これは1つのエディタでのみ動作し、他のエディタでは動作しません。 – Blaisorblade

関連する問題