C++ IDE para Windows con un amplio conjunto de funciones: finalización de código, refactorización, etc.

Estoy buscando un entorno de desarrollo integrado para C ++ que debería ejecutarse en Windows 8. Idealmente, el programa debería admitir las siguientes características:

  • Sugerencias/completado de código
  • asistencia de sangría
  • Resaltado de sintaxis
  • Refactorización (capacidad de cambiar el nombre de variables, clases, funciones, etc. como mínimo)
  • Código de navegación (análogo a ctrl+ clic en Eclipse Indigo)

Además, el IDE debe cumplir con los estándares , lo que significa que no utiliza un compilador o un analizador de código que, a sabiendas y deliberadamente, infrinja el estándar C++ (como lo hace Microsoft Visual Studio ), y notifica al usuario cuando escribe contenido no estándar. código compatible (a pesar de que un compilador podría aceptarlo).

En este momento no puedo adquirir productos que no sean gratuitos, pero estoy dispuesto a aceptar respuestas que describan un producto relativamente barato (digamos, <$100).

Es necesario hacer una distinción aquí, ya que el cumplimiento de los estándares está estrictamente relacionado con la cadena de herramientas subyacente utilizada para compilar su código. IOW, un IDE no puede violar el estándar c ++ porque no es responsable de convertir su código fuente en un código ejecutable: el compilador sí lo es.
Pruebe CLion de JetBrains.
¿Cuánta experiencia tienes con vi y/o emacs? Cuéntalo incluso si la experiencia fue hace décadas. (Al igual que nunca olvidas cómo andar en bicicleta, tampoco olvidas por completo cómo hacer cosas geniales con sorprendentemente pocas pulsaciones de teclas en vi).
@unforgettableid Desde que hice esta pregunta, en realidad cambié a usar principalmente vim como mi editor de elección.
"el IDE debe cumplir con los estándares": esta solicitud en realidad no tiene sentido para el IDE, ya que el cumplimiento de los estándares del trabajo recae en el compilador subyacente, no en el IDE. Por ejemplo, si usa Code::Blocks y le dice que use MSVC, entonces, por supuesto, el comportamiento no estándar que mencionó en su enlace funcionará de la misma manera.
@ApproachingDarknessFish: ¡Bien! ¿Alguna vez has probado el modo malvado ? Esta es una combinación de los excelentes mapas de teclas de Vim, más gran parte del poder de Emacs, juntos. Vea también el video de demostración de cuatro minutos en YouTube.
Observo que Clang y GCC intentan ser compatibles entre sí, y GCC tiene muchas extensiones más allá del estándar.
@ApproachingDarknessFish: considere no aceptar la respuesta de CodeBlocks, teniendo en cuenta los comentarios que, de hecho, parecen ser válidos.
@Brandin: sugiero una edición de la pregunta para que esa frase signifique lo que razonablemente puede significar y lo que OP probablemente realmente quiera.
@einpoklum Ahora veo que mi comentario en realidad duplica el primer comentario enumerado aquí. Aparentemente, el OP ignoró o no entendió el problema del cumplimiento de los estándares. La edición no ayudaría; solo educar al OP lo haría.
@Brandin El OP ha sido educado pero ya no está interesado en esta pregunta. Siéntase libre de editar como la comunidad lo crea conveniente.

Respuestas (8)

Código::Bloques

Recomendaría este para Windows si va a trabajar en un equipo que usa múltiples plataformas. Puede manejar los cambios de configuración, por lo que nunca notará que sus compañeros de equipo no están usando los mismos sistemas operativos. Es un IDE moderno muy poderoso, pero puede ser demasiado para algunos proyectos. Puede usar muchas cadenas de herramientas de compilación listas para usar y puede configurarse para casi cualquier cadena no estándar.

Como dice el sitio oficial, Code::Blocks es un "... código abierto, multiplataforma, libre de C, C++ y Fortran IDE".

Características

  1. Importa proyectos MSVC y proyectos Dev-C++
  2. Fuente abierta
  3. Nativamente multiplataforma
  4. Escrito en C++. No se necesitan lenguajes interpretados ni librerías propietarias.
  5. Extensible a través de complementos
  6. Resaltado de sintaxis, personalizable y extensible
  7. Sugerencias/completado de código
  8. asistencia de sangría
  9. Código de navegación

Se puede encontrar más información sobre las características en el sitio oficial aquí .

Captura de pantalla del sitio del desarrollador

