問題タブ [emacs-semantic]
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.
emacs - C++ プロジェクトでプロトタイプと実装を切り替えることができない
関数のプロトと実装を切り替えるために使用semantic-analyze-proto-impl-toggle
しましたが、この機能を使用すると、対応する実装が見つからないということ以外は何もしません。名前補完などの他の機能は問題ありません。誰か助けてくれますかこの問題?そして、セマンティックが現在のバッファーとインクルード パス内のヘッダー ファイルのみを解析し、他の実装ファイルを解析しないかどうかを知りたいと思っています。関数の実装を見つけようとするときに、セマンティックがプロジェクト内のすべてのファイルを解析するかどうかを意味します。
java - EmacsのCEDETに外部タグファイルを追加する方法
CEDET を使用して Emacs でオートコンプリートを取得しようとしましたが、C/C++ では問題なく動作します。しかし、JDEE の助けなしに Java で CEDET を使用する方法については何も見つけることができません。JDEE は時代遅れであり、CEDET 1.1 と互換性がないと考えられています。ここにあるユーティリティを使用してタグファイルを取得しましたが、それを CEDET システムに統合する方法がわかりません。CEDET の Web サイトによると、それは可能です。しかし、彼らはそれを行う方法を説明していません。この質問に答えてくれる人はいますか?
そのユーティリティによって生成されたタグ ファイルのサンプルを次に示します。
emacs - Semantic-complete-jump-local は Emacs で "No Match" を返します
CEDET 1.1 で Emacs 23.3.1 を実行しています。コマンドは正常に動作している間semantic-complete-jump-local
は常に戻ります。"No Match"
semantic-complete-jump
を調べましたsemantic-complete.el
が、elisp に関する私の知識は、何が起こっているのかを理解するのに十分ではありません...
c++ - 奇妙なセマンティックエラー
新しいLinuxホストにemacs24.2.50を再インストールし、 magnarsemacs構成に基づいて新しいdotEmacs構成を開始しました。以前のワークフローでCEDETを使用してある程度の成功を収めたので、CEDETの構成を開始しました。ただし、C++ソースファイルをロードするたびに奇妙な動作が発生します。
[この部分は解決されました]
予想どおり、セマンティックはすべてのインクルードファイルを解析します(初期セットアップ中にセマンティック追加システムインクルード変数で指定されたすべてのファイルを解析します)が、次のようなエラーメッセージが出力 されます。
WARNING: semantic-find-file-noselect called for /usr/include/c++/4.7/vector while in set-auto-mode for /usr/include/c++/4.7/vector. You should call the responsible function into 'mode-local-init-hook'.
上記の例では、エラーはSTLベクトルに対して出力されますが、対応するエラーメッセージは、アクセスしているファイルおよび後続のインクルードに含まれるすべてのファイルに対して出力されます。その結果、終了するのにかなり長い時間がかかり、残念ながら、新しいバッファを開くタイプがあれば、このプロセスが繰り返されます。
[この問題も解決
されました]さらに、タイプの定義を次のようなエラーメッセージをモデレートします
Idle Service Error semantic-idle-local-symbol-highlight-idle-function: "#<buffer DEPFETResolutionAnalysis.cc> - Wrong type argument: stringp, (((0) \"IndexMap\"))"
Idle Service Error semantic-idle-summary-idle-function: "#<buffer DEPFETResolutionAnalysis.cc> - Wrong type argument: stringp, ((\"fXBetween\" 0 nil nil))"
ここで、DEPFETResolutionAnalysis.ccは現在編集中のファイルとバッファーであり、IndexMapとfXBetweenは、編集中のファイルに含まれるファイル/編集中のファイルに含まれるファイルで定義されるタイプです。
問題はかなり厄介なので、CEDET/セマンティックのこれ以上の機能はテストしていません。私のセデット設定はここにあります。
編集:アレックスオットの助けを借りて、私はちょっと最初の問題を解決しました。それは私の恐ろしいセデットの初期化によるものでした。CEDETを構成する適切な方法については、彼の最初の回答を参照してください。(有効にすると、ポイントで型の定義をチェックするときだけでなく、永続的に発生します)
にはまだ問題が残っています。
そして、サイトごとの初期化ファイルを無効にする方法の新しい問題があります。 Idle Service Error
global-semantic-idle-local-symbol-highlight-mode
EDIT2:semantic-debug-idle-function
問題が発生したバッファで実行しましたが、約700kb [sic!]の出力が生成されます。データコンテナに対していくつかの操作を実行しているように見えます。データコンテナの外観からは、解析されたファイルで定義されているすべてのシンボルに関する情報が含まれています。かなり大きなパッケージ(〜20Mbのソースファイル)を解析したので、このテーブルはかなり大きいです。セマンティックはこれほど大きなデータベースを処理できますか、それともこれは不可能であり、私の問題の理由ですか?
EDIT3:すべてのインクルードのコンテンツを削除して再解析することでうまくいきまし~/.semanticdb
た。サイトごとのinitファイルを無効にする必要がありますが、これはCEDETに関連していないため、この質問を閉じます(サイトごとのinitファイルに関連する質問はここにあります)。
emacs - 特定の種類のファイルのセマンティックを無効にする方法
.htmlなどの混合タイプのプログラミング言語を含むファイルの場合、セマンティックはコードの分析に問題があります。これらのタイプのファイルのセマンティックによる自動分析を具体的に無効にする方法はありますか?
私はEmacs24に付属している組み込みのセデットを使用しています:
emacs - emacs cedet (セマンティック) ハイフネーション関数の装飾を削除する方法
この投稿のおかげで、インライン解析で醜い下線のセマンティック利用の一部を削除することができましたが、実際に削除したい各関数呼び出し (および場合によっては他の場所) にまだハイフンが表示されています。これどうやってするの?http://www.gnu.org/software/emacs/manual/html_mono/semantic.html#Tag-Decoration-Modeも調べました。
参考画像:
emacs - セマンティックを使用した対話型関数とデフォルト パラメーターの呼び出しを使用した emacs でのキーマッピング
セマンティックで。関数宣言を移動するにはC-c , J
、宣言を開くために使用できC-u C-SPC
、関数が呼び出された場所に戻るだけです。ただし、これらの機能をそのような他の短いキーバインドM-right
(右矢印と組み合わせた alt キーを意味します) にマップするには、.emacsで次のようにします。
(define-key global-map [(M-right)] 'semantic-complete-jump)。
これは、セマンティック コンプリート ジャンプC-c , J
関数を呼び出すようにマップされているため、実際に機能します。
2つの質問:
M-left を にマップする方法は
C-u C-SPC
? これはコマンドの一部でC-u
はないことに注意してください。これは、呼び出された関数に渡される単なる引数です。インタラクティブでなく、デフォルトで常にデフォルト値を使用せずにセマンティック完全ジャンプを呼び出す方法はありますか(主にカーソルがある場所の下の単語です)。
C-c , J
これにより、1 つの追加のキーストロークがコード内でより高速に移動することを回避できます。
これはM-.
( find-tagにマップされた) およびM-*
( pop-tag-mark にマップされた) emacs でタグと etag をいじることで可能ですが、セマンティックを使用すると、はるかに強力で、大量の大きなプロジェクトに理想的です。コード。
s̲o̲ ̲t̲h̲e̲ ̲p̲r̲ M-right
e̲v̲i̲o̲u̲sM-left
emacs - cscope でセマンティックを設定する
開発環境として emacs を使用して少し実験を始めていますが、少し問題が発生しています。コードベースを検索するためのかなり堅牢な方法として、セマンティックで cscope を使用したいと考えています。しかし、cscope を (で) インストールして myにapt-get install cscope
移動した後も、.emacs ファイルでいくつかの設定を呼び出すのにまだ問題があります。を呼び出そうとすると、シンボルの関数定義が無効であるというエラーが表示されます。私はemacs 24.3を使用していますxscope.el
~/.emacs.d/
(semanticdb-enable-cscope-databases)