1
0
mirror of https://github.com/alecthomas/chroma.git synced 2025-01-14 02:23:16 +02:00
chroma/_tools/exercise/main.go
2017-09-19 14:15:33 +10:00

37 lines
924 B
Go

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)
}
}