C++ IDE для Windows с богатым набором функций: завершение кода, рефакторинг и т. д.

Я ищу интегрированную среду разработки для C++, которая должна работать в Windows 8. В идеале программа должна поддерживать следующие функции:

  • Завершение кода/подсказка
  • Помощь с отступами
  • Подсветка синтаксиса
  • Рефакторинг (возможность как минимум переименовывать переменные, классы, функции и т.д.)
  • Навигация по коду (аналог ctrl+ щелчок в Eclipse Indigo)

Кроме того, среда IDE должна соответствовать стандартам , что означает, что она не использует компилятор или анализатор кода, которые намеренно и преднамеренно нарушают стандарт C++ (как это делает Microsoft Visual Studio ), и уведомляет пользователя, когда он/она пишет нестандартную информацию. совместимый код (несмотря на то, что компилятор может его принять).

В настоящее время я не могу приобретать продукты, которые не являются бесплатными, но я готов принять ответы, описывающие относительно дешевый (скажем, менее 100 долларов) продукт.

Здесь необходимо различать, что соответствие стандартам строго связано с базовой цепочкой инструментов, используемой для компиляции вашего кода. IOW, IDE не может нарушать стандарт C++, потому что она не отвечает за превращение вашего исходного кода в исполняемый код - это компилятор.
Попробуйте CLion от JetBrains.
Какой у вас опыт работы с vi и/или emacs? Пожалуйста, посчитайте это, даже если опыт был десятилетия назад. (Точно так же, как вы никогда не забываете, как ездить на велосипеде, вы также никогда полностью не забываете, как делать чертовски крутые вещи с удивительно небольшим количеством нажатий клавиш в vi.)
@unforgettableid Поскольку я задал этот вопрос, я фактически переключился на использование vim в качестве предпочтительного редактора.
«среда IDE должна соответствовать стандартам» — этот запрос на самом деле не имеет смысла для среды IDE, поскольку соответствие стандартам работы ложится на базовый компилятор, а не на среду IDE. Например, если вы используете Code::Blocks и говорите ему использовать MSVC, то, конечно, нестандартное поведение, упомянутое вами в вашей ссылке, будет работать так же.
@ApproachingDarknessFish: Хорошо! Вы когда-нибудь пробовали режим зла ? Это сочетание превосходных раскладок Vim и большей части возможностей Emacs. См. также четырехминутное демонстрационное видео на YouTube.
Я отмечаю, что Clang и GCC пытаются быть совместимыми друг с другом, а GCC имеет множество расширений, выходящих за рамки стандарта.
@ApproachingDarknessFish: рассмотрите возможность непринятия ответа CodeBlocks, учитывая комментарии, которые действительно кажутся действительными.
@Brandin: Я предлагаю отредактировать вопрос, чтобы эта фраза означала то, что она может разумно означать, и что, вероятно, на самом деле хочет ОП.
@einpoklum Теперь я вижу, что мой комментарий фактически дублирует первый комментарий, указанный здесь. Очевидно, ОП проигнорировал или не понял вопрос о соблюдении стандартов. Редактирование не помогло бы; только обучение ОП.
@Brandin ОП получил образование, но больше не интересуется этим вопросом. Не стесняйтесь редактировать, как считает нужным сообщество.

Ответы (8)

Код::Блоки

Я бы порекомендовал его для Windows, если вы будете работать в команде, использующей несколько платформ. Он может обрабатывать изменения конфигурации, поэтому вы никогда не заметите, что ваши товарищи по команде используют разные операционные системы. Это очень мощная современная IDE, но для некоторых проектов ее может оказаться слишком много. Он может использовать множество наборов инструментов компилятора из коробки и может быть настроен практически для любых нестандартных.

Как говорится на официальном сайте, Code::Blocks — это «... открытый исходный код, кроссплатформенная, бесплатная C, C++ и Fortran IDE».

Функции

  1. Импортирует проекты MSVC и проекты Dev-C++.
  2. Открытый исходный код
  3. Изначально кроссплатформенный
  4. Написано на С++. Никаких интерпретируемых языков или проприетарных библиотек не требуется.
  5. Расширяемый с помощью плагинов
  6. Подсветка синтаксиса, настраиваемая и расширяемая
  7. Завершение кода/подсказка
  8. Помощь с отступами
  9. Навигация по коду