¿Esto proporciona soporte de refactorización? ¿Cómo?
Code::Blocks ya no se mantiene. Yo recomendaría Qt Creator en su lugar. Es mejor de todos modos.
@Timmmm: De hecho, parece que el sitio web Code::Blocks no se ha actualizado en un año completo.
@Timmmm Code::Blocks sigue vivo.

Hay un paquete C/C++ para Netbeans .

Puedo verificar que tiene resaltado de sintaxis, finalización de código y asistencia para formato/sangrado de código.

Si bien no he usado el paquete de C++ personalmente, uso las variantes de Java y PHP a diario, y asumo, basándome en la existencia de la navegación cntrl+clic y la refactorización en ambos, que también deberían estar presentes en el paquete de C++.

El único inconveniente real que le he encontrado a Netbeans es que, a veces, después de unas pocas horas, puede volverse lento hasta el punto de no responder debido a (lo que supongo que es) una pérdida de memoria (al menos en Windows 7 de 64 bits), momento en el cual tiempo que necesita para eliminar el proceso java.exe asociado para liberar la memoria. Sin embargo, es posible que este problema se haya solucionado, ya que no lo he experimentado en algunos meses.

El Proyecto CDT proporciona un IDE C y C++ totalmente funcional basado en la plataforma Eclipse . Las características incluyen: soporte para la creación de proyectos y compilación administrada para varias cadenas de herramientas, compilación estándar, navegación de fuente, varias herramientas de conocimiento de fuente, como jerarquía de tipos, gráfico de llamadas, navegador de inclusión, navegador de definición de macros, editor de código con resaltado de sintaxis, plegado e hipervínculo navegación, refactorización de código fuente y generación de código, herramientas de depuración visual, incluida la memoria, los registros y los visores de desmontaje. ( Fuente )

Proyecto CDT Captura de pantalla de múltiples ventanas

No diría que es completamente funcional; después de todo, sus capacidades de refactorización son casi nulas y no ofrece resolución automática de errores ni resolución de advertencias como las que obtiene en Eclipse para Java, pero está llegando. Tal vez en una década más o menos se ponga bien... (no me malinterpreten, lo uso a diario).

CLión

Interfaz de usuario de CLion

Es un IDE multiplataforma con soporte avanzado de C++ conocido de ReSharper C++. El IDE es de JetBrains, la empresa detrás de IntelliJ Idea y Android Studio.

Funciona en Windows, Linux y MacOS.

En cuanto a características:

  • Finalización de código: completa nombres de variables, miembros de clases, nombres de archivos de encabezado y todo lo que esperaría de un IDE de C++.

  • Sangría: tiene sangría automática configurable.

  • El resaltado de sintaxis está presente para C++ y algunos lenguajes web.

  • Soporte de refactorización avanzada. Quizás el mejor entre los IDE de C++. Le permite cambiar el nombre de variables y clases, extraer código a una función separada, mover miembros hacia arriba o hacia abajo en una jerarquía de clases, mover y copiar el código, y probablemente no cubrí todo.

  • Navegación de código: permite Ctrl+Clic para ir a la definición, buscar referencias y avanzar/retroceder a través de las ubicaciones de código que visitó.

  • Tiene muy buen análisis estático. Puede ver y corregir la mayoría de los errores antes de compilar el código una vez. También advierte sobre los casos que otros IDE ignoran, como las inclusiones no utilizadas.

  • Generación de código: puede generar automáticamente declaraciones para variables desconocidas o crear una nueva clase con sus archivos fuente y de encabezado.

Otro punto fuerte de CLion es que utiliza un archivo CMake CMakeLists.txt como archivo de proyecto en lugar de utilizar un nuevo formato. Esto permite desarrollar un proyecto con o sin el IDE de manera intercambiable y facilita la importación de proyectos en él.

Actualmente, cuesta $ 100 para uso personal y es gratuito para el desarrollo de código abierto.

Orwell Dev-C++

Hace mucho tiempo, Dev-C++ era quizás el IDE de C/C++ gratuito en Windows, pero tenía errores y la versión original no se mantuvo durante bastante tiempo. La versión de Orwell corrige muchos problemas conocidos. Vale la pena echarle un vistazo al menos. También vale la pena mencionar otra bifurcación llamada WX-Dev-C++ , que podría ser útil para el desarrollo de la GUI de RAD, sin embargo, esta versión tampoco se mantiene.

