Este es un complemento de análisis de código C/C ++ para VSCODE que muestra los informes de errores detectados por el analizador estático Clang y los analizadores Tidy Clang, utilizando CodeChecker como un backend.

PATH .compile_commands.json .F9 / Shift-F9 de forma predeterminada) 


CodeChecker funciona leyendo una base de datos de compilación generada, a menudo llamada compile_commands.json , y ejecutando análisis específicos basados en eso.
CMake tiene soporte incorporado para generar una base de datos de compilación. Establezca la variable de entorno CMAKE_EXPORT_COMPILE_COMMANDS=ON , y la base de datos de compilación debe estar dentro de su carpeta de compilación. Si está utilizando la extensión CMake Tools para el código VS, puede agregar este indicador a la configuración de extensión en Cmake > Build Environment .
make y otros sistemas de compilación no tienen soporte incorporado para generar una base de datos de compilación, pero CodeChecker puede generar uno basado en el comando de compilación. Para generar uno, puede usar el comando CodeChecker log -b "[full build command]" -o .codechecker/compile_commands.json .
Para automatizar el proceso, la extensión proporciona formas de ejecutar el comando CodeChecker log automáticamente. Primero, en la configuración de extensión, configure CodeChecker > Executor > Log build command , y luego use la tarea VS Código o el comando VS Code CodeChecker: Run CodeChecker Log para ejecutar el análisis. También puede ejecutar CodeChecker: Preview CodeChecker log in terminal para tener más control de grano fino sobre los parámetros pasados a CodeChecker.
La extensión utiliza CodeChecker versión 6.18.2 o posterior. Si su ruta de instalación es diferente, o CodeChecker no está en la variable de entorno PATH , la ruta se puede establecer manualmente en Preferences > Settings > Extensions > CodeChecker > Executable path .
La extensión puede ejecutar un análisis de CodeChecker en su proyecto, ya sea al guardar un archivo o cuando se usa uno de los comandos CodeChecker: Analyze . Puede detener el análisis haciendo clic en el botón Cancelar en la notificación de CodeChecker: los resultados parciales se guardan automáticamente.
El análisis es completamente configurable, y la línea de comando CodeChecker resultante se puede ver previamente con el comando CodeChecker: Show full command line Command (para argumentos compatibles, ejecute CodeChecker analyze --help ). La configuración del espacio de trabajo actual se puede configurar en la pestaña del espacio de trabajo en la configuración. El análisis automático sobre el ahorro también se puede configurar.
Se puede encontrar información detallada sobre las opciones de configuración en Configuración.
La extensión proporciona los siguientes comandos:
| Dominio | Descripción |
|---|---|
CodeChecker: Analyze current file | Analiza el archivo fuente abierto actualmente usando CodeChecker. También se puede llamar haciendo clic en el botón Re-analyze current file en el panel lateral de CodeChecker.Útil cuando la Run On Save se apaga en la configuración del complemento. |
CodeChecker: Analyze selected files... | Analiza los archivos seleccionados por el usuario, utilizando CodeChecker. Acepta múltiples archivos como entrada. |
CodeChecker: Analyze entire project | Analiza todo el proyecto usando CodeChecker. También se puede llamar haciendo clic en el botón Re-analyze entire project en el panel lateral de CodeChecker.Advertencia: un análisis completo puede llevar minutos, o incluso horas en proyectos más grandes. |
CodeChecker: Stop running CodeChecker instance | Detiene el análisis actualmente en ejecución. Los resultados parciales se guardan y actualizan. |
CodeChecker: Run CodeChecker log | Actualiza la base de datos de compilación, mediante la creación del proyecto actual. También está disponible una variante con un comando de compilación especificado por el usuario personalizado. |
CodeChecker: Preview CodeChecker log in terminal | El comando de registro de CodeChecker actual se pegan en una nueva ventana de terminal, donde se puede editar antes de ejecutarlo. |
CodeChecker: Show database setup dialog | Muestra el cuadro de diálogo para seleccionar la ruta a una base de datos de compilación existente, o para crear una nueva. |
CodeChecker: Next reproduction step ,CodeChecker: Previous reproduction step | Se mueve entre los pasos de una ruta de reproducción mostrada. También puede navegar directamente al paso de un informe a través del panel lateral de CodeChecker. KeyBinds predeterminados: Ctrl-F7 , Ctrl-Shift-F7 respectivamente. |
CodeChecker: Show full CodeChecker analyze command line | Muestra la línea completa de comandos de CodeChecker utilizada para analizar archivos. Útil si desea revisar las opciones del analizador antes de ejecutarse, o si desea ejecutar el análisis manualmente. |
CodeChecker: Show Output | Se centra en la salida de CodeChecker en el editor. Aquí se muestran los registros del complemento, así como la salida de las ejecuciones anteriores de CodeChecker. |
CodeChecker: Reload metadata | Reparar el archivo metadata.json de CodeChecker. También se puede llamar haciendo clic en el botón Reload CodeChecker metadata en el panel lateral de CodeChecker. |
Los comandos de análisis también están disponibles en forma de tarea:
| Tarea | Comando equivalente |
|---|---|
{ type: "CodeChecker", taskType: "currentFile" } | CodeChecker: Analyze current file |
{ type: "CodeChecker", taskType: "selectedFiles", selectedFiles: [] } | CodeChecker: Analyze selected files...Los archivos seleccionados se enumeran en la matriz selectedFiles , utilizando rutas completas. |
{ type: "CodeChecker", taskType: "project" } | CodeChecker: Analyze entire project |
{ type: "CodeChecker log" } | CodeChecker: Run CodeChecker log |
{ type: "CodeChecker log", customBuildCommand: "..." } | CodeChecker: Run CodeChecker log with custom build command |
Dado que las rutas relacionadas con CodeChecker varían mucho entre los sistemas, se proporcionan la siguiente configuración, accesible a través del menú Configuración:
| Nombre | Descripción |
|---|---|
| CodeChecker> Backend> Carpeta de salida (predeterminado: ${workspaceFolder}/.codechecker ) | La carpeta de salida donde se almacenan los archivos de análisis CodeChecker. |
| CodeChecker> Backend> Ruta de la base de datos de compilación (predeterminado: (vacío) ) | Ruta a una base de datos de compilación personalizada, en el caso de un sistema de compilación personalizado. El cuadro de diálogo Configuración de la base de datos establece la ruta solo para el espacio de trabajo actual. Deje en blanco para usar la base de datos en la carpeta de salida de CodeChecker, o para usar la autodetección de CodeChecker para espacios de trabajo de múltiples raíces. |
| CodeChecker> Editor> Severidades de errores personalizados (predeterminado: null ) | Controle cómo se muestra un error en el editor, dependiendo de cuál sea su gravedad. Los errores se pueden mostrar como 'error', 'advertencia', 'información' o 'pista'. Por defecto, todo excepto la gravedad del 'estilo' se muestra como un error. Configurado como una matriz, como { "UNSPECIFIED": "Warning", "LOW": "Warning" } |
| CodeChecker> Editor> Mostrar el cuadro de diálogo de la base de datos (predeterminado: on ) | Controla el diálogo al abrir un espacio de trabajo sin una base de datos de compilación. |
| CodeChecker> Editor> Habilitar Codelens (predeterminado: on ) | Habilite Codelens para mostrar la ruta de reproducción en el editor. |
| CodeChecker> Ejecutor> Habilitar notificaciones (predeterminado: on ) | Habilitar notificaciones de tostadas relacionadas con CodeChecker. |
| CodeChecker> Ejecutor> ruta ejecutable (predeterminado: CodeChecker ) | Ruta al ejecutable de CodeChecker. Puede ser un ejecutable en la variable de entorno PATH , o una ruta absoluta a una. |
| CodeChecker> Ejecutor> Tiempo de espera de análisis (predeterminado: 60 ) | El tiempo de espera (en segundos) para cada análisis individual ejecutado por el comando CodeChecker Analyizar: establecido en 0 para deshabilitar el tiempo de espera. |
| CodeChecker> Ejecutor> Recuento de subprocesos (predeterminado: (vacío) ) | Recuento de subprocesos de CodeChecker: deje vacío para usar todos los hilos. |
| CodeChecker> Ejecutor> Argumentos (predeterminado: (vacío) ) | Argumentos adicionales a CodeChecker analyze . Por ejemplo, si desea utilizar un archivo de configuración para CodeChecker Pass '--config <Eftig.json>'. Para los argumentos compatibles, ejecute CodeChecker analyze --help .NOTA: La línea de comandos resultante se puede obtener previsualización con el comando CodeChecker: Show full CodeChecker analyze command line . |
| CodeChecker> Ejecutor> Comando de compilación de registros (predeterminado: make ) | El comando de compilación predeterminado utilizado al ejecutar CodeChecker log a través de comandos o tareas. |
| CodeChecker> Ejecutor> Argumentos de registro (predeterminado: (vacío) ) | Argumentos adicionales al CodeChecker log .Nota: La línea de comandos resultante se puede obtener previsualizando con el comando CodeChecker: Preview CodeChecker log in terminal . |
| CodeChecker> Ejecutor> Ejecutar en guardar (predeterminado: on ) | Controla automáticamente CodeChecker al guardar un archivo. |
Nota : Si ya ha instalado esta extensión desde el mercado, desinstale primero para evitar conflictos con su propia construcción.
Esta extensión usa Node.js (V12+) e hilo (V2+). Las extensiones de código VS recomendadas son ESLint y TypeScript+Webpack Problem Matcher
Para construir y ejecutar la extensión, haga lo siguiente:
yarn install --immutable , para instalar dependenciascode . ). Para ejecutar las pruebas, seleccione las pruebas de extensión como configuración de depuración activa o ejecución yarn run test .
La extensión se libera bajo la licencia Apache 2.0, la misma licencia que CodeChecker.