[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?