summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-jq.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/prism/prism-jq.js')
-rw-r--r--public/prism/prism-jq.js75
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);