Skip to content

Commit

Permalink
Add lexers.MatchMimeType(mimeType).
Browse files Browse the repository at this point in the history
  • Loading branch information
alecthomas committed Sep 19, 2017
1 parent d80c30a commit 00d5486
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 4 deletions.
12 changes: 9 additions & 3 deletions cmd/chroma/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,15 @@ func listAll() {
filenames := []string{}
filenames = append(filenames, config.Filenames...)
filenames = append(filenames, config.AliasFilenames...)
fmt.Printf(" aliases: %s\n", strings.Join(config.Aliases, " "))
fmt.Printf(" filenames: %s\n", strings.Join(filenames, " "))
fmt.Printf(" mimetypes: %s\n", strings.Join(config.MimeTypes, " "))
if len(config.Aliases) > 0 {
fmt.Printf(" aliases: %s\n", strings.Join(config.Aliases, " "))
}
if len(filenames) > 0 {
fmt.Printf(" filenames: %s\n", strings.Join(filenames, " "))
}
if len(config.MimeTypes) > 0 {
fmt.Printf(" mimetypes: %s\n", strings.Join(config.MimeTypes, " "))
}
}
fmt.Println()
fmt.Printf("styles:")
Expand Down
14 changes: 13 additions & 1 deletion lexers/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,19 @@ func Get(name string) chroma.Lexer {
return nil
}

// Match returns all lexers matching filename.
// MatchMimeType attempts to find a lexer for the given MIME type.
func MatchMimeType(mimeType string) chroma.Lexer {
for _, l := range Registry.Lexers {
for _, lmt := range l.Config().MimeTypes {
if mimeType == lmt {
return l
}
}
}
return nil
}

// Match returns the first lexer matching filename.
func Match(filename string) chroma.Lexer {
filename = filepath.Base(filename)
for _, lexer := range Registry.Lexers {
Expand Down

0 comments on commit 00d5486

Please sign in to comment.