Formatters

Format Staticcheck’s output in different ways

Text

Text is the default output formatter. It formats problems using the following format: file:line:col: message. This format is commonly used by compilers and linters, and is understood by most editors.

Example output

go/src/fmt/print.go:1069:15: this value of afterIndex is never used (SA4006)

Stylish

Stylish is a formatter designed for human consumption. It groups results by file name and breaks up the various pieces of information into columns. Additionally, it displays a final summary.

This output format is not suited for automatic consumption by tools and may change between versions.

go/src/fmt/fmt_test.go
(43, 2)     S1021   should merge variable declaration with assignment on next line
(1185, 10)  SA9003  empty branch

go/src/fmt/print.go
(77, 18)    ST1006  methods on the same type should have the same receiver name (seen 3x "b", 1x "bp")
(1069, 15)  SA4006  this value of afterIndex is never used

go/src/fmt/scan.go
(465, 5)  ST1012  error var complexError should have name of the form errFoo
(466, 5)  ST1012  error var boolError should have name of the form errFoo

✖ 6 problems (6 errors, 0 warnings)

JSON

The JSON formatter emits one JSON object per problem found – that is, it is a stream of objects, not an array. Most fields should be self-explanatory.

The severity field may be one of "error", "warning" or "ignored". Whether a problem is an error or a warning is determined by the -fail flag. The value "ignored" is used for problems that were ignored, if the -show-ignored flag was provided.

Example output

Note that actual output is not formatted nicely. The example has been formatted to improve readability.

{
  "code": "SA4006",
  "severity": "error",
  "location": {
    "file": "/usr/lib/go/src/fmt/print.go",
    "line": 1082,
    "column": 15
  },
  "end": {
    "file": "/usr/lib/go/src/fmt/print.go",
    "line": 1082,
    "column": 25
  },
  "message": "this value of afterIndex is never used"
}