Skip to content

Commit e424fed

Browse files
scopalecthomas
authored andcommitted
lexers: match by known backup filename suffixes
1 parent 386cc48 commit e424fed

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

Diff for: lexers/internal/api.go

+25
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,17 @@ import (
1111
"github.com/alecthomas/chroma"
1212
)
1313

14+
var (
15+
backupSuffixes = [...]string{
16+
// Editor backups
17+
"~", ".bak", ".old", ".orig",
18+
// Debian and derivatives apt/dpkg
19+
".dpkg-dist", ".dpkg-old",
20+
// Red Hat and derivatives rpm
21+
".rpmnew", ".rpmorig", ".rpmsave",
22+
}
23+
)
24+
1425
// Registry of Lexers.
1526
var Registry = struct {
1627
Lexers chroma.Lexers
@@ -93,6 +104,13 @@ func Match(filename string) chroma.Lexer {
93104
for _, glob := range config.Filenames {
94105
if fnmatch.Match(glob, filename, 0) {
95106
matched = append(matched, lexer)
107+
} else {
108+
for _, suf := range &backupSuffixes {
109+
if fnmatch.Match(glob+suf, filename, 0) {
110+
matched = append(matched, lexer)
111+
break
112+
}
113+
}
96114
}
97115
}
98116
}
@@ -107,6 +125,13 @@ func Match(filename string) chroma.Lexer {
107125
for _, glob := range config.AliasFilenames {
108126
if fnmatch.Match(glob, filename, 0) {
109127
matched = append(matched, lexer)
128+
} else {
129+
for _, suf := range &backupSuffixes {
130+
if fnmatch.Match(glob+suf, filename, 0) {
131+
matched = append(matched, lexer)
132+
break
133+
}
134+
}
110135
}
111136
}
112137
}

0 commit comments

Comments
 (0)