"" "
pygments.lexers.kusto
~~~~~~~~~~~~~~~~~~~~~
Lexers
for Kusto Query Language (KQL).
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE
for details.
"" "
from pygments.lexer
import RegexLexer, words
from pygments.token
import (Comment, Keyword, Name, Number, Punctuation,
String, Whitespace)
__all__ = [
"KustoLexer" ]
# Although these all seem to be keywords
# https://github.com/microsoft/Kusto-Query-Language/blob/master/src/Kusto.Language/Syntax/SyntaxFacts.cs
# it appears that only the ones with tags here
# https://github.com/microsoft/Kusto-Query-Language/blob/master/src/Kusto.Language/Parser/QueryGrammar.cs
# are highlighted in the Azure portal log query editor.
KUSTO_KEYWORDS = [
'and' ,
'as' ,
'between' ,
'by' ,
'consume' ,
'contains' ,
'containscs' ,
'count' ,
'distinct' ,
'evaluate' ,
'extend' ,
'facet' ,
'filter' ,
'find' ,
'fork' ,
'getschema' ,
'has' ,
'invoke' ,
'join' ,
'limit' ,
'lookup' ,
'make-series' ,
'matches regex' ,
'mv-apply' ,
'mv-expand' ,
'notcontains' ,
'notcontainscs' ,
'!contains' ,
'!has' ,
'!startswith' ,
'on' ,
'or' ,
'order' ,
'parse' ,
'parse-where' ,
'parse-kv' ,
'partition' ,
'print' ,
'project' ,
'project-away' ,
'project-keep' ,
'project-rename' ,
'project-reorder' ,
'range' ,
'reduce' ,
'regex' ,
'render' ,
'sample' ,
'sample-distinct' ,
'scan' ,
'search' ,
'serialize' ,
'sort' ,
'startswith' ,
'summarize' ,
'take' ,
'top' ,
'top-hitters' ,
'top-nested' ,
'typeof' ,
'union' ,
'where' ,
'bool' ,
'date' ,
'datetime' ,
'int' ,
'long' ,
'real' ,
'string' ,
'time'
]
# From
# https://github.com/microsoft/Kusto-Query-Language/blob/master/src/Kusto.Language/Syntax/SyntaxFacts.cs
KUSTO_PUNCTUATION = [
"(" ,
")" ,
"[" ,
"]" ,
"{" ,
"}" ,
"|" ,
"<|" ,
"+" ,
"-" ,
"*" ,
"/" ,
"%" ,
".." "!" ,
"<" ,
"<=" ,
">" ,
">=" ,
"=" ,
"==" ,
"!=" ,
"<>" ,
":" ,
";" ,
"," ,
"=~" ,
"!~" ,
"?" ,
"=>" ,
]
class KustoLexer(RegexLexer):
"" "For Kusto Query Language source code.
"" "
name =
"Kusto"
aliases = [
"kql" ,
"kusto" ]
filenames = [
"*.kql" ,
"*.kusto" ,
".csl" ]
url =
"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query "
version_added =
'2.17'
tokens = {
"root" : [
(r
"\s+" , Whitespace),
(words(KUSTO_KEYWORDS, suffix=r
"\b" ), Keyword),
(r
"//.*" , Comment),
(words(KUSTO_PUNCTUATION), Punctuation),
(r
"[^\W\d]\w*" , Name),
# Numbers can take the form 1, .1, 1., 1.1, 1.1111, etc.
(r
"\d+[.]\d*|[.]\d+" , Number.Float),
(r
"\d+" , Number.Integer),
(r
"'" , String,
"single_string" ),
(r
'"' , String,
"double_string" ),
(r
"@'" , String,
"single_verbatim" ),
(r
'@"' , String,
"double_verbatim" ),
(r
"```" , String,
"multi_string" ),
],
"single_string" : [
(r
"'" , String,
"#pop"),
(r
"\\." , String.Escape),
(r
"[^'\\]+" , String),
],
"double_string" : [
(r
'"' , String,
"#pop"),
(r
"\\." , String.Escape),
(r
'[^"\\]+' , String),
],
"single_verbatim" : [
(r
"'" , String,
"#pop"),
(r
"[^']+" , String),
],
"double_verbatim" : [
(r
'"' , String,
"#pop"),
(r
'[^"]+' , String),
],
"multi_string" : [
(r
"[^`]+" , String),
(r
"```" , String,
"#pop"),
(r
"`" , String),
],
}
Messung V0.5 C=94 H=91 G=92
¤ Dauer der Verarbeitung: 0.1 Sekunden
¤
*© Formatika GbR, Deutschland