Locally add prismjs
This commit is contained in:
parent
35af792c6a
commit
6aa044cf9b
701 changed files with 35787 additions and 0 deletions
99
node_modules/prismjs/components/prism-promql.js
generated
vendored
Normal file
99
node_modules/prismjs/components/prism-promql.js
generated
vendored
Normal file
|
@ -0,0 +1,99 @@
|
|||
// Thanks to: https://github.com/prometheus-community/monaco-promql/blob/master/src/promql/promql.ts
|
||||
// As well as: https://kausal.co/blog/slate-prism-add-new-syntax-promql/
|
||||
|
||||
(function (Prism) {
|
||||
// PromQL Aggregation Operators
|
||||
// (https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators)
|
||||
var aggregations = [
|
||||
'sum',
|
||||
'min',
|
||||
'max',
|
||||
'avg',
|
||||
'group',
|
||||
'stddev',
|
||||
'stdvar',
|
||||
'count',
|
||||
'count_values',
|
||||
'bottomk',
|
||||
'topk',
|
||||
'quantile'
|
||||
];
|
||||
|
||||
// PromQL vector matching + the by and without clauses
|
||||
// (https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching)
|
||||
var vectorMatching = [
|
||||
'on',
|
||||
'ignoring',
|
||||
'group_right',
|
||||
'group_left',
|
||||
'by',
|
||||
'without',
|
||||
];
|
||||
|
||||
// PromQL offset modifier
|
||||
// (https://prometheus.io/docs/prometheus/latest/querying/basics/#offset-modifier)
|
||||
var offsetModifier = ['offset'];
|
||||
|
||||
var keywords = aggregations.concat(vectorMatching, offsetModifier);
|
||||
|
||||
Prism.languages.promql = {
|
||||
'comment': {
|
||||
pattern: /(^[ \t]*)#.*/m,
|
||||
lookbehind: true
|
||||
},
|
||||
'vector-match': {
|
||||
// Match the comma-separated label lists inside vector matching:
|
||||
pattern: new RegExp('((?:' + vectorMatching.join('|') + ')\\s*)\\([^)]*\\)'),
|
||||
lookbehind: true,
|
||||
inside: {
|
||||
'label-key': {
|
||||
pattern: /\b[^,]+\b/,
|
||||
alias: 'attr-name',
|
||||
},
|
||||
'punctuation': /[(),]/
|
||||
},
|
||||
},
|
||||
'context-labels': {
|
||||
pattern: /\{[^{}]*\}/,
|
||||
inside: {
|
||||
'label-key': {
|
||||
pattern: /\b[a-z_]\w*(?=\s*(?:=|![=~]))/,
|
||||
alias: 'attr-name',
|
||||
},
|
||||
'label-value': {
|
||||
pattern: /(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,
|
||||
greedy: true,
|
||||
alias: 'attr-value',
|
||||
},
|
||||
'punctuation': /\{|\}|=~?|![=~]|,/,
|
||||
},
|
||||
},
|
||||
'context-range': [
|
||||
{
|
||||
pattern: /\[[\w\s:]+\]/, // [1m]
|
||||
inside: {
|
||||
'punctuation': /\[|\]|:/,
|
||||
'range-duration': {
|
||||
pattern: /\b(?:\d+(?:[smhdwy]|ms))+\b/i,
|
||||
alias: 'number',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
pattern: /(\boffset\s+)\w+/, // offset 1m
|
||||
lookbehind: true,
|
||||
inside: {
|
||||
'range-duration': {
|
||||
pattern: /\b(?:\d+(?:[smhdwy]|ms))+\b/i,
|
||||
alias: 'number',
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
'keyword': new RegExp('\\b(?:' + keywords.join('|') + ')\\b', 'i'),
|
||||
'function': /\b[a-z_]\w*(?=\s*\()/i,
|
||||
'number': /[-+]?(?:(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[-+]?\d+)?\b|\b(?:0x[0-9a-f]+|nan|inf)\b)/i,
|
||||
'operator': /[\^*/%+-]|==|!=|<=|<|>=|>|\b(?:and|or|unless)\b/i,
|
||||
'punctuation': /[{};()`,.[\]]/,
|
||||
};
|
||||
}(Prism));
|
Loading…
Add table
Add a link
Reference in a new issue