aboutsummaryrefslogtreecommitdiff
path: root/node_modules/highlight.js/lib/languages/fsharp.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/highlight.js/lib/languages/fsharp.js')
-rw-r--r--node_modules/highlight.js/lib/languages/fsharp.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/fsharp.js b/node_modules/highlight.js/lib/languages/fsharp.js
new file mode 100644
index 000000000..3251a2918
--- /dev/null
+++ b/node_modules/highlight.js/lib/languages/fsharp.js
@@ -0,0 +1,58 @@
+module.exports = function(hljs) {
+ var TYPEPARAM = {
+ begin: '<', end: '>',
+ contains: [
+ hljs.inherit(hljs.TITLE_MODE, {begin: /'[a-zA-Z0-9_]+/})
+ ]
+ };
+
+ return {
+ aliases: ['fs'],
+ keywords:
+ 'abstract and as assert base begin class default delegate do done ' +
+ 'downcast downto elif else end exception extern false finally for ' +
+ 'fun function global if in inherit inline interface internal lazy let ' +
+ 'match member module mutable namespace new null of open or ' +
+ 'override private public rec return sig static struct then to ' +
+ 'true try type upcast use val void when while with yield',
+ illegal: /\/\*/,
+ contains: [
+ {
+ // monad builder keywords (matches before non-bang kws)
+ className: 'keyword',
+ begin: /\b(yield|return|let|do)!/
+ },
+ {
+ className: 'string',
+ begin: '@"', end: '"',
+ contains: [{begin: '""'}]
+ },
+ {
+ className: 'string',
+ begin: '"""', end: '"""'
+ },
+ hljs.COMMENT('\\(\\*', '\\*\\)'),
+ {
+ className: 'class',
+ beginKeywords: 'type', end: '\\(|=|$', excludeEnd: true,
+ contains: [
+ hljs.UNDERSCORE_TITLE_MODE,
+ TYPEPARAM
+ ]
+ },
+ {
+ className: 'meta',
+ begin: '\\[<', end: '>\\]',
+ relevance: 10
+ },
+ {
+ className: 'symbol',
+ begin: '\\B(\'[A-Za-z])\\b',
+ contains: [hljs.BACKSLASH_ESCAPE]
+ },
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
+ hljs.C_NUMBER_MODE
+ ]
+ };
+}; \ No newline at end of file