Как настроить индексатор C++ Eclipse?
Я использую Eclipse в качестве своей IDE для проекта C++, и мне очень хотелось бы, чтобы он рассказал мне, где определен данный символ и каковы параметры для функции.
Однако есть одна загвоздка: я также использую Lazy C++, инструмент, который берет один исходный файл и генерирует файлы.h и.cpp. Эти файлы.lzz выглядят как заголовки, но этот инструмент поддерживает некоторые очень мягкие синтаксические преимущества, такие как объединение вложенных пространств имен в квалифицированное имя. Кроме того, у него есть несколько специальных тегов, чтобы указать инструменту, куда конкретно поместить что-либо (в заголовке или в исходном файле).
Так что мой типичный SourceFile.lzz выглядит так:
$hdr
#include <iosfwd>
#include "ProjectA/BaseClass.h"
$end
$src
#include <iostream>
#include "ProjectB/OtherClass.h"
$end
// Forward declarations
namespace BigScope::ProjectB
{
class OtherClass;
}
namespace BigScope::ProjectA
{
class MyClass : public ProjectA::BaseClass
{
void SomeMethod(const ProjectB::OtherClass& Foo) { }
}
}
Как видите, это все еще узнаваемый C++, но с несколькими дополнениями.
По какой-то причине индексатор CDT, похоже, не хочет ничего индексировать, и я не знаю, что не так. В представлении индексатора оно показывает мне пустое дерево, но говорит о том, что оно содержит около 15000 символов и более, и ни к одному из них я не могу получить доступ.
Итак, вот мой вопрос: как я могу заставить Индексатор выводить больше информации о том, что он делает, и почему он терпит неудачу, когда это происходит, и могу ли я настроить его больше, чем просто с помощью параметров, доступных через GUI?
Спасибо,
деревенщина
2 ответа
Я бы вообразил его одним из:
Eclipse не хочет отображать не-C++ ресурсы в дереве (у меня были проблемы с этим)
У вас не включено "Настройки> C/C++ > Индексатор> Индексировать все файлы".
Вы хотите использовать "Полный индексатор C / C++", а не "Быстрый индексатор C / C++"
Анализатор / индексатор CDT не распознает такие странные расширения. Единственное, что вы можете сделать, это определить макросы на странице свойств Paths and Symbols, чтобы обмануть парсер. Попробуйте создать макросы для $hdr
, $end
а также $src
которые имеют пустые тела. Таким образом препроцессор удалит их, и парсер не захлебнется ими.