forked from PrismJS/prism
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprism-promql.min.js
More file actions
1 lines (1 loc) · 1.83 KB
/
Copy pathprism-promql.min.js
File metadata and controls
1 lines (1 loc) · 1.83 KB
1
var aggregations=["sum","min","max","avg","group","stddev","stdvar","count","count_values","bottomk","topk","quantile"],functions=["abs","absent","ceil","changes","clamp_max","clamp_min","day_of_month","day_of_week","days_in_month","delta","deriv","exp","floor","histogram_quantile","holt_winters","hour","idelta","increase","irate","label_join","label_replace","ln","log2","log10","minute","month","predict_linear","rate","resets","round","scalar","sort","sort_desc","sqrt","time","timestamp","vector","year"],aggregationsOverTime=[];aggregations.forEach(function(e){aggregationsOverTime.push(e+"_over_time")});var vectorMatching=["on","ignoring","group_right","group_left","by","without"],operators=["\\+","-","\\*","/","%","\\^","==","!=",">","<",">=","<=","and","or","unless"],offsetModifier=["offset"],keywords=aggregations.concat(functions).concat(aggregationsOverTime).concat(vectorMatching).concat(offsetModifier);Prism.languages.promql={comment:{pattern:/^\s*#.*/m},"context-aggregation":{pattern:new RegExp("((?:"+vectorMatching.join("|")+")\\s*)\\([^)]*\\)"),lookbehind:!0,inside:{"label-key":{pattern:/\b[^,]*\b/,alias:"attr-name"}}},"context-labels":{pattern:/\{[^}]*\}/,inside:{"label-key":{pattern:/[a-z_]\w*(?=\s*(?:=~?|![=~]))/,alias:"attr-name"},"label-value":{pattern:/"(?:\\.|[^\\"])*"/,alias:"attr-value"},punctuation:/\{|\}|=~?|![=~]/}},function:new RegExp("\\b(?:"+keywords.join("|")+")(?=\\s*\\()","i"),"context-range":[{pattern:/\[[^\]]*\]/,inside:{punctuation:/\[|\]/,"range-duration":{pattern:/\b\d+[smhdwy]\b/i,alias:"number"}}},{pattern:/(offset\s+)\w+/,lookbehind:!0,inside:{"range-duration":{pattern:/\b\d+[smhdwy]\b/i,alias:"number"}}}],number:/\b-?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/,operator:new RegExp("/[-+/%^*~]|=~?|![=~]|&&?|(?:\\|\\|?)|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:"+operators.join("|")+")\\b","i"),punctuation:/[{};()`,.[\]]/};