6

私は自分の emacs c/c++ 開発セットアップで cedet とセマンティックを試してきましたが、1 つの細かい点を除けば非常に満足しています。

ede-cpp-root-projectはプロジェクトを作成し、プロジェクトのルート ディレクトリと、以下のようにインクルード ファイルが存在するディレクトリを指定します。

(ede-cpp-root-project "My Project"
                :name "My Project"
                :file "/path/to/rootdir/AFILE"
                :include-path '( 
                "/include2"
                "/include1"
                               )

                )

これにより、関数の宣言に簡単にジャンプできますがsemantic-ia-fast-jump、それらの関数の定義には到達しません。そのため、ヘッダー ファイルのみを処理しているようで、ソース ファイルは完全に無視されます。関数とトリガーの宣言を続けてもsemantic-analyze-proto-impl-toggle、適切な実装が見つからないことがわかります。

関数の実装が配置されているソース ファイルを手動で開くと、セマンティックによって解析され、上記のすべての関数が機能します。

私の質問は、プロジェクトのルート ディレクトリの下に含まれるすべてのソース ファイルを手動で開くかede-cpp-root-project、引数を介して手動でそれらを含める:spp-files以外に、ディレクトリの下にあるすべてのソース ファイルの解析を強制する他の方法はありますか?

ありがとう!

4

3 に答える 3

1

最近、これを Python に実装しました。マイナーチェンジでC/C++にも採用される可能性があります。

(defvar python-extention-list (list "py"))

(defun semanticdb-rescan-directory (pathname)
  (dolist (file (cddr (directory-files pathname t)))
    (if (file-directory-p file)
        (semanticdb-rescan-directory file)
      (when (member (file-name-extension file) python-extention-list)
        (message "Parsing %s file." file)
        (ignore-errors
            (semanticdb-file-table-object file))))))

(defun semantic-python-rescan-includes ()
  (interactive)
  (dolist (includes (semantic-python-get-system-include-path))
    (message "Parsing %s" includes)
    (semanticdb-rescan-directory includes)))
于 2014-07-25T16:26:23.707 に答える
0

コマンド「bovinate」を実行してみてください。これは、キーの組み合わせ Meta + X で実行でき、次に「bovinate」と入力して「Enter」キーを押します。「Meta」キーは、Windows では「Alt」キーと呼ばれます。

于 2013-08-15T22:29:17.123 に答える