私の問題は、インデントが原因で imenu または speedbar/semantic が失敗することです。この単純なファイルの場合、問題ありません。
#include <iostream>
void bar() {
std::cout << "bar" << std::endl;
}
しかし、関数 bar を名前空間に入れ、そのコードをインデントしたい場合:
スピードバー (
(require 'semantic/sb)
init.el にある) を使用すると、スピードバー フレームにファイル タグがなく、ミニバッファーに「ファイル モード指定エラー: (void-function c-subword-mode)」が表示されます。MX imenu を使用すると、ミニバッファーに「このバッファーで見つかったインデックスに適したアイテムはありません」というメッセージが表示されました。
失敗するコード例:
#include <iostream>
namespace foo {
void bar() {
std::cout << "bar" << std::endl;
}
}
失敗するのは名前空間ではなく、識別です。以下も失敗します。
#include <iostream>
void bar() {
std::cout << "bar" << std::endl;
}
なぜ、どのように機能させるのか考えていますか?
ありがとう!!
編集:解決策は確かにスピードバー+セメンティクスです。それは実際に動作します(init.elに何か問題がありました...)