From 809af0d91c530b2f8fa01d7f6e42cb982e9b3dcb Mon Sep 17 00:00:00 2001 From: Michael Schmidt Date: Fri, 10 Dec 2021 14:49:54 +0100 Subject: [PATCH] Reason: Use standard tokens correctly (#3251) --- components/prism-reason.js | 11 ++++------- components/prism-reason.min.js | 2 +- tests/languages/reason/char_feature.test | 19 +++++++++++++++++++ tests/languages/reason/character_feature.test | 19 ------------------- 4 files changed, 24 insertions(+), 27 deletions(-) create mode 100644 tests/languages/reason/char_feature.test delete mode 100644 tests/languages/reason/character_feature.test diff --git a/components/prism-reason.js b/components/prism-reason.js index 4dce938b06..74fdfb5ba6 100644 --- a/components/prism-reason.js +++ b/components/prism-reason.js @@ -9,15 +9,12 @@ Prism.languages.reason = Prism.languages.extend('clike', { 'operator': /\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/ }); Prism.languages.insertBefore('reason', 'class-name', { - 'character': { + 'char': { pattern: /'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/, - alias: 'string' - }, - 'constructor': { - // Negative look-ahead prevents from matching things like String.capitalize - pattern: /\b[A-Z]\w*\b(?!\s*\.)/, - alias: 'variable' + greedy: true }, + // Negative look-ahead prevents from matching things like String.capitalize + 'constructor': /\b[A-Z]\w*\b(?!\s*\.)/, 'label': { pattern: /\b[a-z]\w*(?=::)/, alias: 'symbol' diff --git a/components/prism-reason.min.js b/components/prism-reason.min.js index 0d4abf0a57..e574faf9f9 100644 --- a/components/prism-reason.min.js +++ b/components/prism-reason.min.js @@ -1 +1 @@ -Prism.languages.reason=Prism.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),Prism.languages.insertBefore("reason","class-name",{character:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,alias:"string"},constructor:{pattern:/\b[A-Z]\w*\b(?!\s*\.)/,alias:"variable"},label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete Prism.languages.reason.function; \ No newline at end of file +Prism.languages.reason=Prism.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),Prism.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete Prism.languages.reason.function; \ No newline at end of file diff --git a/tests/languages/reason/char_feature.test b/tests/languages/reason/char_feature.test new file mode 100644 index 0000000000..244b0765b4 --- /dev/null +++ b/tests/languages/reason/char_feature.test @@ -0,0 +1,19 @@ +'a' +'\'' +'\\' +'\xff' +'\o214' + +---------------------------------------------------- + +[ + ["char", "'a'"], + ["char", "'\\''"], + ["char", "'\\\\'"], + ["char", "'\\xff'"], + ["char", "'\\o214'"] +] + +---------------------------------------------------- + +Checks for characters. diff --git a/tests/languages/reason/character_feature.test b/tests/languages/reason/character_feature.test deleted file mode 100644 index 8b9de3ecdc..0000000000 --- a/tests/languages/reason/character_feature.test +++ /dev/null @@ -1,19 +0,0 @@ -'a' -'\'' -'\\' -'\xff' -'\o214' - ----------------------------------------------------- - -[ - ["character", "'a'"], - ["character", "'\\''"], - ["character", "'\\\\'"], - ["character", "'\\xff'"], - ["character", "'\\o214'"] -] - ----------------------------------------------------- - -Checks for characters. \ No newline at end of file