Более подробную информацию о функциях можно найти на официальном сайте здесь .

Скриншот с сайта разработчика

Это обеспечивает поддержку рефакторинга? Как?
Code::Blocks больше не поддерживается. Вместо этого я бы рекомендовал Qt Creator. В любом случае лучше.
@Timmmm: Действительно кажется, что сайт Code::Blocks не обновлялся целый год.
@Timmmm Code::Blocks все еще жив.

Существует пакет C/C++ для Netbeans .

Я могу убедиться, что он имеет подсветку синтаксиса, завершение кода и помощь в форматировании/отступе кода.

Хотя я лично не использовал пакет C++, я использую варианты Java и PHP ежедневно, и я предполагаю, что, основываясь на существовании навигации и рефакторинга cntrl+click в обоих, они также должны присутствовать в пакете C++.

Единственный реальный недостаток, который я обнаружил в Netbeans, заключается в том, что иногда через несколько часов он может стать вялым до такой степени, что перестает отвечать на запросы из-за (как я предполагаю) утечки памяти (по крайней мере, в 64-разрядной Windows 7), при которой время, когда вам нужно убить связанный процесс java.exe, чтобы освободить память. Эта проблема, возможно, была исправлена, поскольку я не сталкивался с ней в течение нескольких месяцев.

Проект CDT предоставляет полнофункциональную среду разработки C и C++ на основе платформы Eclipse . Функции включают в себя: поддержку создания проекта и управляемой сборки для различных цепочек инструментов, стандартную сборку make, навигацию по исходному коду, различные инструменты знаний об исходном коде, такие как иерархия типов, граф вызовов, включение браузера, браузер определения макросов, редактор кода с подсветкой синтаксиса, сворачиванием и гиперссылкой. навигация, рефакторинг исходного кода и генерация кода, инструменты визуальной отладки, включая память, регистры и средства просмотра дизассемблирования. ( Источник )

CDT Project Скриншот нескольких окон

Я бы не сказал, что он полностью функциональный — в конце концов, его возможности рефакторинга почти нулевые, и он не предлагает автоматического устранения ошибок и предупреждений, как в Eclipse для Java, — но это происходит. Может быть, через десять лет он станет хорошим... (не поймите меня неправильно - я использую его каждый день).

КЛион

Пользовательский интерфейс CLion

Это кроссплатформенная IDE с расширенной поддержкой C++, известная по ReSharper C++. IDE разработана JetBrains, компанией, стоящей за IntelliJ Idea и Android Studio.

Работает на Windows, Linux и MacOS.

Что касается особенностей:

  • Завершение кода. Оно дополняет имена переменных, членов классов, имена файлов заголовков и все, что вы ожидаете от C++ IDE.

  • Отступ — имеет настраиваемый автоматический отступ.

  • Подсветка синтаксиса присутствует для C++ и нескольких веб-языков.

  • Расширенная поддержка рефакторинга. Возможно, лучшая среди C++ IDE. Он позволяет вам переименовывать переменные и классы, извлекать код в отдельную функцию, перемещать элементы вверх/вниз по иерархии классов, перемещать и копировать код, и я, вероятно, не все рассмотрел.

  • Навигация по коду — позволяет Ctrl+щелчок переходить к определению, искать ссылки и перемещаться назад/вперед по местам кода, которые вы посетили.

  • У него очень хороший статический анализ. Вы можете увидеть и исправить большинство ошибок перед компиляцией кода один раз. Он также предупреждает о случаях, которые игнорируются другими IDE, например о неиспользуемых включениях.

  • Генерация кода. Вы можете автоматически генерировать объявления для неизвестных переменных или создавать новый класс с его исходными файлами и файлами заголовков.

Еще одна сильная сторона CLion заключается в том, что он использует файл CMake CMakeLists.txt в качестве файла проекта вместо использования нового формата. Это позволяет взаимозаменяемо разрабатывать проект с интегрированной средой разработки или без нее и упрощает импорт проектов в нее.

В настоящее время он стоит 100 долларов для личного использования и бесплатен для разработки с открытым исходным кодом.

Оруэлл Dev-C++

Давным-давно Dev-C++ был, возможно, бесплатной IDE C/C++ для Windows, но он содержал ошибки, а исходная версия не поддерживалась в течение довольно долгого времени. Версия Оруэлла исправляет многие известные проблемы. По крайней мере стоит проверить. Также стоит упомянуть еще одно ответвление под названием WX-Dev-C++ , которое может быть полезно для разработки графического интерфейса RAD, однако эта версия также не поддерживается.