Versión Orwell Dev-C++: Versión (Versión Orwell Dev-C++)Desde el sitio de sourceforge del desarrollador WX-Dev-C++ Versión (Versión WX-Dev-C++) Desde el sitio del desarrollador original Dev-C++: (Versión original Dev-C++:)Del sitio del desarrollador

Características que todas las versiones admiten:

  1. Compatibilidad con compiladores basados ​​en GCC
  2. Depuración integrada (usando GDB)
  3. Soporte para múltiples idiomas (localización)
  4. Navegador de clases
  5. Finalización de código
  6. Navegador de variables de depuración
  7. Gerente de proyecto
  8. Editor de resaltado de sintaxis personalizable
  9. Cree rápidamente Windows, consola, bibliotecas estáticas y archivos DLL
  10. Soporte de plantillas para crear sus propios tipos de proyectos.
  11. Creación de archivos MAKE
  12. Editar y compilar archivos de recursos
  13. Administrador de herramientas
  14. Soporte de impresión
  15. Buscar y reemplazar instalaciones
  16. Administrador de paquetes, para una fácil instalación de bibliotecas complementarias
  17. Soporte CVS
  18. Lista de quehaceres
  19. Ventana de la CPU

La versión WX amplía esto con:

  1. Editor de recursos WYSIWYG wxWidgets

La versión de Orwell amplía esto con:

  1. MinGW GCC 4.8.1 32 bits
  2. TDM-GCC 4.8.1 32/64 bits
  3. Resaltado de sintaxis
  4. Finalización de código
  5. Muestra información sobre el código cuando se desplaza sobre el código
  6. Proporciona accesos directos y herramientas editables por el usuario
  7. Perfilado GPROF
  8. Depuración de GDB
  9. Extensiones IDE Devpak

También existen dev-pak comunitarios (complementos). Un buen sitio para encontrar algunos es devpaks.org . Además, parece que hay extensiones WX dev-pak para Orwell ubicadas en este hilo externo , pero no las he probado.

Actualmente uso WxDev-C++ para mi desarrollo en C++, y realmente no lo recomendaría si no necesita WxWidgets. Incluso entonces, la cantidad de errores importantes que tiene, especialmente el diseñador de GUI que no está sincronizado con el código, hace que Visual Studio sea un entorno preferible para WxWidgets.
winterblodd, sí, desearía que se mantuviera mejor. ¿Has probado Codeblocks? wiki.codeblocks.org/…
He usado Orwell y, aunque es utilizable (y mucho mejor que el derramamiento de sangre), todavía carece de muchas de las características que estoy buscando. Sin embargo, revisaré WX.
Entonces, ¿es solo para Windows?

Creador Qt

El IDE ahora, en tiempos de Qt5, ha madurado lo suficiente como para ser realmente la primera opción para la mayoría de los desarrolladores de Qt. Esto requería un conjunto bastante grande de funciones, lo que hace que el IDE ahora también se pueda usar muy bien para proyectos que no son de Qt.

Pros:

  • Viene con una cadena de herramientas MinGW opcional cuando se instala con un kit de herramientas Qt y, sin embargo, puede crear proyectos que no sean Qt.
  • La integración de las cadenas de herramientas de MinGW y MSVC se realiza sin esfuerzo adicional, incluida la depuración con estas.
  • Soporte de CMake
  • Gran cantidad de complementos disponibles
  • Conjunto completo de funciones IDE que uno podría esperar de un IDE reciente.

Contras:

  • Difícil de integrar una cadena de herramientas de C++ que no viene con los instaladores de Qt
Estoy de acuerdo en que este es, con mucho, el mejor, especialmente ahora que el modelo de código clang y el análisis estático están incorporados. En realidad, ahora es mejor que Intellisense. Todos los demás IDE mencionados en esta pregunta tienen años de retraso (excepto quizás CLion, que no he probado).

geany

Según el sitio oficial, "fue desarrollado para proporcionar un IDE pequeño y rápido, que tiene solo unas pocas dependencias de otros paquetes. Admite muchos tipos de archivos y tiene algunas características interesantes".

Este es un gran editor de programación mínima que tiene un puerto de Windows . Es relativamente barato ($0 < $100), se ejecuta en Windows 8, no hace suposiciones sobre el compilador, (AFAIK) mantiene el estándar C++ ya que usa GNU gcc/g++ de forma predeterminada para C/C++ (puede usar cualquier compilador instalado , sin embargo), y tiene muchas de las funciones que está solicitando. Aunque es un poco más limitada que algunas de las otras soluciones empresariales, especialmente en entornos que carecen de recursos, puede valerse por sí misma ya que:

