annotate vendor/github.com/alecthomas/chroma/v2/lexers/go.go @ 66:787b5ee0289d draft

Use vendored modules Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author yakumo.izuru
date Sun, 23 Jul 2023 13:18:53 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
1 package lexers
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
2
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
3 import (
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
4 "strings"
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
5
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
6 . "github.com/alecthomas/chroma/v2" // nolint
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
7 )
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
8
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
9 // Go lexer.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
10 var Go = Register(MustNewLexer(
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
11 &Config{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
12 Name: "Go",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
13 Aliases: []string{"go", "golang"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
14 Filenames: []string{"*.go"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
15 MimeTypes: []string{"text/x-gosrc"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
16 EnsureNL: true,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
17 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
18 goRules,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
19 ).SetAnalyser(func(text string) float32 {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
20 if strings.Contains(text, "fmt.") && strings.Contains(text, "package ") {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
21 return 0.5
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
22 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
23 if strings.Contains(text, "package ") {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
24 return 0.1
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
25 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
26 return 0.0
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
27 }))
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
28
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
29 func goRules() Rules {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
30 return Rules{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
31 "root": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
32 {`\n`, Text, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
33 {`\s+`, Text, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
34 {`\\\n`, Text, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
35 {`//(.*?)\n`, CommentSingle, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
36 {`/(\\\n)?[*](.|\n)*?[*](\\\n)?/`, CommentMultiline, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
37 {`(import|package)\b`, KeywordNamespace, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
38 {`(var|func|struct|map|chan|type|interface|const)\b`, KeywordDeclaration, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
39 {Words(``, `\b`, `break`, `default`, `select`, `case`, `defer`, `go`, `else`, `goto`, `switch`, `fallthrough`, `if`, `range`, `continue`, `for`, `return`), Keyword, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
40 {`(true|false|iota|nil)\b`, KeywordConstant, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
41 {Words(``, `\b(\()`, `uint`, `uint8`, `uint16`, `uint32`, `uint64`, `int`, `int8`, `int16`, `int32`, `int64`, `float`, `float32`, `float64`, `complex64`, `complex128`, `byte`, `rune`, `string`, `bool`, `error`, `uintptr`, `print`, `println`, `panic`, `recover`, `close`, `complex`, `real`, `imag`, `len`, `cap`, `append`, `copy`, `delete`, `new`, `make`), ByGroups(NameBuiltin, Punctuation), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
42 {Words(``, `\b`, `uint`, `uint8`, `uint16`, `uint32`, `uint64`, `int`, `int8`, `int16`, `int32`, `int64`, `float`, `float32`, `float64`, `complex64`, `complex128`, `byte`, `rune`, `string`, `bool`, `error`, `uintptr`), KeywordType, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
43 {`\d+i`, LiteralNumber, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
44 {`\d+\.\d*([Ee][-+]\d+)?i`, LiteralNumber, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
45 {`\.\d+([Ee][-+]\d+)?i`, LiteralNumber, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
46 {`\d+[Ee][-+]\d+i`, LiteralNumber, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
47 {`\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)`, LiteralNumberFloat, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
48 {`\.\d+([eE][+\-]?\d+)?`, LiteralNumberFloat, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
49 {`0[0-7]+`, LiteralNumberOct, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
50 {`0[xX][0-9a-fA-F_]+`, LiteralNumberHex, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
51 {`0b[01_]+`, LiteralNumberBin, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
52 {`(0|[1-9][0-9_]*)`, LiteralNumberInteger, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
53 {`'(\\['"\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])'`, LiteralStringChar, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
54 {"(`)([^`]*)(`)", ByGroups(LiteralString, UsingLexer(TypeRemappingLexer(GoTextTemplate, TypeMapping{{Other, LiteralString, nil}})), LiteralString), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
55 {`"(\\\\|\\"|[^"])*"`, LiteralString, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
56 {`(<<=|>>=|<<|>>|<=|>=|&\^=|&\^|\+=|-=|\*=|/=|%=|&=|\|=|&&|\|\||<-|\+\+|--|==|!=|:=|\.\.\.|[+\-*/%&])`, Operator, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
57 {`([a-zA-Z_]\w*)(\s*)(\()`, ByGroups(NameFunction, UsingSelf("root"), Punctuation), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
58 {`[|^<>=!()\[\]{}.,;:]`, Punctuation, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
59 {`[^\W\d]\w*`, NameOther, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
60 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
61 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
62 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
63
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
64 var GoHTMLTemplate = Register(DelegatingLexer(HTML, MustNewXMLLexer(
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
65 embedded,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
66 "embedded/go_template.xml",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
67 ).SetConfig(
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
68 &Config{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
69 Name: "Go HTML Template",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
70 Aliases: []string{"go-html-template"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
71 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
72 )))
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
73
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
74 var GoTextTemplate = Register(MustNewXMLLexer(
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
75 embedded,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
76 "embedded/go_template.xml",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
77 ).SetConfig(
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
78 &Config{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
79 Name: "Go Text Template",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
80 Aliases: []string{"go-text-template"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
81 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
82 ))