После достаточно большой паузы, поставил на буке PyDev. Он сразу же подвис на code completion. Раньше такое решалось обновлением, но сейчас pydev последний. Нагуглился тред на sf.net. Достаточно сделать:
echo 0 > /proc/sys/net/ipv6/bindv6only
и перезапустить eclipse. На постоянно в debian это делается в файле /etc/sysctl.d/bindv6only.conf. В debian-devel@ недавно был холивар по этому поводу. Но все равно как-то уныло.
Посмотрел таки на Eclipse SDK. Попробовал нарисовать свой плагин. Дооекстаточно долго пытался вникнуть, что такое “nature” и как его подключать к проекту.
В итоге получилось таки написать тестовый плагин, который добавляет пару команд в popup менюшку проекта и добавляет кастомный Builder.
Всё выглядит вполне удобно. Особенно нормальная отладка кода.
Попробовал поставить себе свежий билд CDT, с номером 6.0.0-I200905061052. На eclipse-java-galileo-M7 оно ставиться не захотело. Ругнулось на какие-то неправильные зависимости. Слил с сайта nightly билд под названием eclipse-SDK-I20090513-2000. С ним всё завелось. Поигрался минут 15. Вроде всё работает, не глючит.
Появилась одна _очень_ удобная фича. Перегруженные операторы у классов теперь подсвечиваются. То есть из кода вида
x = x + 1
видно, перегружен ли operator+() или нет. Всяким VIM-ам до этого, к сожалению, как до неба.
На скрине видно, что в одном из случаев оператор -> перегружен:

К обьявлению оператора, естественно, можно перейти, нажав на операторе F3, ну или тыцнув мышкой с нажатым Ctrl.
Он научился нормально переименовывать классы. Если бы еще соответствующие .h и .cpp файлы переименовывал (при условии, что 1 класс/файл), то было бы вообще супер. Mercurial как раз умеет угадывать такие вот переименования.
Еще появилась менюшка Implement method. Оно даже работает и умеет правильно понимать namespace.
Нормального CLI форматировщика кода, не зависящего от IDE, под плюсы я так и не нашел. Одни нормально не понимают отступы Tab-ами, другие не умеют (или плохо умеют) переносить длинные строки. Либо пытаются пытаются выравнивать перенесенные строки пробелами. Хотя Uncrustify с небольшими костылями в виде шелл скрипта с парочкой вызовов sed-а вполне себе удобен.
Посмотрел на сабж… Завелось сразу. Умеет в workspace отмечать значками измененные файлы. Плюс достаточно удобно выглядит annotate (aka blame).
Добавлять/удалять файлы все равно удобней руками с помощью команды hg addremove, которая с ключем -s умеет угадывать перемещения файлов.
Посмотрел я на этот новый релиз. Очень качественно починили Indexer. Он теперь даже нормально кушает Qt-ную кучу #define. На ходу подсвечивает места, которые indexer не может распарсить.
В inline методе класса индексер не видит приватные члены класса:
class Foo {
public:
void test() { bar_->[тут]; }
private:
Bar* bar_;
}
В #213561 описано как дебажить проблемы индексера.