Complementos imprescindibles y algunas utilidades para el desarrollo de C \ C ++ en VS Code



Sorprendentemente, hasta ahora en Habré no hay una buena selección de complementos para Visual Studio Code para aquellos que escriben en C / C ++. Microsoft en su blog publicó solo un artículo , un nivel muy básico con instrucciones para la configuración. Pero la mayoría de los lectores de Habr, especialmente de los desarrolladores, no tendrán instrucciones tan detalladas. Solo hay unas pocas colecciones para desarrolladores web, pero no para C ++.

Esto probablemente se deba al hecho de que la mayoría de los desarrolladores de C ++ usan IDE pesados, principalmente Visual Studio, por supuesto.

Pero en Linux y MacOS con IDEs completos, no todo es tan simple, y no siempre se necesita un entorno de desarrollo difícil o simplemente no se quiere usar.

Quiero llamar su atención sobre complementos útiles que faciliten la vida y el trabajo, así como hablar sobre configuraciones y características útiles de VS Code que simplemente podría perderse.

La cuestión de considerar el IDE de código VS o simplemente el editor de código como uno muy holístico no es el propósito de este artículo. Todavía lo consideraré un IDE, ya que con un mínimo esfuerzo ofrece scripts IDE básicos, como la finalización automática y la depuración.

Un poco de historia


El primer IDE que utilicé cuando comencé como desarrollador fue, ya histórico, Borland C ++ 2.0. Luego me mudé a Visual Studio 6.0 y seguí siendo (y sigo siendo) un fanático de este IDE. Pero en algún momento se hizo necesario escribir bajo Linux (probablemente fue 2006). En Linux, al principio, me sorprendió la falta de un IDE serio: probé Eclipse, sufrí y escupí. No entraré en la historia, pero al final descubrí que Make, CMake, aprendí a escribir rápidamente los archivos apropiados, luego hubo scripts de enlace, gdb, kdb y muchas otras cosas interesantes. En este momento, amaba y usaba vim activamente durante 5 años, después de lo cual cambié gradualmente a Sublime Text, luego a su segunda versión y ahora a la tercera.

Ahora escribo menos código y estoy más involucrado en el desarrollo de productos y procesos, pero aún tengo que escribir periódicamente: estos son proyectos personales y ayudan a nuestros socios a integrar nuestro SDK.

Y dado que el SDK no es solo para Windows, sino también para Linux y MacOS, el código debe estar escrito en ellos. El año pasado probé VS Code y se convirtió en una buena alternativa para Sublime Text para mí.

Compárelos brevemente, luego Sublime Text, en mi opinión personal, ofrece más opciones para configurar y trabajar, pero VS Code ofrece más opciones. Y si no tiene una selección personal de extensiones para Sublime Text a mano, o si nunca ha usado este editor, entonces Visual Studio Code es una gran cosa.

Comenzaré con algunas extensiones muy útiles. No hay muchos de ellos para el desarrollador de C \ C ++ en VS Code, y el principal es, por supuesto:

C / C ++ para Visual Studio Code


Enlace del mercado

Esta es la extensión principal para admitir C \ C ++ en VS Code, que está desarrollando Microsoft. Una descripción detallada de todo lo que ofrece está en la página del mercado, pero aquí solo mencionaré lo más importante (en mi opinión, por supuesto):

  • Formateo de código (usando formato clang)
  • Autocompletar
  • Buscar caracteres por código
  • Vaya a Definición / Declaración (incluido Peek)
  • Navegación de clase / método
  • Ayuda de firma
  • Información rápida (desplazarse)
  • Garabatos de error

Soporte de depuración para aplicaciones Windows (PDB, MinGW / Cygwin), Linux y macOS
El artículo principal de Microsoft sobre la extensión y sus capacidades con bellas imágenes está aquí: enlace .

Cabe señalar que Microsoft es un gran tipo y actualiza constantemente esta extensión. Además, las nuevas características de esta extensión se publican solo en el blog de desarrollo de Microsoft y no son muy notables. Por lo tanto, decidí contar aquí sobre el más nuevo de ellos.

Configuraciones globales para IntelliSense


En mayo de 2018, VS Code agregó la capacidad de establecer cualquier parámetro para IntelliSense en settings.json de usuario. Esta configuración se aplica automáticamente a todos los proyectos.

