Я разрабатываю плагин, использующий API CDT, я посещаю все определения функций в некотором файле ast (Абстрактное синтаксическое дерево) в каком-то файле, а затем пытаюсь найти, существует ли объявление для функции, которую я посещаю в проекте.
Мне нужно сделать это программно, к сожалению, индексатор не возвращает объявление для некоторых функций, что-то, чтобы упомянуть, это прекрасно работает, когда я использую затмение само, я имею в виду IDE, я выбираю функцию,щелкните правой кнопкой мыши, затем найдите объявления -> проект или рабочее пространство, оно показывает все объявления правильно, я не уверен, что мне не хватает
//I retrieve the Index this way
IIndex index = CCorePlugin.getIndexManager().getIndex(icProject,IIndexManager.ADD_DEPENDENCIES | IIndexManager.ADD_DEPENDENT | IIndexManager.ADD_EXTENSION_FRAGMENTS_TYPE_HIERARCHY);
//Visitor class
protected int visit(IASTFunctionDefinition functionDefinition) {
IASTFunctionDeclarator funcDeclarator = functionDefinition.getDeclarator();
IASTName funcName = funcDeclarator.getName();
IBinding binding = funcName.resolveBinding();
IIndexName[] indexNames = ast.getIndex().findDeclarations(binding);
for (IIndexName iIndexName : indexNames) {
logger.info("Declaration exists in file : "+iIndexName.getFile());
}
}
@ HighCommander4