LINUX.ORG.RU

IDE для С (кроме emacs)


0

0

[troll-mode] Решил тут попробовать перейти с емакса на что-нибудь более модное [/troll-mode]

Слышал про Code::Blocks, но не понял, есть ли там интергация с Git и Mercurial? Гугл выдал подозрительно мало результатов.

Поставил Eclipse + CDT. Впечатления: есть НАМНОГО больше памяти, чем емакс, но работает при этом быстрее. Плагины для Git и Mercurial запахали весьма быстро. Когда добавил в него сорцы 2.6.31 в качестве проекта, памяти ему не хватило, понядобилось передавать джаве -Xmx1024 (больше heap'а). После этого он его таки проиндексировал, довольно-таки быстро, не так, как cscope-indexer, но не критично. Только вот почему-то "Go to declaration" работало как-то странно. Например, подвел курсор к упоминанию struct usb_device, нажимаю F3, а он ничего не видит. Запускаю "Open element", он находит, причем моментально. После этого F3 работает. Что-то другое он по F3 искал тоже весьма причудливо - бегал по разным вариантам, после 3-го предлагал таки список, но того, что надо там не было. А "Open element" опять все находил. Но это еще сносно. Хуже его общая нелогичность. Например, после емакса мне хотелось больше рабочего места, я кликнул правой кнопкой на тулбар, нажал "Hide toolbar". После выхода-входа тулбар тут как тут. Оказалось, что ДЛЯ ЭТОГО НУЖЕН ПЛАГИН... Нету цветовых схем. Цвета хранятся в properties файлах, причем per plugin, то есть, для JDT свои, а для CDT - свои... Ну и на последок - в окошке Project Explorer можно включить фильтры, чтобы не все файлы там отображались, тупо wildcards. Там есть список, а новый туда почему-то не добавить без ковыряния каких-то jar'ов... А фильтр "Executables" почему-то не ныкает файлы, которые воллне себе executable, небось, на .exe заточен. А еще я не понял, где задан биндинг Ctrl+PgUp и Ctrl+PgDown, которые по табам бегают. По дефолту он пытался генерить Makefile для проекта, и собирать его сразу после создания, чего вовсе от него не хотели, пришлось лазить по настройкам в разных местах. Также убило, что он не позволяет выкинуть стандартные /usr/include из списка индексируемых для проекта. Короче конфигурить его не просто, настройки разбросаны хрен знает как.

После этого поставил Netbeans с C/C++ плагином. Сначала пришлось потрахацца, чтобы он под Xmonad заработал, ну это не его вина. Цветовые схемы есть, кнопки управляются нормально. Git и Mercurial тоже заработали. Фильтры для файлов задаются отлично, регекспом. Удобнее создавать проект из существующих сырцов, он спрашивает, как его собирать и т.д. Также Netbeans пытается ловить ошибки до компиляции, правда, друхуровневый инициализатор структуры как-то не осилил. Из минусов: Странно работает история, если несколько раз делаешь "Go to declaration", Alt-Left потом как-то не до конца возвращает назад. Больше тупит. Тыкаешь кнопку в первый раз, он тупит, ну и т.д. Шрифты - говно! Вернее, их рендеринг. Шрифт Consolas, который радовал мне глаз и под Емаксом, и в Эклипсе тут рисуется ужасно, поставил DejaVu Sans Mono, жить можно. После компиляции можно щелкнуть в строчку с error и он перейдет к соответствующему месту в коде. Однако, если окно вывода компилятора уже сныкалось, понять что не так в конкретной строчке сложно - в качестве хинта выводится только "Compiler error". Не фатально, но не удобно. Ну и самый лютый писец. Решил я в него опять же запихать Linux-2.6.31. Опять пришлось поправить опции VM, но даже с -Xmx1024 он не осилил ЗА НОЧЬ проиндексировать ядро, утром аццки тупил на 99%, конца я так и не дождался. Может там 99% времени работал garbage collector, конечно, но вот эклипс в таких случаях пишет что-то типа "too much GC overhead". Да и не ясно, нахера так много данных держать в памяти, нельзя что ли это инкрементально делать, по кускам? Причем даже после перезапуска он попытался опять его индексировать, да так настойчиво, что пришлось его убить и руками удалить проект. У меня 2Гб, не особо много, но уж не думал, что этого не хватит для индексации ядра...

В целом немножко больше понравился нетбинс, может мозгов доставить...

Кто что посоветует (кроме возвката на emacs)? Есть ли другие IDE с поддержкой Git и Mercurial, c хорошим автодополнением и code browsing'ом под Linux?

Ответ на: комментарий от ott

Разработчики CEDET не пробовали прикрутить к нему gcc-xml или что-то подобное? Это могло бы решить проблемы с разбором C++ раз и навсегда. При условии, что парсер XML нормально работает.


>http://github.com/alexott/emacs-configs - можно делать копипаст

Спасибо.

ipc
()
Ответ на: комментарий от ipc

вроде такая идея пролетала. но у меня было такое впечатление, что gcc-xml забросили? или я ошибаюсь?

хотя у меня была идея, что можно подключить CLang, тогда будет сразу поддержка для 3-х языков....

ott ★★★★★
()
Ответ на: комментарий от ipc

> Это могло бы решить проблемы с разбором C++ раз и навсегда.

Еще есть проблемы с препроцессором, т.к. компилятор всегда "видит" фактически только одну возможную ветку. Xref парсит исходники с #ifdef по несколько раз, чтобы правильно построить перекрестные ссылки для всего кода.

Попробовал запустить бесплатный Xref для C на исходниках linux. Индексирование проходит до 46% и Emacs вываливает вот такую ошибку:

let: Maximum buffer size exceeded

Похоже elisp-код в Xref где-то выходит за какие-то пределы. Что это может быть и как увеличить размер буфера?

kamre ★★★
()

мда как всегда одни и теже люди и предлагают человеку зарыться в конфигах vim, emacs )))