Una cosa muy útil cuando la mayoría de los proyectos con los que trabaja utilizan un conjunto común de incluir, el mismo compilador, etc.



Soporte de terminal integrado para depuración


En diciembre de 2018, Microsoft agregó la capacidad de depurar aplicaciones C / C ++ en el terminal incorporado, en lugar de abrir una ventana separada con el terminal. Esta característica está controlada por el parámetro externalConsole en launch.json.



Hasta ahora, solo se admite cppdbg y solo en Linux y Windows, pero en MacOS también prometieron entregarlo pronto. Se ve así:



Comentarios para la documentación


Esta cosa fue agregada literalmente el mes pasado. Realmente no hay nada que contar aquí, así que solo da un ejemplo de Microsoft.

Escribimos una clase simple de Box y agregamos comentarios en el formato estándar:



Un comentario está asociado con clases o funciones a los miembros de la clase y se muestra en la información sobre herramientas al pasar el cursor sobre el objeto correspondiente.

Se ve así:



Trabajar con contenedores


En la última actualización del 6 de febrero, Microsoft agregó trabajo con C ++ en contenedores Docker. Ahora no solo puede recopilar código en contenedores, sino también depurarlo dentro de contenedores. Los detalles están en el blog de Microsoft .

Yo mismo no uso contenedores para el trabajo, no hay necesidad. Pero seguro que será útil para muchos, así que decidí incluir esto en el artículo.

Bueno, ahora volviendo a las otras extensiones para VS Code, que lo ayudarán con el desarrollo.

cquery


enlace de mercado

Otro complemento bastante global para desarrolladores C / C ++ / Objective-C en VS Code. La característica principal: la extensión fue diseñada y probada en proyectos muy grandes, por ejemplo, en Chromium. Por lo tanto, es útil cuando la extensión estándar de Microsoft y su IntelliSense pasan (esto sucede a menudo cuando tiene más de 100 MB de fuentes C ++).

La lista de todas las características principales es la siguiente:


Al principio quería traducir esta lista, pero luego me di cuenta de que la mayoría de los conceptos no tienen traducciones hermosas generalmente aceptadas, así que decidí dejarla como está. Siga los enlaces para obtener una descripción más detallada y una demostración de características específicas.

La extensión es muy útil, pero no ha habido actividad en github desde noviembre de 2018. Y a juzgar por el tema: ¿está muerto este proyecto? El proyecto # 867 realmente se detuvo en el desarrollo. El banner fue recogido por la bifurcación https://github.com/MaskRay/ccls , pero aún no lo he probado, por lo que no puedo recomendarlo. Lo más probable es que los ccls simplemente reemplacen a cquery con el tiempo.

Proyectos sencillos de C ++


enlace de mercado

Si las dos extensiones anteriores eran globales con muchas características, entonces realiza una función simple: crear un proyecto simple para MSVC, GCC o Clang.
Además capaz:

  • crear un archivo MAKE de muestra para el proyecto
  • crear configuraciones de VS Code para construir y ejecutar
  • crear configuraciones de VS Code para la depuración (compatible con Visual Studio Debugger, GDB y LLDB)
  • generar nuevas clases a partir de una pequeña lista de plantillas

Es útil tanto para principiantes como para desarrolladores experimentados. Ayudará a lanzar un proyecto simple de Helloworld cuando necesite verificar rápidamente algo.

Funciona así:



CMake Tools


enlace de mercado

Como su nombre lo indica, la extensión agrega soporte para CMake. Como se sugiere en los comentarios, por supuesto, puede prescribir todo a mano, pero con la extensión será más conveniente.
Después de la instalación, deberá realizar una configuración mínima. Seleccionar cadena de herramientas:

Luego seleccione la configuración para el ensamblaje:

Y eso es todo. Puedes trabajar
La extensión también sabe cómo generar archivos CMake simples para proyectos.

Árbol todo


enlace de mercado

Hay varias extensiones para crear listas TODO para VS Code. Puedes elegir cualquiera. Me gustó más que nada. El único inconveniente es que requiere https://github.com/BurntSushi/ripgrep , que no siempre está listo para usar y no es muy conveniente ponerlo. Todavía no está en los repositorios estándar de Debian.

El resultado del trabajo se ve así:



Gitlens


enlace de mercado