Версия Orwell Dev-C++: версия (Версия Orwell Dev-C++) С сайта разработчика sourceforge WX-Dev-C++ (версия WX-Dev-C++) С сайта разработчика Исходная версия Dev-C++: (Оригинальная версия Dev-C++ :) С сайта разработчика

Функции, поддерживаемые всеми версиями:

  1. Поддержка компиляторов на основе GCC
  2. Встроенная отладка (с использованием GDB)
  3. Поддержка нескольких языков (локализация)
  4. Браузер классов
  5. Завершение кода
  6. Отладочная переменная Браузер
  7. Руководитель проекта
  8. Настраиваемый редактор подсветки синтаксиса
  9. Быстро создавайте Windows, консоли, статические библиотеки и библиотеки DLL.
  10. Поддержка шаблонов для создания собственных типов проектов
  11. Создание make-файла
  12. Редактировать и компилировать файлы ресурсов
  13. Менеджер инструментов
  14. Поддержка печати
  15. Найти и заменить объекты
  16. Менеджер пакетов для простой установки дополнительных библиотек
  17. Поддержка CVS
  18. Список дел
  19. Окно процессора

Версия WX расширяет это за счет:

  1. WYSIWYG редактор ресурсов wxWidgets

Версия Оруэлла расширяет это:

  1. MinGW GCC 4.8.1 32 бит
  2. TDM-GCC 4.8.1 32/64 бит
  3. Подсветка синтаксиса
  4. Завершение кода
  5. Показывает информацию о коде при наведении курсора на код
  6. Предоставляет редактируемые пользователем ярлыки и инструменты
  7. GPROF-профилирование
  8. Отладка GDB
  9. Расширения DevPak IDE

Пакеты разработки сообщества (плагины) также существуют. Хорошим сайтом для поиска является devpaks.org . Кроме того, кажется, что в этом внешнем потоке находятся расширения WX dev-pak для Orwell , но я их не тестировал.

В настоящее время я использую WxDev-C++ для разработки на C++, и я действительно не рекомендовал бы его, если вам не нужны WxWidgets. Даже тогда количество серьезных ошибок, особенно дизайнер GUI, не синхронизированный с кодом, делает Visual Studio предпочтительной средой для WxWidgets.
Winterblodd, да, хотелось бы, чтобы за ним лучше ухаживали. Вы пробовали Codeblocks? wiki.codeblocks.org/…
Я использовал Orwell, и хотя он пригоден для использования (и намного лучше, чем кровопролитие), ему все еще не хватает многих функций, которые я ищу. Я проверю WX, хотя.
Значит, только для Windows?

Создатель Qt

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

Плюсы:

  • Поставляется с дополнительным набором инструментов MinGW при установке с набором инструментов Qt и, тем не менее, может создавать проекты, отличные от Qt.
  • Интеграция цепочек инструментов MinGW и MSVC не требует дополнительных усилий, включая их отладку.
  • Поддержка CMake
  • Доступно большое количество плагинов
  • Полный набор функций IDE, которые можно ожидать от недавней IDE.

Минусы:

  • Трудно интегрировать набор инструментов C++, который не поставляется с установщиками Qt.
Я согласен, что это, безусловно, лучший вариант, особенно теперь, когда встроена модель кода clang и статический анализ. Сейчас он даже лучше, чем Intellisense. Все остальные IDE, упомянутые в этом вопросе, отстают на несколько лет (за исключением, может быть, CLion, который я не пробовал).

Джини

Согласно официальному сайту, «[i] он был разработан, чтобы предоставить небольшую и быструю IDE, которая имеет лишь несколько зависимостей от других пакетов. Она поддерживает множество типов файлов и имеет несколько приятных функций».

Это отличный редактор минимального программирования, который имеет порт для Windows . Он относительно дешевый ($0 <$100), работает на Windows 8, не делает никаких предположений о компиляторе, (насколько мне известно) поддерживает стандарт C++, поскольку по умолчанию использует GNU gcc/g++ для C/C++ (вы можете использовать любой установленный компилятор ), и обладает многими функциями, о которых вы просите. Хотя он немного более ограничен, чем некоторые другие корпоративные решения, особенно в средах с недостатком ресурсов, он может выстоять, поскольку:

