我的问题是 imenu 或 speedbar/semantic 由于缩进而失败。对于这个简单的文件,就可以了:
#include <iostream>
void bar() {
std::cout << "bar" << std::endl;
}
但是如果我想将函数 bar 放在命名空间中并缩进它的代码:
使用 speedbar(
(require 'semantic/sb)
在 init.el 中),我在 speedbar 框架中没有文件标签,并且在 minibuffer 中出现“文件模式规范错误:(void-function c-subword-mode)”使用 MX imenu,我在 minibuffer 中得到“没有适合在此缓冲区中找到的索引的项目”
失败的示例代码:
#include <iostream>
namespace foo {
void bar() {
std::cout << "bar" << std::endl;
}
}
导致它失败的不是命名空间,而是标识。以下也失败了:
#include <iostream>
void bar() {
std::cout << "bar" << std::endl;
}
知道为什么以及如何让它工作吗?
谢谢!!
编辑:好的,解决方案确实是 speedbar+sementics。它确实有效(我的 init.el 出了点问题......)