{
  "description": "Lint Go code with golangci-lint run. Output format flags, formatters and cache commands are left out.",
  "name": "golangci-lint",
  "subcommands": [
    {
      "name": "run",
      "description": "Run linters over Go packages. Pass --fix to apply automatic fixes in place.",
      "options": [
        {
          "names": [
            "--config",
            "-c"
          ],
          "description": "Config file",
          "args": {
            "name": "config",
            "isOptional": false,
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--no-config"
          ],
          "description": "Ignore config file"
        },
        {
          "names": [
            "--enable",
            "-E"
          ],
          "description": "Enable linters",
          "args": {
            "name": "enable",
            "isOptional": false,
            "isVariadic": true
          },
          "isRepeatable": true
        },
        {
          "names": [
            "--disable",
            "-D"
          ],
          "description": "Disable linters",
          "args": {
            "name": "disable",
            "isOptional": false,
            "isVariadic": true
          },
          "isRepeatable": true
        },
        {
          "names": [
            "--enable-only"
          ],
          "description": "Only these linters",
          "args": {
            "name": "enable_only",
            "isOptional": false,
            "isVariadic": true
          },
          "isRepeatable": true
        },
        {
          "names": [
            "--fast-only"
          ],
          "description": "Fast linters only"
        },
        {
          "names": [
            "--new",
            "-n"
          ],
          "description": "Only new issues"
        },
        {
          "names": [
            "--new-from-rev"
          ],
          "description": "New since revision",
          "args": {
            "name": "new_from_rev",
            "isOptional": false
          }
        },
        {
          "names": [
            "--fix"
          ],
          "description": "Rewrites source files in place.",
          "isDangerous": true
        },
        {
          "names": [
            "--timeout"
          ],
          "description": "Timeout",
          "args": {
            "name": "timeout",
            "isOptional": false,
            "suggestions": [
              {
                "name": "5m",
                "description": "5 minutes"
              }
            ]
          }
        },
        {
          "names": [
            "--build-tags"
          ],
          "description": "Build tags",
          "args": {
            "name": "build_tags",
            "isOptional": false
          }
        }
      ],
      "args": [
        {
          "name": "packages",
          "description": "Package patterns to lint.",
          "isOptional": true,
          "isVariadic": true,
          "suggestions": [
            {
              "name": "./...",
              "description": "All packages"
            }
          ]
        }
      ]
    }
  ]
}