единственная хорошая ide с автодополнением для кучи языков это visual slickedit
да она платная - 300$, чтобы некоторые не кидались какашками, но всегда есть возможность посмотреть trial версию или если уж совсем напряг с деньгами, то в torrent'ах должно валять 100%

кста тут кто то говорил, что у eclipse+cdt, kdevelop, netbeans, vim хорошие "автоподолнялки" intellisence - это чушь и полный кал в сравнении с visual assist или slickedit

acefsm
()
Ответ на: комментарий от acefsm

>кста тут кто то говорил, что у eclipse+cdt, kdevelop, netbeans, vim хорошие "автоподолнялки" intellisence - это чушь и полный кал в сравнении с visual assist или slickedit

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

acefsm
()
Ответ на: комментарий от acefsm

> кста тут кто то говорил, что у eclipse+cdt, kdevelop, netbeans, vim хорошие "автоподолнялки" intellisence - это чушь и полный кал в сравнении с visual assist или slickedit

Что есть в visual assist, чего бы не было в kdevelop или netbeans?

LamerOk ★★★★★
()
Ответ на: комментарий от acefsm

> мда как всегда одни и теже люди и предлагают человеку зарыться в конфигах vim, emacs

И как всегда без твоей дурацкой рекламы не обошлось.

> единственная хорошая ide с автодополнением для кучи языков это visual slickedit

anonymous
()
Ответ на: комментарий от kemm

а ты все троллишь везде, да?
http://www.linux.org.ru/view-message.jsp?msgid=4088836

у меня сложилось впечатление, что большинство ненавистников С++ каждый раз в ветке про IDE для C++ дает свои "советы"

ps: исключая alex'a ott'a - человек у которого видимо достаточно времени, чтобы суметь настроить emacs под свои нужды, думаю не мало времени у него на это ушло

acefsm
()
Ответ на: комментарий от acefsm

Посидел на нетбинсе пару дней, перешел на эклипс. Причины две - контекстное автодополнение в нетбинсе мне только по первости показалось хорошим, на деле иногда не дополняет и в вовсе банальных случаях.

Обновленный емакс, кстати, дополняет на удивление круто. Почти как эклипс :)

ratatosk
() автор топика
Ответ на: комментарий от ratatosk

А-а, да, вторая причина - я не понял, как в эклипсе добавить файл в version control, причем, как в гит, так и в меркьюриал.

ratatosk
() автор топика
Ответ на: комментарий от ratatosk

>Обновленный емакс, кстати, дополняет на удивление круто. Почти как эклипс :)

Emacs из CVS?

anonymous
()
Ответ на: комментарий от ott

CEDET-Java, JDEE

Вы не знаете, планируется ли расширение поддержки Java в CEDET? Или предполагается, что для этого есть JDEE?

anonymous
()
Ответ на: CEDET-Java, JDEE от anonymous

основная проблема сейчас - правильная генерация баз методов, разбор исходника на Java вполне работает и сейчас. а вот генерацией базы кто-то занимался, и даже какие-то подвижки в этом направлении были

ott ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.