Características:

  1. Sugerencias/completado de código
  2. asistencia de sangría
  3. Resaltado de sintaxis
  4. ACTUALIZACIÓN: Admite refactorización y reflujo mínimos (y hay herramientas/complementos que también pueden mejorar esto)
  5. Navegación de código (Ctrl si la declaración está en un archivo abierto)

Está en una categoría similar el increíble programa Notepad ++ , y las potencias de Unix/GNULinux , las variedades vim o emacs , pero recomendaría Geany ya que es fácil de usar con una curva de aprendizaje de casi 0, y:

También tiene además:

  • libre
  • plataforma cruzada
  • le brinda la misma apariencia (aunque esto es altamente personalizable) sin importar la plataforma
  • permitirá el soporte multilenguaje (a menudo, los proyectos grandes pueden usar secuencias de comandos, etc. y es bueno necesitar solo un IDE)
  • Sin suposiciones del compilador: es fácil hacer que use cualquier cadena de herramientas compatible con C ++
  • Muy personalizable
  • MUY ligero
  • Completa integración de terminales bajo sistemas POSIX (Linux)

Captura de pantalla encontrada en línea del software

Personalmente, uso casi exclusivamente este IDE cuando escribo código rápidamente en Linux con una GUI. Tiene algunas características muy buenas para C/C++ que normalmente se reservan para programas mucho más grandes. Es rápido y puede abrir casi cualquier documento de formulario no binario. Tiene buenos comandos clave como cambio de líneas, duplicación y sangría de varias líneas y control de comentarios. Puede usar VIM dentro de él (como parte del acceso a la terminal que proporciona). Puede ahorrar formas de compilar software, sin necesidad de que los proyectos contengan sus propias opciones de compilación. Por ejemplo, incluso si no hay un archivo MAKE (que se puede usar con una tecla de función), puede guardar las opciones de compilación que se pueden seleccionar según el tipo de archivo. Esto es útil si hay varias bibliotecas que usa con frecuencia y con las que se vincula, pero desea poder escribir algo rápidamente, compilarlo y probarlo.g++ -Wall -o "%e" "%f" 'allegro-config --cflags --libs'podría usarse para compilar un programa Allegro4 o nvcc -arch=sm_20 -o "%e" *.o -lcudart 'pkg-config opencv --cflags --libs'para construir una aplicación CUDA que también use OpenCV. Una vez que los guarda, se pueden seleccionar desde un cuadro desplegable o como una tecla de función para cada archivo .CPP o cualquier tipo de archivo con el que lo haya asociado. También he encontrado que su código impreso y resaltado por sintaxis en PDF (usando Linux CUPS IIRC) es muy útil para entregar la documentación del programa para las clases. Siendo tan escasos los recursos, lo tengo en un Linux portátil, y habiendo realizado mi propia instalación/configuración, he ahorrado un número incontable de horas en cada proyecto desde entonces. Para agregar a un proyecto existente, simplemente cree un nuevo documento .CPP o abra uno existente desde el administrador de archivos, y ya está trabajando, en lugar de configurar, construir a partir de una plantilla, agregar bibliotecas manualmente, etc.

Explique cómo esto es compatible con C++. Si no es así, esto no es realmente una respuesta.
He explicado cómo esto es compatible con C ++, dada la forma en que lo uso, y respondí la pregunta del OP.
¿Cómo aborda la refactorización? (OP: "cambiar el nombre de las variables, etc. como mínimo") Esto es realmente muy difícil de hacer bien. Si Geany lo hace (usted nos dice), ¿cómo lo hace de una manera "correcta"?

código de estudio visual

Este es un IDE flexible para muchos lenguajes de programación y admite muy bien C++ a través de muchos complementos. Fue lanzado en 2015 y se mantiene activamente. Vea esta cita de Wikipedia :

Visual Studio Code es un editor de código fuente desarrollado por Microsoft para Windows, Linux y macOS. Incluye soporte para depuración, control de Git incorporado, resaltado de sintaxis, finalización de código inteligente, fragmentos y refactorización de código. También es personalizable, por lo que los usuarios pueden cambiar el tema del editor, los atajos de teclado y las preferencias. Es gratuito y de código abierto, aunque la descarga oficial se realiza bajo licencia propietaria.

Captura de pantalla de Wikipedia