Skip to content

Commit 7e282be

Browse files
committed
Update golangci-lint so we can force use of LazyLexer.
1 parent f387459 commit 7e282be

File tree

15 files changed

+193
-167
lines changed

15 files changed

+193
-167
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
- run:
2323
name: Prepare
2424
command: |
25-
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s v1.26.0
25+
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s v1.37.0
2626
mkdir ~/report
2727
when: always
2828
- run:

.golangci.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,17 @@ linters:
2525
- testpackage
2626
- godot
2727
- nestif
28+
- paralleltest
29+
- nlreturn
30+
- cyclop
31+
- exhaustivestruct
32+
- gci
33+
- gofumpt
34+
- errorlint
35+
- exhaustive
36+
- ifshort
37+
- wrapcheck
38+
- stylecheck
2839

2940
linters-settings:
3041
govet:
@@ -36,6 +47,11 @@ linters-settings:
3647
goconst:
3748
min-len: 8
3849
min-occurrences: 3
50+
forbidigo:
51+
forbid:
52+
- (Must)?NewLexer
53+
exclude_godoc_examples: false
54+
3955

4056
issues:
4157
max-per-linter: 0

coalesce_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
)
88

99
func TestCoalesce(t *testing.T) {
10-
lexer := Coalesce(MustNewLexer(nil, Rules{
10+
lexer := Coalesce(MustNewLexer(nil, Rules{ // nolint: forbidigo
1111
"root": []Rule{
1212
{`[!@#$%^&*()]`, Punctuation, nil},
1313
},

delegate_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
)
88

99
func makeDelegationTestLexers() (lang Lexer, root Lexer) {
10-
return MustNewLexer(nil, Rules{
10+
return MustNewLexer(nil, Rules{ // nolint: forbidigo
1111
"root": {
1212
{`\<\?`, CommentPreproc, Push("inside")},
1313
{`.`, Other, nil},
@@ -18,7 +18,7 @@ func makeDelegationTestLexers() (lang Lexer, root Lexer) {
1818
{`\s+`, Whitespace, nil},
1919
},
2020
}),
21-
MustNewLexer(nil, Rules{
21+
MustNewLexer(nil, Rules{ // nolint: forbidigo
2222
"root": {
2323
{`\bhello\b`, Keyword, nil},
2424
{`\b(world|there)\b`, Name, nil},

formatters/svg/svg.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ func maxLineWidth(lines [][]chroma.Token) int {
120120
for _, tokens := range lines {
121121
length := 0
122122
for _, token := range tokens {
123-
length += len(strings.Replace(token.String(), ` `, " ", -1))
123+
length += len(strings.ReplaceAll(token.String(), ` `, " "))
124124
}
125125
if length > maxWidth {
126126
maxWidth = length
@@ -136,7 +136,7 @@ func (f *Formatter) writeTokenBackgrounds(w io.Writer, lines [][]chroma.Token, s
136136
for index, tokens := range lines {
137137
lineLength := 0
138138
for _, token := range tokens {
139-
length := len(strings.Replace(token.String(), ` `, " ", -1))
139+
length := len(strings.ReplaceAll(token.String(), ` `, " "))
140140
tokenBackground := style.Get(token.Type).Background
141141
if tokenBackground.IsSet() && tokenBackground != style.Get(chroma.Background).Background {
142142
fmt.Fprintf(w, "<rect id=\"%s\" x=\"%dch\" y=\"%fem\" width=\"%dch\" height=\"1.2em\" fill=\"%s\" />\n", escapeString(token.String()), lineLength, 1.2*float64(index)+0.25, length, style.Get(token.Type).Background.String())

lexer_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ func TestTokenTypeClassifiers(t *testing.T) {
1313
}
1414

1515
func TestSimpleLexer(t *testing.T) {
16-
lexer, err := NewLexer(
16+
lexer, err := NewLexer( // nolint: forbidigo
1717
&Config{
1818
Name: "INI",
1919
Aliases: []string{"ini", "cfg"},

lexers/d/dylan.go

Lines changed: 57 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -6,69 +6,71 @@ import (
66
)
77

88
// Dylan lexer.
9-
var Dylan = internal.Register(MustNewLexer(
9+
var Dylan = internal.Register(MustNewLazyLexer(
1010
&Config{
1111
Name: "Dylan",
1212
Aliases: []string{"dylan"},
1313
Filenames: []string{"*.dylan", "*.dyl", "*.intr"},
1414
MimeTypes: []string{"text/x-dylan"},
1515
CaseInsensitive: true,
1616
},
17-
Rules{
18-
"root": {
19-
{`\s+`, Whitespace, nil},
20-
{`//.*?\n`, CommentSingle, nil},
21-
{`([a-z0-9-]+:)([ \t]*)(.*(?:\n[ \t].+)*)`, ByGroups(NameAttribute, Whitespace, LiteralString), nil},
22-
Default(Push("code")),
23-
},
24-
"code": {
25-
{`\s+`, Whitespace, nil},
26-
{`//.*?\n`, CommentSingle, nil},
27-
{`/\*`, CommentMultiline, Push("comment")},
28-
{`"`, LiteralString, Push("string")},
29-
{`'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\\'\n])'`, LiteralStringChar, nil},
30-
{`#b[01]+`, LiteralNumberBin, nil},
31-
{`#o[0-7]+`, LiteralNumberOct, nil},
32-
{`[-+]?(\d*\.\d+([ed][-+]?\d+)?|\d+(\.\d*)?e[-+]?\d+)`, LiteralNumberFloat, nil},
33-
{`[-+]?\d+`, LiteralNumberInteger, nil},
34-
{`#x[0-9a-f]+`, LiteralNumberHex, nil},
17+
func() Rules {
18+
return Rules{
19+
"root": {
20+
{`\s+`, Whitespace, nil},
21+
{`//.*?\n`, CommentSingle, nil},
22+
{`([a-z0-9-]+:)([ \t]*)(.*(?:\n[ \t].+)*)`, ByGroups(NameAttribute, Whitespace, LiteralString), nil},
23+
Default(Push("code")),
24+
},
25+
"code": {
26+
{`\s+`, Whitespace, nil},
27+
{`//.*?\n`, CommentSingle, nil},
28+
{`/\*`, CommentMultiline, Push("comment")},
29+
{`"`, LiteralString, Push("string")},
30+
{`'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\\'\n])'`, LiteralStringChar, nil},
31+
{`#b[01]+`, LiteralNumberBin, nil},
32+
{`#o[0-7]+`, LiteralNumberOct, nil},
33+
{`[-+]?(\d*\.\d+([ed][-+]?\d+)?|\d+(\.\d*)?e[-+]?\d+)`, LiteralNumberFloat, nil},
34+
{`[-+]?\d+`, LiteralNumberInteger, nil},
35+
{`#x[0-9a-f]+`, LiteralNumberHex, nil},
3536

36-
{`(\?\\?)([\w!&*<>|^$%@+~?/=-]+)(:)(token|name|variable|expression|body|case-body|\*)`,
37-
ByGroups(Operator, NameVariable, Operator, NameBuiltin), nil},
38-
{`(\?)(:)(token|name|variable|expression|body|case-body|\*)`,
39-
ByGroups(Operator, Operator, NameVariable), nil},
40-
{`(\?\\?)([\w!&*<>|^$%@+~?/=-]+)`, ByGroups(Operator, NameVariable), nil},
37+
{`(\?\\?)([\w!&*<>|^$%@+~?/=-]+)(:)(token|name|variable|expression|body|case-body|\*)`,
38+
ByGroups(Operator, NameVariable, Operator, NameBuiltin), nil},
39+
{`(\?)(:)(token|name|variable|expression|body|case-body|\*)`,
40+
ByGroups(Operator, Operator, NameVariable), nil},
41+
{`(\?\\?)([\w!&*<>|^$%@+~?/=-]+)`, ByGroups(Operator, NameVariable), nil},
4142

42-
{`(=>|::|#\(|#\[|##|\?\?|\?=|\?|[(){}\[\],.;])`, Punctuation, nil},
43-
{`:=`, Operator, nil},
44-
{`#[tf]`, Literal, nil},
45-
{`#"`, LiteralStringSymbol, Push("symbol")},
46-
{`#[a-z0-9-]+`, Keyword, nil},
47-
{`#(all-keys|include|key|next|rest)`, Keyword, nil},
48-
{`[\w!&*<>|^$%@+~?/=-]+:`, KeywordConstant, nil},
49-
{`<[\w!&*<>|^$%@+~?/=-]+>`, NameClass, nil},
50-
{`\*[\w!&*<>|^$%@+~?/=-]+\*`, NameVariableGlobal, nil},
51-
{`\$[\w!&*<>|^$%@+~?/=-]+`, NameConstant, nil},
52-
{`(let|method|function)([ \t]+)([\w!&*<>|^$%@+~?/=-]+)`, ByGroups(NameBuiltin, Whitespace, NameVariable), nil},
53-
{`(error|signal|return|break)`, NameException, nil},
54-
{`(\\?)([\w!&*<>|^$%@+~?/=-]+)`, ByGroups(Operator, Name), nil},
55-
},
56-
"comment": {
57-
{`[^*/]`, CommentMultiline, nil},
58-
{`/\*`, CommentMultiline, Push()},
59-
{`\*/`, CommentMultiline, Pop(1)},
60-
{`[*/]`, CommentMultiline, nil},
61-
},
62-
"symbol": {
63-
{`"`, LiteralStringSymbol, Pop(1)},
64-
{`[^\\"]+`, LiteralStringSymbol, nil},
65-
},
66-
"string": {
67-
{`"`, LiteralString, Pop(1)},
68-
{`\\([\\abfnrtv"\']|x[a-f0-9]{2,4}|[0-7]{1,3})`, LiteralStringEscape, nil},
69-
{`[^\\"\n]+`, LiteralString, nil},
70-
{`\\\n`, LiteralString, nil},
71-
{`\\`, LiteralString, nil},
72-
},
43+
{`(=>|::|#\(|#\[|##|\?\?|\?=|\?|[(){}\[\],.;])`, Punctuation, nil},
44+
{`:=`, Operator, nil},
45+
{`#[tf]`, Literal, nil},
46+
{`#"`, LiteralStringSymbol, Push("symbol")},
47+
{`#[a-z0-9-]+`, Keyword, nil},
48+
{`#(all-keys|include|key|next|rest)`, Keyword, nil},
49+
{`[\w!&*<>|^$%@+~?/=-]+:`, KeywordConstant, nil},
50+
{`<[\w!&*<>|^$%@+~?/=-]+>`, NameClass, nil},
51+
{`\*[\w!&*<>|^$%@+~?/=-]+\*`, NameVariableGlobal, nil},
52+
{`\$[\w!&*<>|^$%@+~?/=-]+`, NameConstant, nil},
53+
{`(let|method|function)([ \t]+)([\w!&*<>|^$%@+~?/=-]+)`, ByGroups(NameBuiltin, Whitespace, NameVariable), nil},
54+
{`(error|signal|return|break)`, NameException, nil},
55+
{`(\\?)([\w!&*<>|^$%@+~?/=-]+)`, ByGroups(Operator, Name), nil},
56+
},
57+
"comment": {
58+
{`[^*/]`, CommentMultiline, nil},
59+
{`/\*`, CommentMultiline, Push()},
60+
{`\*/`, CommentMultiline, Pop(1)},
61+
{`[*/]`, CommentMultiline, nil},
62+
},
63+
"symbol": {
64+
{`"`, LiteralStringSymbol, Pop(1)},
65+
{`[^\\"]+`, LiteralStringSymbol, nil},
66+
},
67+
"string": {
68+
{`"`, LiteralString, Pop(1)},
69+
{`\\([\\abfnrtv"\']|x[a-f0-9]{2,4}|[0-7]{1,3})`, LiteralStringEscape, nil},
70+
{`[^\\"\n]+`, LiteralString, nil},
71+
{`\\\n`, LiteralString, nil},
72+
{`\\`, LiteralString, nil},
73+
},
74+
}
7375
},
7476
))

lexers/j/javascript.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ var JavascriptRules = Rules{
6161
}
6262

6363
// Javascript lexer.
64-
var Javascript = internal.Register(MustNewLexer(
64+
var Javascript = internal.Register(MustNewLexer( // nolint: forbidigo
6565
&Config{
6666
Name: "JavaScript",
6767
Aliases: []string{"js", "javascript"},

lexers/lexers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// Sub-packages contain lexer implementations.
44
package lexers
55

6-
// nolint: golint
6+
// nolint
77
import (
88
"github.com/alecthomas/chroma"
99
_ "github.com/alecthomas/chroma/lexers/a"

0 commit comments

Comments
 (0)