aboutsummaryrefslogtreecommitdiff
path: root/node_modules/prismjs/components/prism-livescript.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/prismjs/components/prism-livescript.js')
-rw-r--r--node_modules/prismjs/components/prism-livescript.js119
1 files changed, 119 insertions, 0 deletions
diff --git a/node_modules/prismjs/components/prism-livescript.js b/node_modules/prismjs/components/prism-livescript.js
new file mode 100644
index 00000000..680ddea9
--- /dev/null
+++ b/node_modules/prismjs/components/prism-livescript.js
@@ -0,0 +1,119 @@
+Prism.languages.livescript = {
+ 'comment': [
+ {
+ pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
+ lookbehind: true
+ },
+ {
+ pattern: /(^|[^\\])#.*/,
+ lookbehind: true
+ }
+ ],
+ 'interpolated-string': {
+ /* Look-behind and look-ahead prevents wrong behavior of the greedy pattern
+ * forcing it to match """-quoted string when it would otherwise match "-quoted first. */
+ pattern: /(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,
+ lookbehind: true,
+ greedy: true,
+ inside: {
+ 'variable': {
+ pattern: /(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,
+ lookbehind: true
+ },
+ 'interpolation': {
+ pattern: /(^|[^\\])#\{[^}]+\}/m,
+ lookbehind: true,
+ inside: {
+ 'interpolation-punctuation': {
+ pattern: /^#\{|\}$/,
+ alias: 'variable'
+ }
+ // See rest below
+ }
+ },
+ 'string': /[\s\S]+/
+ }
+ },
+ 'string': [
+ {
+ pattern: /('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,
+ greedy: true
+ },
+ {
+ pattern: /<\[[\s\S]*?\]>/,
+ greedy: true
+ },
+ /\\[^\s,;\])}]+/
+ ],
+ 'regex': [
+ {
+ pattern: /\/\/(\[.+?]|\\.|(?!\/\/)[^\\])+\/\/[gimyu]{0,5}/,
+ greedy: true,
+ inside: {
+ 'comment': {
+ pattern: /(^|[^\\])#.*/,
+ lookbehind: true
+ }
+ }
+ },
+ {
+ pattern: /\/(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}/,
+ greedy: true
+ }
+ ],
+ 'keyword': {
+ pattern: /(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m,
+ lookbehind: true
+ },
+ 'keyword-operator': {
+ pattern: /(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?:nt| not)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m,
+ lookbehind: true,
+ alias: 'operator'
+ },
+ 'boolean': {
+ pattern: /(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m,
+ lookbehind: true
+ },
+ 'argument': {
+ // Don't match .&. nor &&
+ pattern: /(^|(?!\.&\.)[^&])&(?!&)\d*/m,
+ lookbehind: true,
+ alias: 'variable'
+ },
+ 'number': /\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,
+ 'identifier': /[a-z_](?:-?[a-z]|[\d_])*/i,
+ 'operator': [
+ // Spaced .
+ {
+ pattern: /( )\.(?= )/,
+ lookbehind: true
+ },
+ // Full list, in order:
+ // .= .~ .. ...
+ // .&. .^. .<<. .>>. .>>>.
+ // := :: ::=
+ // &&
+ // || |>
+ // < << <<< <<<<
+ // <- <-- <-! <--!
+ // <~ <~~ <~! <~~!
+ // <| <= <?
+ // > >> >= >?
+ // - -- -> -->
+ // + ++
+ // @ @@
+ // % %%
+ // * **
+ // ! != !~=
+ // !~> !~~>
+ // !-> !-->
+ // ~ ~> ~~> ~=
+ // = ==
+ // ^ ^^
+ // / ?
+ /\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<<?<?|--?!?|~~?!?|[|=?])?|>[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/
+ ],
+ 'punctuation': /[(){}\[\]|.,:;`]/
+};
+
+Prism.languages.livescript['interpolated-string'].inside['interpolation'].inside.rest = Prism.languages.livescript; \ No newline at end of file