package main import ( "fmt" "io/ioutil" "github.com/alecthomas/chroma/formatters" "github.com/alecthomas/chroma/lexers" "github.com/alecthomas/chroma/styles" "gopkg.in/alecthomas/kingpin.v3-unstable" ) var ( filesArgs = kingpin.Arg("file", "Files to use to exercise lexers.").Required().ExistingFiles() ) func main() { kingpin.CommandLine.Help = "Exercise linters against a list of files." kingpin.Parse() writer, err := formatters.NoOp.Format(ioutil.Discard, styles.SwapOff) kingpin.FatalIfError(err, "") for _, file := range *filesArgs { lexer := lexers.Match(file) if lexer == nil { fmt.Printf("warning: could not find lexer for %q\n", file) continue } text, err := ioutil.ReadFile(file) kingpin.FatalIfError(err, "") err = lexer.Tokenise(nil, string(text), writer) kingpin.FatalIfError(err, "%s failed to tokenise %q", lexer.Config().Name, file) fmt.Printf("ok: %q\n", file) } }