diff --git a/components/prism-scheme.js b/components/prism-scheme.js index 8e9b7b3807..102d848529 100644 --- a/components/prism-scheme.js +++ b/components/prism-scheme.js @@ -22,7 +22,7 @@ Prism.languages.scheme = { lookbehind: true }, 'function' : { - pattern : /(\()[^\s()]*(?=\s)/, + pattern : /(\()[^\s()]*(?=[\s)])/, lookbehind : true }, 'punctuation' : /[()]/ diff --git a/components/prism-scheme.min.js b/components/prism-scheme.min.js index cdefa62e8d..1767130adf 100644 --- a/components/prism-scheme.min.js +++ b/components/prism-scheme.min.js @@ -1 +1 @@ -Prism.languages.scheme={comment:/;.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'[^('\s]*/,greedy:!0},keyword:{pattern:/(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)/,lookbehind:!0},builtin:{pattern:/(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)/,lookbehind:!0},number:{pattern:/(\s|[()])[-+]?\d*\.?\d+(?:\s*[-+]\s*\d*\.?\d+i)?\b/,lookbehind:!0},"boolean":/#[tf]/,operator:{pattern:/(\()(?:[-+*%\/]|[<>]=?|=>?)/,lookbehind:!0},"function":{pattern:/(\()[^\s()]*(?=\s)/,lookbehind:!0},punctuation:/[()]/}; \ No newline at end of file +Prism.languages.scheme={comment:/;.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'[^('\s]*/,greedy:!0},keyword:{pattern:/(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)/,lookbehind:!0},builtin:{pattern:/(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)/,lookbehind:!0},number:{pattern:/(\s|[()])[-+]?\d*\.?\d+(?:\s*[-+]\s*\d*\.?\d+i)?\b/,lookbehind:!0},"boolean":/#[tf]/,operator:{pattern:/(\()(?:[-+*%\/]|[<>]=?|=>?)/,lookbehind:!0},"function":{pattern:/(\()[^\s()]*(?=[\s)])/,lookbehind:!0},punctuation:/[()]/}; \ No newline at end of file diff --git a/tests/languages/scheme/function_feature.test b/tests/languages/scheme/function_feature.test index 25c804634e..4d8807c78d 100644 --- a/tests/languages/scheme/function_feature.test +++ b/tests/languages/scheme/function_feature.test @@ -2,6 +2,7 @@ (flmin 2 3) (exact? 2) (inexact->exact 3) +(!fact) ---------------------------------------------------- @@ -9,9 +10,10 @@ ["punctuation", "("], ["function", "fl="], ["number", "1"], ["number", "2"], ["punctuation", ")"], ["punctuation", "("], ["function", "flmin"], ["number", "2"], ["number", "3"], ["punctuation", ")"], ["punctuation", "("], ["function", "exact?"], ["number", "2"], ["punctuation", ")"], - ["punctuation", "("], ["function", "inexact->exact"], ["number", "3"], ["punctuation", ")"] + ["punctuation", "("], ["function", "inexact->exact"], ["number", "3"], ["punctuation", ")"], + ["punctuation", "("], ["function", "!fact"], ["punctuation", ")"] ] ---------------------------------------------------- -Checks for functions. \ No newline at end of file +Checks for functions.