.gitignore added
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / honnef.co / go / tools@v0.1.1 / lintcmd / directives.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/honnef.co/go/tools@v0.1.1/lintcmd/directives.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/honnef.co/go/tools@v0.1.1/lintcmd/directives.go
new file mode 100644 (file)
index 0000000..e35b9c7
--- /dev/null
@@ -0,0 +1,55 @@
+package lintcmd
+
+import (
+       "strings"
+
+       "honnef.co/go/tools/lintcmd/runner"
+)
+
+func parseDirectives(dirs []runner.SerializedDirective) ([]ignore, []problem) {
+       var ignores []ignore
+       var problems []problem
+
+       for _, dir := range dirs {
+               cmd := dir.Command
+               args := dir.Arguments
+               switch cmd {
+               case "ignore", "file-ignore":
+                       if len(args) < 2 {
+                               p := problem{
+                                       Diagnostic: runner.Diagnostic{
+                                               Position: dir.NodePosition,
+                                               Message:  "malformed linter directive; missing the required reason field?",
+                                               Category: "compile",
+                                       },
+                                       Severity: severityError,
+                               }
+                               problems = append(problems, 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, problems
+}