LINUX.ORG.RU

Идеальное IDE для C и C++

 , ,


0

3

Ребят, возник такой вот вопрос.

Для GNU/Linux (и не только) есть огромное количество IDE-шек со своими плюшками, перделками и т.д. Но у каждой из них есть свои недостатки, проблемы, баги.

В итоге, что для вас является важным при выборе того или иного инструмента для программирования на C и C++?

★★★

Последнее исправление: cetjs2 (всего исправлений: 2)

Внимание

Всем кукаретикам емакса! Прошу выкатить список нужных пакетов, чтоб в c++ без боли (на сколько это возможно).

Оно должно включать:

  • Clang-автокомплит (должен понимать откуда брать хидеры тыкая CMake, autotools, etc).
  • Базовый рефакторинг (уровня переименования методов).
  • Навигация, уровня «прыжок к определению символа», «найти все использования».

Это все он должен уметь без правки конфигурации под каждый проект (вся необходимая информация есть в системах сборки).

И да, RTags - глючное говно, которое требует чтоб его кормили json-ми на пару мегабайт (а потом падает).

Kuzy ★★★
()
Ответ на: Внимание от Kuzy

Всем кукаретикам емакса! Прошу выкатить список нужных пакетов, чтоб в c++ без боли (на сколько это возможно).

ты уверен, что тебе нужен именно emacs?

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

ты уверен, что тебе нужен именно emacs?

Базарю.

Kuzy ★★★
()

Хождение по коду (переход к объявлению/реализации, поиск вызова функи/метода в проекте).

Подсветка переменной/функи/метода под курсором по всему файлу.

Поиск по коду проекта.

Подсветка синтаксиса.

Автоформатирование кода по заданным стилям. Автодополнение кода.

Вроде всё.

eagleivg ★★★★★
()
Последнее исправление: eagleivg (всего исправлений: 1)
Ответ на: Внимание от Kuzy

RTags - глючное говно, которое требует чтоб его кормили json-ми на пару мегабайт (а потом падает).

И какая разница, сколько мегабайт JSON?

tailgunner ★★★★★
()

Удобство работы. Разве не очевидно?

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

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

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

я не говор-бы, если-бы не открывал.

Ну да, если свободной памяти много, то он всосет весь файл. И даже будет работать. Но вим мапит файл, а грузит его целиком в память. Вот это и есть проблема.

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

Есть два стула:

  • Использовать Qt Creator (Жрать говно, потому что не emacs с его экосистемой и кучей удобнопакетов, из аналогов там только эмуляция vim-а норм).
  • Использовать Emacs (Жрать говно, потому что он совершенно не умеет в кресты, ну вот совсем).
Kuzy ★★★
()
Ответ на: комментарий от Kuzy

да, хорошо. продолжай наблюдение

anonymous
()
Ответ на: Внимание от Kuzy

Clang-автокомплит — Clang-автокомплит

Базовый рефакторинг (уровня переименования методов). — sed

Навигация, уровня «прыжок к определению символа», «найти все использования». — C-s

Нет?

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

Clang-автокомплит — Clang-автокомплит

Ну вот есть у меня в CMake:

include_directories(${PIECE_OF_SHIT_INCLUDE_DIRS})
Все. Ничего не работает. Мне нужно ручками вписывать в конфиг эти инклуды.

Базовый рефакторинг (уровня переименования методов). — sed

МАКСИМУМ ПОСМОДЕРНИЗМ

Навигация, уровня «прыжок к определению символа», «найти все использования». — C-s

Мне нужен список мест, где использована функция. Например функция с офигенным названием T& get() const. Как думаешь сколько ложных мест мне твой поиск найдет?

Нет?

Нет.

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

очевидно же, использовать менеджер плагинов с возможностью соотв. настройки, например vim-plug:

Без конфига. Вим грузит файл целиком в себя. В этом его проблема.

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

объясните тупому, на кой ляд делать private int getStatus(), а не просто вернуть STATUS_ACTIVE==status ???

Потому, что getStatus() может вычислять значение статуса на основе некого алгоритма. Это сейчас там только return status, а завтра может быть что угодно.

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

ну а Vim? Я же как-то пишу на крестах?

Примите мои соболезнования.

Кстати, в emacs-е я использую evil-mode (эмуляция vim).

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

Потому, что getStatus() может вычислять значение статуса на основе некого алгоритма. Это сейчас там только return status, а завтра может быть что угодно.

зачем тогда сущность public boolean isActive() ?

типа для того, что статусов может быть 0,1,2,3,4… ? И getStatus() будет приватный полный статус рожать, а публичный интерфейс всегда true/false ?

Ну что же, разумно, понял.

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

Примите мои соболезнования.

а что такого? Мне даже нравится.

