mirror of
https://github.com/alecthomas/chroma.git
synced 2025-01-14 02:23:16 +02:00
37 lines
924 B
Go
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)
|
|
}
|
|
}
|