Saltar al contenido principal

Usar Clang-Tidy en el código de C++

clang-tidy es una herramienta para comprobar automáticamente el código C/C++/Objetivo-C en busca de violaciones de estilo, errores de programación, y mejores prácticas.

La integración clang-tidy de Electron se proporciona como un script de linter que puede ejecutarse con npm run lint:clang-tidy. Mientras que clang-tidy comprueba tus archivos en disco, necesitas haber construido Electron para que sepas qué banderas del compilador se utilizaron. Hay una opción requerida para el script --output-dir, que le dice al script de qué directorio de compilación debe obtener la información. Un uso típico sería: npm run lint:clang-tidy --out-dir ../out/Testing

Si no se proporcionan los nombres de los archivos, se comprobarán todos los archivos C/C++/Objective-C. Puede proporcionar una lista de archivos a comprobar pasando los nombres de los archivos después de las opciones: npm run lint:clang-tidy --out-dir ../out/Testing shell/browser/api/electron_api_app.cc

Mientras que clang-tidy tiene una lista larga de posibles verificaciones, en Electron solo unos pocos están habilitados por defecto. Por el momento Electron no tiene una configuración de .clang-tidy, así que clang-tidy encontrará el de Chromium src/.clang-tidy y utilizará las comprobaciones que Chromium ha habilitado. Puede cambiar las verificaciones que se ejecutan utilizando la opción --checks=. Esto se pasa directamente a clang-tidy, por lo que consulte su documentación para obtener más detalles. Se pueden utilizar comodines, y las comprobaciones pueden inhabilitarse utilizando el prefijo -. By default any checks listed are added to those in .clang-tidy, so if you'd like to limit the checks to specific ones you should first exclude all checks then add back what you want, like --checks=-*,performance*.

Ejecutar clang-tidy es bastante lento - internamente compila cada archivo y luego ejecuta las verificaciones por lo que siempre será algún factor más lento que la compilación. Mientras que puedes usar ejecuciones paralelas para acelerarlo usando la opción --jobs|-j, clang-tidy también utiliza mucha memoria durante sus comprobaciones, por lo que fácilmente puede ejecutar con errores por falta de memoria. Como tal, el número predeterminado de puestos de trabajo es uno.