diff options
Diffstat (limited to 'public/prism/prism-jq.js')
| -rw-r--r-- | public/prism/prism-jq.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/public/prism/prism-jq.js b/public/prism/prism-jq.js new file mode 100644 index 0000000..a020ed1 --- /dev/null +++ b/public/prism/prism-jq.js @@ -0,0 +1,75 @@ +(function (Prism) { + var interpolation = /\\\((?:[^()]|\([^()]*\))*\)/.source; + var string = RegExp( + /(^|[^\\])"(?:[^"\r\n\\]|\\[^\r\n(]|__)*"/.source.replace( + /__/g, + function () { + return interpolation; + } + ) + ); + var stringInterpolation = { + interpolation: { + pattern: RegExp(/((?:^|[^\\])(?:\\{2})*)/.source + interpolation), + lookbehind: true, + inside: { + content: { + pattern: /^(\\\()[\s\S]+(?=\)$)/, + lookbehind: true, + inside: null, // see below + }, + punctuation: /^\\\(|\)$/, + }, + }, + }; + + var jq = (Prism.languages.jq = { + comment: /#.*/, + property: { + pattern: RegExp(string.source + /(?=\s*:(?!:))/.source), + lookbehind: true, + greedy: true, + inside: stringInterpolation, + }, + string: { + pattern: string, + lookbehind: true, + greedy: true, + inside: stringInterpolation, + }, + + function: { + pattern: /(\bdef\s+)[a-z_]\w+/i, + lookbehind: true, + }, + + variable: /\B\$\w+/, + 'property-literal': { + pattern: /\b[a-z_]\w*(?=\s*:(?!:))/i, + alias: 'property', + }, + keyword: + /\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\b/, + boolean: /\b(?:false|true)\b/, + number: /(?:\b\d+\.|\B\.)?\b\d+(?:[eE][+-]?\d+)?\b/, + + operator: [ + { + pattern: /\|=?/, + alias: 'pipe', + }, + /\.\.|[!=<>]?=|\?\/\/|\/\/=?|[-+*/%]=?|[<>?]|\b(?:and|not|or)\b/, + ], + 'c-style-function': { + pattern: /\b[a-z_]\w*(?=\s*\()/i, + alias: 'function', + }, + punctuation: /::|[()\[\]{},:;]|\.(?=\s*[\[\w$])/, + dot: { + pattern: /\./, + alias: 'important', + }, + }); + + stringInterpolation.interpolation.inside.content.inside = jq; +})(Prism); |
