Интересно, кто в какой ИДЕ пишет :), Интересно, кто в какой ИДЕ пишет :) |
Здравствуйте, гость ( Вход | Регистрация )
Интересно, кто в какой ИДЕ пишет :), Интересно, кто в какой ИДЕ пишет :) |
boom |
8.9.2008, 15:27
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 8.9.2008 Пользователь №: 287 Спасибо сказали: 0 раз(а) Репутация: 0 |
Интересно, кто в какой ИДЕ пишет
блин, забыл добавить в варианты "свой вариант - укажу в комментах" :/ Сообщение отредактировал Litkevich Yuriy - 26.11.2009, 14:32
Причина редактирования: добавил QtCreator
|
|
|
molchanoviv |
11.9.2008, 12:13
Сообщение
#2
|
Старейший участник Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: 5 |
Неужели они наконец-то написали нормальный front end для c++? Или все еще на убогом ctags пытаются все сделать? Обьясни мне, пожалуйста, чем так убог ctags? Если сможешь обьяснить, то предложи альтернативу, а если нет то лучше пиши необоснованные комменты на www.linux.org.ru. Там это любят З.Ы. Не хотел тебя обидеть. но необоснованные коменты достали. |
|
|
kamre |
11.9.2008, 15:19
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 15 Регистрация: 18.1.2008 Из: N-sk Пользователь №: 73 Спасибо сказали: 0 раз(а) Репутация: 0 |
Неужели они наконец-то написали нормальный front end для c++? Или все еще на убогом ctags пытаются все сделать? Обьясни мне, пожалуйста, чем так убог ctags? Если сможешь обьяснить, то предложи альтернативу, а если нет то лучше пиши необоснованные комменты на www.linux.org.ru. Там это любят З.Ы. Не хотел тебя обидеть. но необоснованные коменты достали. Для удобной работы с C++ в IDE нужны такие функции как: "Find Declarations", "Find References", "Autocomplete". А что из этого позволяет сделать ctags? А ничего не позволяет. Для всех этих функций нужно корректно учитывать контекст, в котором оказался символ. А корректно означает, что нужно учесть все правила языка и препроцессора. В итоге получается, что "Find Declarations" не получится реализовать, т.к. может быть множество символов с одинаковым именем, но в разных контекстах. "Find references" - тоже никак, для этого вообще нет информации в том индексе который строит ctags. "Autocomplete" требует корректного выведения типа для выражения, здесь ctags вообще никак помочь не может. Вот если тип известен, то только тогда уже можно через индекс ctags определить список методов. Т.е. максимум на что годится ctags - это сделать "Class Browser", где будут отображаться все глобальные функции, классы и их методы. Все, ни на что другое сам по себе ctags не способен. Для всего остального нужен контекстный анализ. Можно, конечно, пытаться наворачивать какие-то эвристики, парсить код локально. Но все это будет ужасно глючить на более или менее не тривиальном компилируемом коде. Нужен полноценный анализ всех исходников, чем и должен заниматься front end для С++. Теперь об альтернативах. По моему опыту работы в разных средах разработки складывается вот такая картина: 1. Emacs+XRefactory - используется "Professional C++ front-end from EDG", т.е. полность разбирается весь код, так как это делает компилятор на первой стадии, и даже больше, т.к. некоторые исходники обрабатываются по несколько раз, чтобы учитвать #ifdef. 2. Eclipse+CDT - front end написан на java, очень хорошо развивается, даже на больших проектах работает достаточно быстро и корректно, но пока сложные шаблоны типа boost не всегда может разобрать. 3. Visual Assist - в чем-то лучше Eclipse+CDT, в чем-то хуже, примерно на равных. Но для моего большого проекта на работе Eclipse+CDT куда надежнее работает. 4. SlickEdit - примерно как Visual Assist, но я им мало пользовался. Есть версия под линукс. Вроде бы все, все остальные QDevelop/Codeblocks/KDevelop/vim+omnicompletion очень сильно отстают, хотя я за ними в последнее время мало слежу. Т.е. ctags на самом деле не убог, свою функцию он выполняет не так уж плохо (хотя с шаблонами и namespace у него вроде бы есть проблемы), но использовать его в полноценной IDE просто нет смысла, т.к. все равно нужен front end и в нем вся информация, которая есть в индексе ctags, и так будет доступна. А те IDE, которые его испльзуют - просто не полноценно поддерживают C++. Я, конечно, могу ошибаться, но вот сможете ли вы привести пример IDE с полноценной поддержкой C++, где используется ctags? |
|
|
Текстовая версия | Сейчас: 24.12.2024, 2:52 |