Функции:

  1. Завершение кода/подсказка
  2. Помощь с отступами
  3. Подсветка синтаксиса
  4. ОБНОВЛЕНИЕ: он поддерживает минимальный рефакторинг и перекомпоновку (и есть инструменты/плагины, которые также могут это улучшить)
  5. Навигация по коду (Ctrl, если объявление находится в открытом файле)

В той же категории находится замечательная программа Notepad++ , а в Unix/GNULinux есть разновидности vim или emacs , но я бы порекомендовал Geany, так как она проста в использовании и почти не требует обучения, а также:

Также имеет дополнительно:

  • свободно
  • Кроссплатформенный
  • дает вам одинаковый внешний вид (хотя это легко настраивается) независимо от платформы
  • позволит поддерживать многоязычность (часто большие проекты могут использовать сценарии и т. д., и хорошо, если нужна только одна IDE)
  • Никаких предположений компилятора — его легко заставить использовать любую цепочку инструментов, совместимую с C++.
  • Очень настраиваемый
  • ОЧЕНЬ легкий
  • Полная интеграция терминала с системами POSIX (Linux)

Скриншот программного обеспечения, найденный в Интернете

Лично я почти исключительно использую эту IDE для быстрого написания кода в Linux с графическим интерфейсом. У него есть несколько очень хороших функций для C/C++, которые обычно зарезервированы для гораздо более крупных программ. Это быстро и может открыть практически любой документ небинарной формы. Он имеет приятные ключевые команды, такие как переключение строк, дублирование, многострочный отступ и управление комментариями. Вы можете использовать VIM внутри него (как часть доступа к терминалу, который он предоставляет). Это может сэкономить способы создания программного обеспечения, не требуя, чтобы проекты содержали свои собственные варианты сборки. Например, даже если нет make-файла (который можно использовать с функциональной клавишей), вы можете сохранить параметры сборки, которые можно выбрать в зависимости от типа файла. Это полезно, если есть несколько библиотек, которые вы часто используете и с которыми связываетесь, но хотите иметь возможность быстро что-то написать, скомпилировать и протестировать.g++ -Wall -o "%e" "%f" 'allegro-config --cflags --libs'может использоваться для компиляции программы Allegro4 или nvcc -arch=sm_20 -o "%e" *.o -lcudart 'pkg-config opencv --cflags --libs'для создания приложения CUDA, которое также использует OpenCV. После того, как вы сохраните их, их можно будет выбрать из раскрывающегося списка или в качестве функциональной клавиши для каждого файла .CPP или любого типа файла, с которым вы его связали. Я также обнаружил, что его отформатированный для печати и выделенный синтаксис код в формате PDF (с использованием Linux CUPS IIRC) очень полезен для передачи программной документации для занятий. Из-за того, что у меня очень мало ресурсов, он у меня есть на портативном Linux, и, сделав свою собственную настройку / настройку, с тех пор я сэкономил бесчисленное количество часов на каждом проекте. Чтобы добавить в существующий проект, просто создайте новый документ .CPP или откройте существующий из файлового менеджера, и вы уже работаете, а не настраиваете, строите шаблон, вручную добавляете библиотеки и т. д.

Объясните, как это хорошо поддерживает C++. Если это не так, это не совсем ответ.
Я объяснил, как это хорошо поддерживает С++, учитывая, как я его использую, и ответил на вопрос ОП.
Как это относится к рефакторингу? (OP: «как минимум переименовать переменные и т. д.») Это на самом деле очень сложно сделать правильно. Если Geany это делает (вы говорите нам), как она делает это «правильно»?

Код Visual Studio

Это гибкая IDE для многих языков программирования и очень хорошо поддерживает C++ через множество плагинов. Он был выпущен в 2015 году и активно поддерживается. Посмотрите эту цитату из Википедии :

Visual Studio Code — это редактор исходного кода, разработанный Microsoft для Windows, Linux и macOS. Он включает в себя поддержку отладки, встроенный элемент управления Git, подсветку синтаксиса, интеллектуальное завершение кода, фрагменты кода и рефакторинг кода. Его также можно настраивать, поэтому пользователи могут менять тему редактора, сочетания клавиш и настройки. Он бесплатный и с открытым исходным кодом, хотя официальная загрузка осуществляется по проприетарной лицензии.

Скриншот из Википедии