Подтвердить что ты не робот

Инструмент анализа статического кода (linter) для языка Go

Есть ли инструмент статического анализа для Go, подобный языку lint, pylint и т.д.? Насколько я понял, я не нашел ничего связанного.

Я могу сделать это в качестве младшего старшего проекта в моем отделе. Я должен быть уверен, что это не сделано раньше. Любая помощь приветствуется.

4b9b3361

Ответ 2

Вот три связанных инструмента, которые вы можете посмотреть. Вы увидите, как анализировать и анализировать исходный код Go.

govet

gofix

gofmt

Ответ 4

Существует целая группа линтов с различными типами выходных данных. Некоторые из них включают смещения столбцов, некоторые из них не содержат контекста и т.д.

Я написал инструмент под названием gometalinter, который устанавливает, запускает и нормализует вывод всех тех, о которых я знаю:

  • structcheck (github.com/opennota/check/cmd/structcheck)
  • golint (github.com/golang/lint/golint)
  • getype (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)
  • go vet

Если нет каких-либо линтеров, я бы хотел их добавить.

В нем также есть плагин SublimeLinter .

Ответ 5

Если вы хотите быстро просмотреть состояние всего вашего проекта Go, то есть с помощью различных инструментов статического анализа:

Вы можете проверить:

http://goreportcard.com

(из http://gophergala.com)

Он проверит любую проблему, указанную этими четырьмя инструментами в вашем репозитории GitHub.

Ответ 6

Попробуйте megacheck.

megacheck запускает staticcheck, gosimple и не используется сразу. Поскольку он способен повторно использовать работу, он будет быстрее, чем запуск каждого инструмента отдельно.

Код Visual Studio с Включить плагин поддержка этого инструмента для литья. Чтобы включить его, перейдите к настройкам Visual Studio и установите для свойства go.lintTool значение megacheck.

{
  "go.lintTool": "megacheck"
}