вопросы по eclipse:
1. имеет ли функции типа Go To Defenition/Go To Declaration? причем не поиском по всем существуюим файлам, а корректно? в зависимости от имеющихся зависимостей #define и #include включенных в проект?
+ 2. корректно ли она их находит в зависимости от #ifdef/#indef и объявленных в Debug/Free/etc.
В состав eclipse входит CDT - С Development Toolkit. В нём есть так называемый Indexer - полноценный анализатор кода. Он позволяет ходить по Definition'ам, Declaration'ам, "свёртывать" код, показывать иерархию типов, outline, деревья вызовов функций и прочие мыслимые вещи. К ним относится и поиск по классам, структурам, переменным etc. Такой поиск, понятное дело, учитывает заданные define и ищет в соответствии с ними.
К слову, Go To Declaration я не использую, ибо декларацию вместе с комментарием эклипс показывает во всплывающей подсказке при наведении на используемую переменную.
3. "подсветка ошибок, букмарки, категоризация всяких ToDo, FixMe итп" - таких текстовых редакторов думаю очень много... не в них дело.. хотя и удобно.
Подсветкой ошибок я здесь назвал не подсветку синтаксиса, которая есть много где, а вот что. Когда мы собираем проект и компилятор/линкер даёт ошибки, они поступают в Error Parser, который понимает сообщения об ошибках разных компиляторов и линкеров - для Си это от gcc до Visual C++. В смысле, понимает, как он поругался, на какой файл и на какую строчку. Соответственно, такие файлы и строчки выделяются соответствующими значками. Такое есть далеко не во всех текстовых редакторах.
Ну, а прочих перечисленных фич действительно полно в массе редакторов - я потому на них ударение и не делал. В наше время это - то, что должно быть в любом хорошем инструменте, и отсутствие этого просто огорчает. BTW, как в редакторах visual осуществить переход от файла к его хедеру и обратно? Для меня это часто выполняемое действие (привык ещё со времён борланд сибилдера), а в вижуал редакторах я не нашёл способа это сделать. Разве что подключением к ним 3rd-party инструментов.
собственно, я ни за что не агитирую)
Да и я не агитирую. Ни в коем случае не хочу начинать здесь священные войны итп. Я просто выступаю за возможность осознанного выбора, которую у человека отнимать не нужно. А M$ грешит этим часто.
Да, и спасибо за дискуссию. Приятно побеседовать в хорошем обществе, и именно такое ощущение создаётся здесь.