C ++ IDE для Linux с интеллектуальным поиском ссылок - PullRequest
6 голосов
/ 25 марта 2010

Есть ли IDE, поддерживающая C ++ с ДЕЙСТВИТЕЛЬНО умным поиском ссылок? Под «ссылкой» я подразумеваю использование класса (или его члена), переменной, функции во всем проекте или рабочей области.

Есть много IDE, обеспечивающих это. Некоторые из них, кажется, просто ищут текст с тем же именем, дающим много материала, другие умнее и проверяют контекст (например, границы классов, пространство имен), но не достаточно точны.

Лучшее, что я когда-либо пробовал, это Visual SlickEdit, но все же есть еще что пожелать.

class C1
{
    int foo;
};
class C2
{
    int foo;
};

Например, в этой ситуации при поиске C1::foo ссылок я не хочу, чтобы C2::foo также отображался.

Итак, есть ли IDE, которая была бы такой умной?

Edit2

10х всех за ответы до сих пор.

Я пробовал Eclipse , поиск ссылок выглядит относительно неплохо, но для индексации проекта среднего размера требуется 20 минут, а в 4 раза из 5 не хватает памяти и происходит сбой. Я попытался увеличить его и некоторые другие советы, и он стал немного лучше, но все еще довольно медленным и раздражающим в этих сбоях.

Я пытался KDevelop3 , но функция, упомянутая в этом вопросе, не очень продвинута - кажется, это просто очень продвинутый grep поиск текста на основе.

Edit4

KDevelop4 - Я пытался заставить его работать, но последняя бета-версия совершенно непригодна для проектов с пользовательским make-файлом, я ничего не смог с этим поделать.

Edit5
Я был удивлен, но QT Creator очень хорошо показал себя в моих тестах. Кажется, он не создает некоторые файлы тегов / индексов, но каким-то образом удается очень точно показать использование переменных / функций / классов. К сожалению, кажется, что он не очень корректно работает с шаблонами при следующих определениях функций.

Ни одна из упомянутых IDE не могла конкурировать с Visual SlickEdit в работе со ссылками, виртуальными функциями и т. Д. QT Creator был самым близким, поэтому я выберу его в качестве ответа на мой вопрос.

Ответы [ 7 ]

3 голосов
/ 25 марта 2010

Я думаю, что вы могли бы использовать Eclipse , в основном я думаю, что он сможет делать то, что вы хотите, или почти достаточно. Также здесь ' s краткое описание параметров поиска.

2 голосов
/ 26 марта 2010

Я думаю, что Qt-Creator может помочь вам. В предварительном просмотре 2.0 добавлено несколько новых функций.

2 голосов
/ 25 марта 2010

Нет, и я не думаю, что мы когда-либо увидим реализации, которые так же хороши, как в C # или Java-редакторах, по двум причинам:

1) препроцессор:

#ifdef _DEBUG
#define FOO(x) C1(x).foo
#else
#define FOO(x) C2(x).foo
#endif

2) шаблоны:

template<class C> void Method(C const& c) {
    printf("%d", c.foo);
}

В обоих случаях трудно определить, на какой класс действительно ссылаются.

1 голос
/ 29 марта 2010

Вы когда-нибудь пробовали Netbeans. Будучи близким конкурентом Eclipse, он обладает всеми функциями, такими как веб-разработка, мобильные приложения и плагины, позволяющие практически что-либо делать. Все это с меньшим использованием процессора и памяти. И это правильно разрешает имя.

0 голосов
/ 26 марта 2010

Вы можете посмотреть на CodeBlocks [http://www.codeblocks.org/]. Я только начал использовать его, но не проверялось по вашим требованиям. Так что я не требую 10X сейчас. Но вы можете попробовать. Его открытый исходный код и хороший.

0 голосов
/ 26 марта 2010

Вы должны попробовать KDevelop 4, а не старый.

0 голосов
/ 25 марта 2010

Я не использовал KDevelop сам, но у меня складывается впечатление, что он выполняет серьезный анализ исходного кода и может получить доступ к информации исходного кода через редактор. Он имеет по крайней мере некоторые расширенные функции помощника по коду .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...