static analysis - programming - Herramienta de análisis de código estático(linter) para Go language
linter php (6)
Aquí hay tres herramientas relacionadas que tal vez quieras ver. Verás cómo analizar y analizar el código fuente de Go.
¿Existe una herramienta de análisis estático para el lenguaje Go, como lint
, pylint
, etc.? En cuanto a Google, no he encontrado nada relacionado.
Puedo hacer esto como un proyecto de grado superior en mi departamento. Debo estar seguro de que no se hace antes. Cualquier ayuda es apreciada.
En la última versión de go (1.3) godoc incluye algunas características de análisis estático:
Golint se acaba de lanzar esta semana: https://github.com/golang/lint
Hay un montón de linters con diferentes tipos de salida. Algunos incluyen compensaciones de columna, otros no incluyen ningún contexto, etc.
He escrito una herramienta llamada gometalinter que instala, ejecuta y normaliza la salida de todas las que conozco:
- structcheck (github.com/opennota/check/cmd/structcheck)
- golint (github.com/golang/lint/golint)
- gotype (code.google.com/p/go.tools/cmd/gotype)
- errcheck (github.com/kisielk/errcheck)
- defercheck (github.com/opennota/check/cmd/defercheck)
- varcheck (github.com/opennota/check/cmd/varcheck)
- ir veterinario
Si faltan algunos linters, me encantaría añadirlos.
También hay un plugin SublimeLinter para ello.
Intente megacheck .
megacheck ejecuta staticcheck, gosimple y no se usa a la vez. Debido a que es capaz de reutilizar el trabajo, será más rápido que ejecutar cada herramienta por separado.
El complemento Visual Studio Code with Go tiene el soporte de esta herramienta de linting. Para habilitarlo, navegue a Configuración de Visual Studio y establezca la propiedad go.lintTool en megacheck .
{
"go.lintTool": "megacheck"
}
Si desea ver rápidamente el estado de todo su proyecto Go, es decir, con varias herramientas de análisis estático:
Puedes echar un vistazo a:
http://goreportcard.com
(de http://gophergala.com )
Revisará cualquier problema reportado por esas cuatro herramientas en su repositorio de GitHub.