package p import ( . "github.com/alecthomas/chroma" // nolint "github.com/alecthomas/chroma/lexers/internal" ) // Pkgconfig lexer. var Pkgconfig = internal.Register(MustNewLazyLexer( &Config{ Name: "PkgConfig", Aliases: []string{"pkgconfig"}, Filenames: []string{"*.pc"}, MimeTypes: []string{}, }, pkgconfigRules, )) func pkgconfigRules() Rules { return Rules{ "root": { {`#.*$`, CommentSingle, nil}, {`^(\w+)(=)`, ByGroups(NameAttribute, Operator), nil}, {`^([\w.]+)(:)`, ByGroups(NameTag, Punctuation), Push("spvalue")}, Include("interp"), {`[^${}#=:\n.]+`, Text, nil}, {`.`, Text, nil}, }, "interp": { {`\$\$`, Text, nil}, {`\$\{`, LiteralStringInterpol, Push("curly")}, }, "curly": { {`\}`, LiteralStringInterpol, Pop(1)}, {`\w+`, NameAttribute, nil}, }, "spvalue": { Include("interp"), {`#.*$`, CommentSingle, Pop(1)}, {`\n`, Text, Pop(1)}, {`[^${}#\n]+`, Text, nil}, {`.`, Text, nil}, }, } }