diff --git a/components/prism-rip.js b/components/prism-rip.js index a79b8777a0..d510bc574b 100644 --- a/components/prism-rip.js +++ b/components/prism-rip.js @@ -1,5 +1,23 @@ Prism.languages.rip = { - 'comment': /#.*/, + 'comment': { + pattern: /#.*/, + greedy: true + }, + + 'char': { + pattern: /\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/, + greedy: true + }, + 'string': { + pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/, + greedy: true + }, + + 'regex': { + pattern: /(^|[^/])\/(?!\/)(?:\[[^\n\r\]]*\]|\\.|[^/\\\r\n\[])+\/(?=\s*(?:$|[\r\n,.;})]))/, + lookbehind: true, + greedy: true + }, 'keyword': /(?:=>|->)|\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\b/, @@ -11,19 +29,7 @@ Prism.languages.rip = { 'time': /\b\d{2}:\d{2}:\d{2}\b/, 'datetime': /\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/, - 'character': /\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/, - - 'regex': { - pattern: /(^|[^/])\/(?!\/)(?:\[[^\n\r\]]*\]|\\.|[^/\\\r\n\[])+\/(?=\s*(?:$|[\r\n,.;})]))/, - lookbehind: true, - greedy: true - }, - 'symbol': /:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/, - 'string': { - pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/, - greedy: true - }, 'number': /[+-]?\b(?:\d+\.\d+|\d+)\b/, 'punctuation': /(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/, diff --git a/components/prism-rip.min.js b/components/prism-rip.min.js index 6e79112888..80e3425f76 100644 --- a/components/prism-rip.min.js +++ b/components/prism-rip.min.js @@ -1 +1 @@ -Prism.languages.rip={comment:/#.*/,keyword:/(?:=>|->)|\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\b/,builtin:/@|\bSystem\b/,boolean:/\b(?:false|true)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,character:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,regex:{pattern:/(^|[^/])\/(?!\/)(?:\[[^\n\r\]]*\]|\\.|[^/\\\r\n\[])+\/(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},number:/[+-]?\b(?:\d+\.\d+|\d+)\b/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/}; \ No newline at end of file +Prism.languages.rip={comment:{pattern:/#.*/,greedy:!0},char:{pattern:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,greedy:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},regex:{pattern:/(^|[^/])\/(?!\/)(?:\[[^\n\r\]]*\]|\\.|[^/\\\r\n\[])+\/(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},keyword:/(?:=>|->)|\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\b/,builtin:/@|\bSystem\b/,boolean:/\b(?:false|true)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,number:/[+-]?\b(?:\d+\.\d+|\d+)\b/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/}; \ No newline at end of file diff --git a/tests/languages/rip/character_feature.test b/tests/languages/rip/char_feature.test similarity index 54% rename from tests/languages/rip/character_feature.test rename to tests/languages/rip/char_feature.test index 919e738f13..83c145882e 100644 --- a/tests/languages/rip/character_feature.test +++ b/tests/languages/rip/char_feature.test @@ -1,14 +1,15 @@ -`a -`b -`Z ----------------------------------------------------- - -[ - ["character", "`a"], - ["character", "`b"], - ["character", "`Z"] -] - ----------------------------------------------------- - -Checks for characters. \ No newline at end of file +`a +`b +`Z + +---------------------------------------------------- + +[ + ["char", "`a"], + ["char", "`b"], + ["char", "`Z"] +] + +---------------------------------------------------- + +Checks for characters.