From 80d3b96869e7b4c0808ecb755fa1d48cb7103ce9 Mon Sep 17 00:00:00 2001 From: Alec Thomas Date: Wed, 27 Sep 2017 22:01:03 +1000 Subject: [PATCH] Ensure class names from default set exist. --- formatters/html/html.go | 5 ++++- remap_test.go | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/formatters/html/html.go b/formatters/html/html.go index 336a5bb..17a129a 100644 --- a/formatters/html/html.go +++ b/formatters/html/html.go @@ -246,11 +246,14 @@ func (f *Formatter) styleToCSS(style *chroma.Style) map[chroma.TokenType]string classes := map[chroma.TokenType]string{} bg := style.Get(chroma.Background) // Convert the style. - for _, t := range style.Types() { + for t := range chroma.StandardTypes { entry := style.Get(t) if t != chroma.Background { entry = entry.Sub(bg) } + if entry.IsZero() { + continue + } classes[t] = StyleEntryToCSS(entry) } classes[chroma.Background] += f.tabWidthStyle() diff --git a/remap_test.go b/remap_test.go index 55d8f0f..7aa25c5 100644 --- a/remap_test.go +++ b/remap_test.go @@ -13,8 +13,8 @@ func TestRemappingLexer(t *testing.T) { {`\w+`, Name, nil}, }, }) - lexer = TypeRemappingLexer(lexer, TypeRemappingMap{ - {Name, Keyword}: {"if", "else"}, + lexer = TypeRemappingLexer(lexer, TypeMapping{ + {Name, Keyword, []string{"if", "else"}}, }) it, err := lexer.Tokenise(nil, `if true then print else end`)