1package r 2 3import ( 4 . "github.com/alecthomas/chroma" // nolint 5 "github.com/alecthomas/chroma/lexers/internal" 6) 7 8// Reg lexer. 9var Reg = internal.Register(MustNewLexer( 10 &Config{ 11 Name: "reg", 12 Aliases: []string{"registry"}, 13 Filenames: []string{"*.reg"}, 14 MimeTypes: []string{"text/x-windows-registry"}, 15 }, 16 Rules{ 17 "root": { 18 {`Windows Registry Editor.*`, Text, nil}, 19 {`\s+`, Text, nil}, 20 {`[;#].*`, CommentSingle, nil}, 21 {`(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$`, ByGroups(Keyword, Operator, NameBuiltin, Keyword), nil}, 22 {`("(?:\\"|\\\\|[^"])+")([ \t]*)(=)([ \t]*)`, ByGroups(NameAttribute, Text, Operator, Text), Push("value")}, 23 {`(.*?)([ \t]*)(=)([ \t]*)`, ByGroups(NameAttribute, Text, Operator, Text), Push("value")}, 24 }, 25 "value": { 26 {`-`, Operator, Pop(1)}, 27 {`(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+)`, ByGroups(NameVariable, Punctuation, LiteralNumber), Pop(1)}, 28 {`.+`, LiteralString, Pop(1)}, 29 Default(Pop(1)), 30 }, 31 }, 32)) 33