Como el nombre de la extensión implica, mejora el trabajo con git. Cabe señalar que, por defecto, VS Code ya tiene algún soporte para git, pero muy limitado.

La característica principal de GitLens es mostrar directamente en la línea editada quién y en qué commit lo cambió la última vez. La extensión también agrega una búsqueda avanzada en el historial de archivos, búsqueda en confirmaciones, una vista conveniente para comparar varias versiones de un archivo y mucho más. Para demostrar el trabajo, simplemente inserto un gif de la página del mercado, que muestra claramente las opciones de expansión.



Historia de Git


enlace de mercado

Otra extensión que mejora el trabajo con git, es decir, la visualización de la historia. ¿Por qué en GitLens nunca pude encontrar una muestra adecuada del historial del proyecto con todas las sucursales? Si alguien sabe cómo hacer una vista similar (ver más abajo) usando GitLens, asegúrese de escribir en los comentarios, se lo agradeceré.



vscode-icons


enlace de mercado

Una de las muchas extensiones que agrega iconos para archivos y directorios al panel del Explorador. Hay muchas extensiones en el mercado, y esta es la más popular. Siéntase libre de elegir cualquier otro, me gustaron estos íconos.



Sincronización de configuraciones


enlace de mercado

Otra extensión útil, cuyo propósito es obvio por el nombre.

Para sincronizar su configuración, use el token de cuenta de GitHub y Gist. Para mí personalmente, es una de las extensiones más útiles, ya que utilizo Windows, Linux y Mac.

Corrector ortográfico de código


enlace de mercado

Si su inglés todavía está lejos de ser ideal o si desea evitar errores tipográficos, entonces esta extensión definitivamente no será redundante. Si es necesario, puede agregar soporte para el idioma ruso .

De las buenas características, no solo enfatiza las palabras erróneas, sino que también ofrece las opciones correctas.



Wakatime


enlace de mercado
WakaTime es un servicio que muestra hermosas estadísticas \ gráficos \ métricas para su programación. La cosa es excepcionalmente estética, pero realmente me gusta. En consecuencia, la extensión agrega soporte para el servicio cuando se trabaja en VSCode. Puedes leer sobre el servicio aquí .

Un ejemplo de hermosos gráficos:



Las características principales del servicio son gratuitas y no requieren suscripción.

Eso es todo con extensiones. También me gustaría compartir algunas configuraciones útiles de VS Code, que pueden ser útiles para la comunidad.

Algunas configuraciones útiles


De forma predeterminada, VSCode envía telemetría cuando se bloquea, así como algunos datos e información de error en Microsoft. Si por alguna razón esto no le conviene, apague la configuración de forma segura:

  • Telemetría: Habilitar informe de bloqueo
  • Telemetría: habilite la telemetría

También aconsejo a todos que habiliten los archivos de autoguardado. La cosa es banal, pero es difícil negar su utilidad. He sido rescatado más de una vez. Por alguna razón, está desactivado de manera predeterminada.

  • Archivos: Guardar automáticamente

La siguiente configuración incluye la visualización de caracteres no imprimibles en el código. En mi opinión personal, es algo extremadamente útil que le permitirá notar de inmediato que el archivo en el próximo proyecto está formateado con pestañas, no espacios. Y, en general, le permitirá notar caracteres adicionales donde no deberían estar.

  • Editor: Render Whitespace

Para cualquiera que le guste el desplazamiento suave:

  • Desplazamiento suave

Mostrar variables directamente en el código durante la depuración. Otra cosa muy útil, que por alguna razón está apagada. Las personas con los ojos más grandes probablemente ya hayan notado un ejemplo de cómo funciona esta configuración en una de las capturas de pantalla anteriores, pero por si acaso, aplicaré una más

  • Valores en línea



Encontré la siguiente configuración solo cuando escribí un artículo. ZenMode le permite ocultar todas las ventanas y menús innecesarios y dejar solo el archivo de código actual. Ahora lo usaré constantemente en la tableta cuando tenga que probar algo en el código. En la tableta, el resto de las ventanas a menudo no son necesarias, y no hay suficiente espacio utilizable. Lo recomiendo

  • Zenmode

PS


Si alguien quiere compartir sus extensiones interesantes para VS Code o prestar atención a configuraciones útiles, bienvenido en el comentario. Me complace complementar el artículo para hacerlo aún más útil.

Source: https://habr.com/ru/post/440142/


All Articles