| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package lintcmd
- import (
- "strings"
- "honnef.co/go/tools/lintcmd/runner"
- )
- func parseDirectives(dirs []runner.SerializedDirective) ([]ignore, []diagnostic) {
- var ignores []ignore
- var diagnostics []diagnostic
- for _, dir := range dirs {
- cmd := dir.Command
- args := dir.Arguments
- switch cmd {
- case "ignore", "file-ignore":
- if len(args) < 2 {
- p := diagnostic{
- Diagnostic: runner.Diagnostic{
- Position: dir.NodePosition,
- Message: "malformed linter directive; missing the required reason field?",
- Category: "compile",
- },
- Severity: severityError,
- }
- diagnostics = append(diagnostics, p)
- continue
- }
- default:
- // unknown directive, ignore
- continue
- }
- checks := strings.Split(args[0], ",")
- pos := dir.NodePosition
- var ig ignore
- switch cmd {
- case "ignore":
- ig = &lineIgnore{
- File: pos.Filename,
- Line: pos.Line,
- Checks: checks,
- Pos: dir.DirectivePosition,
- }
- case "file-ignore":
- ig = &fileIgnore{
- File: pos.Filename,
- Checks: checks,
- }
- }
- ignores = append(ignores, ig)
- }
- return ignores, diagnostics
- }
|