dim*_*mba 9 c c++ eclipse ide eclipse-cdt
在搜索宏引用时,Eclipse显示文件+行,宏引用它.我想文件+行+ 功能.
搜索其他类型的数据(例如函数)将按预期显示文件+行+ 函数,所以也许应该在Eclipse配置中为宏调整某些东西?
有任何想法吗?
CDT的下一个版本(CDT 9.3,将于2017年6月发布的Eclipse Oxygen的一部分)将支持显示包含宏引用的函数.有关详细信息,请参阅错误508216.
这个答案的其余部分是原始答案.
有在Eclipse CDT没有办法显示一个宏,因为该指数是建立在这种信息不包含在索引中引用的函数.
为了确保我们谈论同样的事情,我提供了一些视觉效果.
给定一个包含函数,宏和全局变量的简化C文件:
示例代码
#define MACRO(X) ((X) + 2)
int function(int);
int global;
int function_results_are_in(void) {
int i = 0;
i = MACRO(i);
i = function(i);
i += global;
return i;
}
Run Code Online (Sandbox Code Playgroud)
使用以下使用C/C++索引的方法之一进行搜索(而不是文件/ grep样式搜索):
建立
结果 - 功能搜索
正如您在搜索函数时看到的那样,结果显示包含函数名称:
结果 - 宏搜索
但是对于宏搜索,没有包含函数名称:
C/C++搜索结果中的每个搜索结果都是 LineSearchElement.Match.如果fEnclosingElement是null,则无法显示任何功能.
退后一步,您可以看到匹配是通过匹配创建的IIndexName.该Match.fEnclosingElement字段由结果填充IIndexName.getEnclosingDefinition().
在宏参考的情况下,具体类型的IIndexName是PDOMMacroReferenceName,和实施的getEnclosingDefinition是简单地return null.