Skip to content

Commit

Permalink
Adding basic support for Mathematica (#2921)
Browse files Browse the repository at this point in the history
Co-authored-by: Michael Schmidt <mitchi5000.ms@googlemail.com>
  • Loading branch information
msollami and RunDevelopment committed Jun 2, 2021
1 parent ad9878a commit c4f6b2c
Show file tree
Hide file tree
Showing 12 changed files with 140 additions and 3 deletions.
2 changes: 1 addition & 1 deletion components.js

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions components.json
Expand Up @@ -1346,6 +1346,15 @@
"require": "markup",
"owner": "Golmote"
},
"wolfram": {
"title": "Wolfram language",
"alias": ["mathematica", "nb", "wl"],
"aliasTitles": {
"mathematica": "Mathematica",
"nb": "Mathematica Notebook"
},
"owner": "msollami"
},
"xeora": {
"title": "Xeora",
"require": "markup",
Expand Down
29 changes: 29 additions & 0 deletions components/prism-wolfram.js
@@ -0,0 +1,29 @@
Prism.languages.wolfram = {
'comment': // Allow one level of nesting - note: regex taken from applescipt
/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,
'string': {
pattern: /"(?:\\.|[^"\\\r\n])*"/,
greedy: true
},
'keyword': /\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\b/,
'context': {
pattern: /\w+`+\w*/,
alias: 'class-name'
},
'blank': {
pattern: /\b\w+_\b/,
alias: 'regex'
},
'global-variable': {
pattern: /\$\w+/,
alias: 'variable'
},
'boolean': /\b(?:True|False)\b/,
'number': /(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,
'operator': /\/\.|\;|\=\.|\^\=|\^\:\=|\:\=|\<\<|\>\>|\<\||\|\>|\:\>|\|\-\>|\-\>|\<\-|\@\@\@|\@\@|\@|\/\@|\=\!\=|\=\=\=|\=\=|\=|\+|\-|\^|\*|\[\/-+%=]=?|\!\=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,
'punctuation': /[\|{}[\];(),.:]/
};

Prism.languages.mathematica = Prism.languages.wolfram;
Prism.languages.wl = Prism.languages.wolfram;
Prism.languages.nb = Prism.languages.wolfram;
1 change: 1 addition & 0 deletions components/prism-wolfram.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 31 additions & 0 deletions examples/prism-wolfram.html
@@ -0,0 +1,31 @@
<h2>Comments</h2>
<pre><code>
(* This is a comment *)
</code></pre>

<h2>Strings</h2>
<pre><code>
"foo bar baz"
</code></pre>

<h2>Numbers</h2>
<pre><code>
7
3.14
10.
.001
1e100
3.14e-10
2147483647
</code></pre>

<h2>Full example</h2>
<pre><code>
(* Most operators are supported *)
f /@ {1, 2, 3};
f @@ Range[10];
f @@@ y;
Module[{x=1},
Return @ $Failed
]
</code></pre>
3 changes: 3 additions & 0 deletions plugins/autoloader/prism-autoloader.js
Expand Up @@ -239,6 +239,9 @@
"url": "uri",
"vb": "visual-basic",
"vba": "visual-basic",
"mathematica": "wolfram",
"nb": "wolfram",
"wl": "wolfram",
"xeoracube": "xeora",
"yml": "yaml"
}/*]*/;
Expand Down
2 changes: 1 addition & 1 deletion plugins/autoloader/prism-autoloader.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions plugins/show-language/prism-show-language.js
Expand Up @@ -230,6 +230,9 @@
"vb": "Visual Basic",
"wasm": "WebAssembly",
"wiki": "Wiki markup",
"wolfram": "Wolfram language",
"nb": "Mathematica Notebook",
"wl": "Wolfram language",
"xeoracube": "XeoraCube",
"xml-doc": "XML doc (.net)",
"xojo": "Xojo (REALbasic)",
Expand Down

0 comments on commit c4f6b2c

Please sign in to comment.