diff --git a/components/prism-jexl.js b/components/prism-jexl.js index db99c3e0f9..d948f2947d 100644 --- a/components/prism-jexl.js +++ b/components/prism-jexl.js @@ -1,13 +1,14 @@ Prism.languages.jexl = { - string: /(["'])(?:\\(?:[\s\S])|(?!\1)[^\\])*\1/, - transform: { - pattern: /\|\s*[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][a-zA-Zа-яА-Я0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*/, + 'string': /(["'])(?:\\[\s\S]|(?!\1)[^\\])*\1/, + 'transform': { + pattern: /(\|)\s*[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][a-zA-Zа-яА-Я0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*/, alias: "function", + lookbehind: true }, - function: /[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][a-zA-Zа-яА-Я0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*\s*(?=\()/, - number: /\b(?:(?:\d*\.\d+)|\d+)/, - operator: /[<>]=?|[!=]=?|-|\+|&&|\|\||\/\/?|[?:*^%]/, - boolean: /\b(?:true|false)\b/, - keyword: /\bin\b/, - punctuation: /[{}[\](),.]/, + 'function': /[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][a-zA-Zа-яА-Я0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*\s*(?=\()/, + 'number': /\b\d+(?:\.\d+)?\b|\B\.\d+\b/, + 'operator': /[<>!]=?|-|\+|&&|==|\|\|?|\/\/?|[?:*^%]/, + 'boolean': /\b(?:true|false)\b/, + 'keyword': /\bin\b/, + 'punctuation': /[{}[\](),.]/, }; diff --git a/components/prism-jexl.min.js b/components/prism-jexl.min.js index bc38e688df..af90d1034e 100644 --- a/components/prism-jexl.min.js +++ b/components/prism-jexl.min.js @@ -1 +1 @@ -Prism.languages.jexl={string:/(["'])(?:\\(?:[\s\S])|(?!\1)[^\\])*\1/,transform:{pattern:/\|\s*[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][a-zA-Zа-яА-Я0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*/,alias:"function"},function:/[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][a-zA-Zа-яА-Я0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*\s*(?=\()/,number:/\b(?:(?:\d*\.\d+)|\d+)/,operator:/[<>]=?|[!=]=?|-|\+|&&|\|\||\/\/?|[?:*^%]/,boolean:/\b(?:true|false)\b/,keyword:/\bin\b/,punctuation:/[{}[\](),.]/}; \ No newline at end of file +Prism.languages.jexl={string:/(["'])(?:\\[\s\S]|(?!\1)[^\\])*\1/,transform:{pattern:/(\|)\s*[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][a-zA-Zа-яА-Я0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*/,alias:"function",lookbehind:!0},function:/[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][a-zA-Zа-яА-Я0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*\s*(?=\()/,number:/\b\d+(?:\.\d+)?\b|\B\.\d+\b/,operator:/[<>!]=?|-|\+|&&|==|\|\|?|\/\/?|[?:*^%]/,boolean:/\b(?:true|false)\b/,keyword:/\bin\b/,punctuation:/[{}[\](),.]/}; \ No newline at end of file diff --git a/tests/languages/jexl/operator_feature.test b/tests/languages/jexl/operator_feature.test index 39d6931d24..c534dab044 100644 --- a/tests/languages/jexl/operator_feature.test +++ b/tests/languages/jexl/operator_feature.test @@ -2,7 +2,7 @@ + < <= > >= -= == +== ! != && || * @@ -18,7 +18,7 @@ ["operator", "+"], ["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="], - ["operator", "="], ["operator", "=="], + ["operator", "=="], ["operator", "!"], ["operator", "!="], ["operator", "&&"], ["operator", "||"], ["operator", "*"], diff --git a/tests/languages/jexl/transform_feature.test b/tests/languages/jexl/transform_feature.test index c88331365c..426621c54a 100644 --- a/tests/languages/jexl/transform_feature.test +++ b/tests/languages/jexl/transform_feature.test @@ -15,20 +15,22 @@ foo|bar( ---------------------------------------------------- [ - ["string", "\"foo\""], ["transform", "|bar"], - ["string", "\"foo\""], ["transform", "| bar"], + ["string", "\"foo\""], ["operator", "|"], ["transform", "bar"], + ["string", "\"foo\""], ["operator", "|"], ["transform", " bar"], ["string", "\"foo\""], - ["transform", "| \r\nbar"], + ["operator", "|"], ["transform", " \r\nbar"], - "\r\n\r\nfoo", ["transform", "|Ý"], + "\r\n\r\nfoo", ["operator", "|"], ["transform", "Ý"], "\r\n\r\nfoo", - ["transform", "|bar"], + ["operator", "|"], + ["transform", "bar"], ["punctuation", "("], ["punctuation", ")"], "\r\nfoo", - ["transform", "|bar"], + ["operator", "|"], + ["transform", "bar"], ["punctuation", "("], ["number", "1"], ["punctuation", ","], @@ -36,7 +38,8 @@ foo|bar( ["punctuation", ")"], "\r\nfoo", - ["transform", "|bar"], + ["operator", "|"], + ["transform", "bar"], ["punctuation", "("], ["number", "1"],