Как настроить индексатор C ++ Eclipse? - PullRequest
2 голосов
/ 12 сентября 2008

Я использую 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 символов и более, и ни к одному из них я не могу получить доступ.

Итак, вот мой вопрос : как я могу заставить индексатор выводить некоторую дополнительную информацию о том, что он делает, и почему он терпит неудачу при этом, и я могу настроить его больше, чем просто с помощью графического интерфейса варианты?

Спасибо

Карл

Ответы [ 2 ]

2 голосов
/ 12 сентября 2008

Я представляю себе одно из:

  • Eclipse не хочет отображать ресурсы не-C ++ в дереве (у меня были проблемы с этим)

  • У вас не включено «Настройки> C / C ++> Индексатор> Индексировать все файлы».

  • Вы хотите использовать «Полный индексатор C / C ++», а не «Быстрый индексатор C / C ++»

1 голос
/ 08 мая 2009

Синтаксический анализатор / индексатор CDT не распознает такие странные расширения. Единственное, что вы можете сделать, это определить макросы на странице свойств Paths and Symbols, чтобы обмануть парсер. Попробуйте создать макросы для $hdr, $end и $src с пустыми телами. Таким образом препроцессор удалит их, и парсер не захлебнется ими.

...