Reason: Use standard tokens correctly (#3251)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
diff --git a/components/prism-reason.js b/components/prism-reason.js
index 4dce938..74fdfb5 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 0d4abf0..e574faf 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 0000000..244b076
--- /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 8b9de3e..0000000
--- 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