問題タブ [ctags]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - クラスが「class Gem::SystemExitException」のように定義されている場合、ctags が機能しない
このような名前空間でクラスを定義できます
また
コードがクラス定義の最初のメソッドを使用する場合、ctags は次のようにクラス定義にインデックスを付けます。
2 番目の方法では、ctags は次のようにインデックスを付けます。
2 番目の方法の問題は、(vim で) カーソルを "Gem::SystemExitException" への参照の上に置くことができず、クラス定義に直接ジャンプできないことです。唯一の手段は、"Gem::" で始まるすべての (110!) クラス定義のページをめくって、探しているものを見つけることです。
誰かが回避策を知っていますか? これを ctags の管理者に報告する必要がありますか?
ctags - ctagsは-eオプションを理解していません(あふれんばかりのタグオプションはありません)
入力するctags -e
と、そのコマンドラインオプションがわからないというエラーが返されます。etags
cliで動作するので、あふれんばかりのタグについて知っておくべきだと思いました。
また、次のエラーが表示ctags: unrecognized option --langdef=arc
されます。〜/.ctagsファイルに次のエラーがあります。
cygwin - ctags が Cygwin で再帰しない理由は何ですか?
を実行するたびに「XXX をスキップしています: 通常のファイルではありません」というメッセージが表示されますctags -R XXX
。何らかの理由で、Cygwin の ctags はディレクトリを再帰しません。きっと、バカなことをしているに違いない。
プロジェクトルートで事実上の標準を試すたびにctags -R
、入力ファイルを指定しなかったと不平を言います。ディレクトリを指定すると、ファイルだと思っているようです。
私は少し困惑しています。先週、新しい Cygwin ビルドをゼロからインストールしました。私はすべてをインストールしました。私はCygwinをめったに使用しません。ctags は、私のすべての BSD、Linux、Mac、および Solaris ボックスで完全に動作します。
Perforce の読み取り専用アクセス許可が原因ではないかと考えましたが、chmod 777
何も変わりません。
何か案は?ソースから再コンパイルする必要がありますか?
java - 動的に呼び出されるメソッドの呼び出し階層の生成
今日の動的呼び出し、リフレクション、ランタイムインジェクションの世界は、ctags、doxygen、CDOCなどの従来のツールではうまく機能しません。
静的メソッド呼び出しと動的メソッド呼び出しの両方を表示できるメソッド呼び出し階層視覚化ツールを探しています。使いやすく、実行中に軽量で、記録されたランタイムセッションに関する役立つ詳細情報を提供する必要があります。
さて、 CallgrindはファミリーCの有効なソリューションと見なすことができると思います。
JVMベースのバイトコードの静的メソッド呼び出しと動的メソッド呼び出しの両方のコールグラフを作成するために、どのツール/手法を提案できますか?意図した最終結果は、main()から呼び出された各メソッドへのパスを示すことができるグラフィカル表示(できればインタラクティブ)です。
この投稿の調査中にjavashotに出くわしましたが、これは私が目指している種類のアプローチのようです。これを、IDE内から使用できるプロファイラーなどに統合することをお勧めします( Eclipse、IntelliJ、Netbeansなど)。
ありがとう、マキシム。
emacs - Emacs : タグファイルに問題がありますか?
cygwin を使用して、ctags を使用して、Emacs がシンボルを読み取るためのタグを作成しています。
Emacs が「visit-tags-table-buffer: ファイル /home/superman/tags は有効なタグ テーブルではありません」と言う
ファイルを検索してタグを生成するためのオプションは次のとおりです。
c++ - C/C++ 標準ライブラリ、ブースト、およびサードパーティ ライブラリ用に個別の ctags db を設定する
OmniCppComplete/usr/include/
で使用するために、さまざまなライブラリ用に個別の ctags データベースをセットアップしたいと考えています。
アイデアは、ターゲット言語 (C または C++) の特定のプロジェクトに必要なライブラリのみを取り込めるようにすることです。
たとえば、標準 C ライブラリ用のデータベースを 1 つ、C または C++ プログラム (ソケット/ネットワークが思い浮かびます) で使用されるシステム ライブラリ用に 1 つ、標準 C++ ライブラリ/STL/Boost 用に 1 つ、次に、QT や glib などのさまざまなサードパーティ ライブラリの他のデータベース。set tags+= ~/.vim/somelib.tags
次に、vimと入力するだけで何かを取り込むことができました。
/usr/include/c++
C++ stdlib と STL に関連するすべてが にあり、Boost がすべて にあると仮定します/usr/include/boost
。/usr/include/
残念ながら、標準の C ライブラリとシステム ライブラリは、他のさまざまなものと一緒に直接ダンプされているようです。
どのファイルとディレクトリがどのライブラリに属しているかのリストを取得するにはどうすればよいですか? 私はUbuntu 8.04を使用しています。
c++ - Boost 用の合理的な ctags データベースの生成
Ubuntu 8.04 を実行しており、次のコマンドを実行しました。
OmniCppComplete vim スクリプトで使用するために、私のシステムで標準 C++ ライブラリと STL ( libstdc++ ) の ctags データベースを生成します。これにより、非常に適切に機能する 4MB のタグ ファイルが得られました。
ただし、インストールされている Boost ヘッダーに対して同じコマンドを実行すると、次のようになります。
最終的に 1.4 GB のタグ ファイルになりました。 まだ試していませんが、大きすぎて役に立たないようです。インストールした Boost ヘッダー用のよりスリムで使いやすいタグ ファイルを取得する方法はありますか?
編集
注意として、libstdc++ には TR1 が含まれており、Boost ライブラリが割り当てられています。したがって、libstdc++ が 4 MB のタグ ファイルを生成し、Boost が 1.4 GB のタグ ファイルを生成するには、何か奇妙なことが起こっているに違いありません。
Boostメーリングリストでこれに出くわしました:
答え
問題の原因を突き止めてくれた Neg_EV に感謝しますが、彼が提案したよりもはるかに優れた問題解決方法があります。
apt-file がインストールされていることを確認し、次のコマンドを実行します
(ライブラリタグを ~/.vim/tags/ に保持します):
Ubuntu 10.04 と Boost 1.40 にアップグレードしました。これでこのソリューションをテストしましたが、私が知る限り、どの Boost バージョンでも動作するはずです。
c++ - Vim + OmniCppComplete: STL コンテナーであるクラス メンバーの補完
STL コンテナーであるクラス メンバーの完了が失敗しています。
STL コンテナーであるローカル オブジェクトの補完は正常に機能します。
たとえば、次のファイルがあるとします。
以下を使用して、これら 2 つのファイルのタグを生成しました。
temp.
cpp を入力するとstring
、期待どおりにメンバー関数のリストが表示されます。しかし、str.
omnicppcomplete と入力すると、「パターンが見つかりません」というメッセージが表示されます。
宣言temp.
がある場合にのみ補完が機能することに気付きました。using std::string;
STL コンテナーであるクラス メンバーで動作するようにするにはどうすればよいですか?
編集
ヘッダーに次の変更を加えると、STL コンテナーであるメンバーの補完が機能することがわかりました。
基本的に、名前空間修飾子を追加してメンバーからusing std::string;
削除し、タグ ファイルを再生成すると、OmniCppComplete は で補完を行うことができます。std::
string str;
str.
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
に設定したかどうかは問題ではないようです.vimrc
。
問題はusing
、ヘッダー ファイルに宣言を配置することは大したことではないように思えることです。そのため、振り出しに戻ります。
emacs - emacs マクロが cscope クエリの結果を待つようにするにはどうすればよいですか?
バッファに表示されたファイル(コマンドによって作成された)cscope-find-functions-calling-this-function
のすべてのタグを呼び出すマクロを作成しようとしています。これにより、特定のファイルで定義された一連の関数を呼び出すすべての関数のリストを含むバッファーが作成されます。*Tags List*
list-tags
タグ リストバッファの最初のタグの先頭にポイントを配置し、次のキーボード マクロを実行してこれを行います。これは、キーボード マクロでのキーストロークのシーケンスです。
問題: バッファに結果が得られません。これは、cscope がステップ 1 から 2 で行われたクエリの結果を出力する前に、ステップ 3 から 7 が実行されることが原因であることがわかりました。
Cx q を使用してマクロに一時停止を挿入することはできますが、ステップ 2 の後、cscope が結果を返すまでマクロを待機させてから、さらに自動的に続行したいと考えています。これはマクロ、おそらくLISP関数では不可能だと思います...私自身はLispの専門家ではありません。誰か助けてくれませんか?ありがとう!
詳細:
- つららがインストールされているので、デフォルトでは、現在のバッファーのポイントにある単語をミニバッファーの入力として取得します。
- F11はにバインドされています
cscope-find-functions-calling-this-function
- windmoveがインストールされ、Cx <right> (Cx ESC o - 以下に示すように) を実行すると、右側のウィンドウに移動します。
- F7 は
次の
append-results-to-buffer
ように定義されています。
この関数は、現在マークされているリージョンを「c1」という名前のバッファに追加するだけです。
objective-c - Objective-c を使用した Ctags/Cscope の代替案は?
Objective-c をサポートする ctags と cscope に代わるものはありますか。これはココアの開発に関連しているので、必然的に Xcode を使用することになるでしょう (そして、おそらく Xcode を使用する必要があります)。私のVimオプションは何だろうと思っていました。
eclim のようなプラグイン システムがあるかもしれませんが、xcode の場合はどうでしょうか。
編集
Objective-C をサポートするために ctags を更新する以外に、私は運が悪いようです。cscopeが同じかどうかは誰にもわかりますか?