LINUX.ORG.RU

Парсер в eclipse cdt


0

0

Почему-то eclipse не выделяет ошибки в коде на этапе редактирования. Т.е. например ошибки с опечатками в имени переменных netbeans 6.8 подчёркивает сразу, а eclipse же выделяет их только после неудачной сборки проекта. Да и то, выделяет сразу всю строку с примечанием полученным от компилятора. При этом автодополнение хорошо работает и там и там.
Собственно вопрос, так и должно быть? Или можно что-нибудь настроить, чтобы eclipse тоже научился выделять примитивные ошибки без сборки проекта?
PS: Используется eclipse cdt версии 6.0.2
PSS: Какую другую среду разработки для C++ с opencv можете посоветовать?

> можно что-нибудь настроить, чтобы eclipse тоже научился выделять примитивные ошибки без сборки проекта?

Нет.

tailgunner ★★★★★
()

> Почему-то eclipse не выделяет ошибки в коде на этапе редактирования. Т.е. например ошибки с опечатками в имени переменных netbeans 6.8 подчёркивает сразу, а eclipse же выделяет их только после неудачной сборки проекта.

В CDT парсер не на 100% соответствует компилятору, поэтому будет совсем глупо выглядеть, когда CDT не смог разобрать код, который нормально компилируется.

В NetBeans таких случаев было много, когда я его смотрел. Правда это было давно, может быть и улучшили там парсер для C++. Но все равно такой надежности в разборе кода как для java нет, поэтому будет подчеркивать корректный код, который просто не смог разобрать (какие-нибудь потроха буста с кучей шаблонов).

Если хочется подчеркивать тот код, который CDT не может разобрать, то это можно включить в настройках для semantic highlight: http://omploader.org/vNDM4dA/EclipseHighlightProblems.png

kamre ★★★
()

До тех пор, пока не будет выполняться полная компиляция еще на стадии редактирования - это сделать будет невозможно. Во первых - еще не факт, что среда знает весь envernment проекта. Во вторых - распарсить столько - вещь не простая. В третих - куча компиляторспецифичных вещей.

А орать об ошибке которой нет - плохо

namezys ★★★★
()

KDevelop4? Пытается парсить код, имеет весьма продвинутое автодополнение в С++ и подсвечивает некоторые ошибки.

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

т.е. сейчас RC1, скоро будет RC2. А Релиз 1-го мая.

Pavval ★★★★★
()

Пользуюсь Eclipse Galileo + CDT с сайта, SP2. Сколько помню - Эклипс всегда хорошо подсвечивал потенциальные ошибки в C++, собственно 90% ошибок/опечаток я исправляю до этапа компиляции. Практически всё что Эклипс подчёркивает жёлтым цветом подлежит исправлению.

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

> Практически всё что Эклипс подчёркивает жёлтым цветом подлежит исправлению.

Это совсем грубые синтаксические ошибки. Без анализа семантики.

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

> Практически всё что Эклипс подчёркивает жёлтым цветом подлежит исправлению.

Там не так много. Насколько я понял, топикстартеру нужно что-то вроде Emacs flymake-mode.

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

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

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

Когда последний раз пробовал KDevelop4 он уж очень часто падал. Хотя, учитывая его тогдашний статус, это было более чем простительно. Как выйдет релиз обязательно попробую.

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

У меня тоже были пару месяцев назад креши, но я отписался и их весьма оперативно пофиксили. Радует, что разрабы занимаются профилированием и исправлением ошибок вместо безмозглого наращивания функционала.

Лично я на него пересел, когда увидел одно их самых адекватных автодополнений С++. Кстати и шаблоны тоже хавает только так.

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

ошибки в именах полей, методов эклипса может показать при редактировании - существующие имена подсвечиваются синим цветом
пересборка бывает нужна если ввел новую переменную
или не про то речь?

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

>ошибки в именах полей, методов эклипса может показать при редактировании - существующие имена подсвечиваются синим цветом

пересборка бывает нужна если ввел новую переменную

или не про то речь?

Ну в kdevelop пересборка не нужна, подчеркивает неправильные поля и не определенные переменные (с учетом областей видимости). Выделяет переменные разными цветами, так что легче ориентироваться по коду. При этом не путается в разных областях видимости.

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

>Выделяет переменные разными цветами
Ну и не только переменные, а соб-сно все.

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