|
- package s
-
- import (
- . "github.com/alecthomas/chroma" // nolint
- "github.com/alecthomas/chroma/lexers/internal"
- )
-
- var SYSTEMD = internal.Register(MustNewLazyLexer(
- &Config{
- Name: "SYSTEMD",
- Aliases: []string{"systemd"},
- // Suspects: man systemd.index | grep -E 'systemd\..*configuration'
- Filenames: []string{"*.automount", "*.device", "*.dnssd", "*.link", "*.mount", "*.netdev", "*.network", "*.path", "*.scope", "*.service", "*.slice", "*.socket", "*.swap", "*.target", "*.timer"},
- MimeTypes: []string{"text/plain"},
- },
- systemdRules,
- ))
-
- func systemdRules() Rules {
- return Rules{
- "root": {
- {`\s+`, Text, nil},
- {`[;#].*`, Comment, nil},
- {`\[.*?\]$`, Keyword, nil},
- {`(.*?)(=)(.*)(\\\n)`, ByGroups(NameAttribute, Operator, LiteralString, Text), Push("continuation")},
- {`(.*?)(=)(.*)`, ByGroups(NameAttribute, Operator, LiteralString), nil},
- },
- "continuation": {
- {`(.*?)(\\\n)`, ByGroups(LiteralString, Text), nil},
- {`(.*)`, LiteralString, Pop(1)},
- },
- }
- }
|