package p import ( . "github.com/alecthomas/chroma" // nolint "github.com/alecthomas/chroma/lexers/internal" ) // PowerQuery lexer. var PowerQuery = internal.Register(MustNewLazyLexer( &Config{ Name: "PowerQuery", Aliases: []string{"powerquery", "pq"}, Filenames: []string{"*.pq"}, MimeTypes: []string{"text/x-powerquery"}, DotAll: true, CaseInsensitive: true, }, powerqueryRules, )) func powerqueryRules() Rules { return Rules{ "root": { {`\s+`, Text, nil}, {`//.*?\n`, CommentSingle, nil}, {`/\*.*?\*/`, CommentMultiline, nil}, {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, {`(and|as|each|else|error|false|if|in|is|let|meta|not|null|or|otherwise|section|shared|then|true|try|type)\b`, Keyword, nil}, {`(#binary|#date|#datetime|#datetimezone|#duration|#infinity|#nan|#sections|#shared|#table|#time)\b`, KeywordType, nil}, {`(([a-zA-Z]|_)[\w|._]*|#"[^"]+")`, Name, nil}, {`0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?`, LiteralNumberHex, nil}, {`([0-9]+\.[0-9]+|\.[0-9]+)([eE][0-9]+)?`, LiteralNumberFloat, nil}, {`[0-9]+`, LiteralNumberInteger, nil}, {`[\(\)\[\]\{\}]`, Punctuation, nil}, {`\.\.|\.\.\.|=>|<=|>=|<>|[@!?,;=<>\+\-\*\/&]`, Operator, nil}, }, } }