emacsには、別のファイルで定義されていても、ユーザーが関数宣言にアクセスできる関数またはライブラリがありますか?
もしそうなら、どの言語がサポートされていますか?
この質問のインスピレーションは、emacsがIDEと競合できない理由のいくつかを説明する以下の記事から来ています。
http://henrikwarne.com/2012/06/17/programmer-productivity-emacs-versus-intellij-idea/
emacsには、別のファイルで定義されていても、ユーザーが関数宣言にアクセスできる関数またはライブラリがありますか?
もしそうなら、どの言語がサポートされていますか?
この質問のインスピレーションは、emacsがIDEと競合できない理由のいくつかを説明する以下の記事から来ています。
http://henrikwarne.com/2012/06/17/programmer-productivity-emacs-versus-intellij-idea/
回答:
Linuxカーネルソースツリー(36k以上)のプロジェクト全体の定義/参照に瞬時にジャンプできます。詳細については、C / C ++ガイドを参照してください。C / C ++の場合、C、C ++、Yacc、Java、PHP4、およびアセンブリをサポートするGNUグローバルを使用することをお勧めします。
重要なのは、ある言語のIDE機能が必要な場合は、その言語のプラグインをインストールする必要があるということです。以下は、私が知っている動的言語のパッケージです。
js2-mode
については、説明を参照してください。本質的にjs2-mode
は、適切なIDE機能を実行するためにASTを生成する完全なJavaScriptパーサーです。インストールする場合skewer-mode
、あなたが持っているだろうよりもjs2-mode
あるため、デフォルトではskewer-mode
それに依存します。
- メソッド定義にジャンプ
- スーパーまたはポイントで呼び出されたコンストラクターにジャンプします
- モジュールまたはクラスにジャンプします(少なくとも1つのメソッドが定義されている場合)
- メソッド文書の表示
- ElDocを使用してポイントで呼び出されたメソッドに関する情報を表示する
- メソッドと定数名の補完
またctags
、シェルスクリプトやTclなどの非常に多くの言語をサポートするために使用できます。
emacsで同様の問題に遭遇したため、Dumb Jumpを作成しました。受け入れられた回答に記載されている解決策の多くを試しましたが、次の問題の1つ以上に常に遭遇しました。
「うまくいった」ソリューションを望んでいましたが、カスタマイズやセットアップは必要ありませんでした。つまり、ランダムなレポジトリをGithubで複製し、他のプロジェクトと同じようにナビゲートしたかったのです。
現在、Dumb Jumpの基本的なサポートは次のとおりです。
それはだMELPAを介して利用可能とGitHubの問題とPRSは歓迎以上です。
emacsでのこれに対する主な解決策は、TAGSファイルを使用することです。このファイルは、etagsやgtagsなどのプログラムによって作成されます。私自身は、熱心なctagsとetags-select.elを使用(および推奨)して、検索シンボルが複数の宛先にある場合に宛先を絞り込むのに役立ちます。サポートされる言語は非常に多く、個々のツールのマニュアルを参照してください。独自の言語の追加もサポートされているため、関心のあるタグを分離する方法をctagsに指示する正規表現を提供できます。
ctags -e -R *
ルートディレクトリからそれを設定します。
irony-clang
この目的を確認してください。記事に関するコメントを読みましたか?