我是 emacs cedet 用户。我从 cedet 那里得到了很大的帮助。
但是,我在 cedet 中发现了一些错误处理 #ifdef 处理。不确定它来自 cedet 内部还是我的错误配置。我在发生此问题的 Curl 中引用了一些代码。
#ifdef CURL_DO_LINEEND_CONV
if((data->set.crlf) || (data->set.prefer_ascii)) {
#else
if(data->set.crlf) {
#endif /* CURL_DO_LINEEND_CONV */
endofline_native = "\n";
使用此代码,必须有一些错误的括号匹配。因为我在使用 (eassist-list-methods) 或其他 cedet-semantic 函数(跳转到定义)时遇到了错误。
我很容易猜到这可能来自 #ifdef .. #endif 块中的两个大括号。我把这些承包了。
#ifdef CURL_DO_LINEEND_CONV
if((data->set.crlf) || (data->set.prefer_ascii))
#else
if(data->set.crlf)
#endif /* CURL_DO_LINEEND_CONV */
{
endofline_native = "\n";
在此之后,cedet 语义函数运行良好。
有什么想法吗?它来自 cedet 解析器问题吗?
如果有一点我必须在 cedet 中配置,你能给我一些见解吗?
谢谢