emulek
()

В итоге, что для вас является важным при выборе того или иного инструмента для программирования на C и C++?

* Доступность всего функционала через консольный интерфейс без мышковозни, должно быть это сделано, ествестенно, не номинально для галочки. За этим пунктом скрывается целая куча нюансов, но думаю примерно должна быть понятна их суть.

* Удобный редактор с подсветкой синтаксиса, никакой самодеятельности по умолчанию (дефолтные автокомплит, фоновые индексации всего и т.п - уже ненужные самодеятельности).

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

Не буду устраивать интригу, сразу скажу что таких IDE в традиционном понимании не существует, под мои требования подходят ~ vim, bash и прочие стандартные консольные инструменты и некоторые специальные утилиты из которых можно набарть нужный функционал и что-то заскриптовать кастомное под проект.

Пробовал почти всё из мейнстримового в свои времена - досовский Borland C++, MSVS до года '05, эклипсы, разные линуксовые IDE. Всё это жутко неудобно и избыточно, оно скорее предназначено для человека совершенно не умеющего правильно организовывать работу в проекте и вообще кодить.

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

зачем тогда сущность public boolean isActive() ?

Откуда мне знать, я не автор кода. Я только пояснил причины, по которым иногда нужно не мембер дергать, а метод.

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

vim число строк должно быть считает и их позиции.

Да, вполне вероятно.

Тоже разумно, можно сразу прыгнуть к строке №67390.

Нет не разумно. Можно в фоне считать количество строк.

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

Откуда мне знать

да я уже догадался, там внутренний int и внешний bool статусы.

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

Нет не разумно. Можно в фоне считать количество строк.

ну может быть. Не важно.

emulek
()

Для меня самой идеальной IDE был бы Kdevelop еслибы не адские баги. Особенно в версии 4.6 котороя досих пор висит в основном репе. юбунты 14.04 . В 4.7 их меньше но всеравно раздражают. При чем такое впечетление что эти баги гдето в недрах Kate так как там они тоже проявлеются хоть и не так часто. Еще я бы с удовольствием пользовался бы Eclips-ом (даже не смотря на тормознутость jav-ы) еслибы в нем интеграция с cmake была бы на уровне Kdevelop. В итоге в настоящее время «мучаюсь» на QTCreator-е, и альтернативы ему пока не вижу. Вим осилил только для хеловордов и конфигов. Для мена работать с проэктом без IDE издевательство.

CunMun
()

для qt qt creator, а там vi like editor есть, в который даже можно подгрузить свой собственный ~/.vimrc, но я не стал, меня вполне удовлетворили дефолтные сеттинги.

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

А простое - подгрузка файла с диска всяко медленнее, чем работа с загруженным в оперативную память файлом. Т.е. если у тебя много оперативки, то архитектура vim-а очень даже хороша.

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

А простое - подгрузка файла с диска всяко медленнее, чем работа с загруженным в оперативную память файлом. Т.е. если у тебя много оперативки, то архитектура vim-а очень даже хороша.

Достаточно понять, что размер файла может быть много больше объема оперативной памяти.

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

А тогда у тебя есть подкачка, которая в любом случае будет читаться с диска...

Читать файл с диска в память и тут же выгружать память на диск. Надеюсь вы не архитектором работаете?

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

Надеюсь вы не архитектором работаете?

А то :-)

Обычно никому не требуется редактировать такие большие файлы руками. Так что если ты открываешь vim-ом файл больше 3 Мб, то ты ССЗБ, ибо распарсить 100500 строк глазами это то же самое, что колоть орехи микроскопом. Тут нужен потоковый текстовый редактор - sed.

peregrine ★★★★★
()

Qt Creator очень-очень хорош, но костылей полно. К примеру, идиотский парсер CMake, который сначала парсит CMakeList.txt в cbp (проектный файл для левой IDE), а потом уже в сам себя. Гвоздями прибитые виджеты, отсутствие табов и т. д.

EXL ★★★★★
()

Лол, тред боли, я смотрю

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

Обычно никому не требуется редактировать такие большие файлы руками. Так что если ты открываешь vim-ом файл больше 3 Мб, то ты ССЗБ, ибо распарсить 100500 строк глазами это то же самое, что колоть орехи микроскопом.

Ну да, а 640Кб хватит всем.

Тут нужен потоковый текстовый редактор - sed.

И что бы я без вас делал.

andreyu ★★★★★
()

В плюсах я не силён, но подозреваю, что для приплюснутой ИДЕ важна удобная организация работы с конструкциями языка - классами, шаблонами и т.д.

С чистым Си как по мне, всё проще. Вима хватает. Под оффтоп пользую эклипсу.

Перепробовал много чего, анюту, имэкс... Всего и не вспомню.

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