From 7a3df06eb573d36142bd1a8e03c5ce8752d300b3 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 24 May 2017 15:10:37 +0200 Subject: fix build issues and add typedoc --- node_modules/highlight.js/lib/languages/scala.js | 114 +++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 node_modules/highlight.js/lib/languages/scala.js (limited to 'node_modules/highlight.js/lib/languages/scala.js') diff --git a/node_modules/highlight.js/lib/languages/scala.js b/node_modules/highlight.js/lib/languages/scala.js new file mode 100644 index 000000000..1a3f2d9d3 --- /dev/null +++ b/node_modules/highlight.js/lib/languages/scala.js @@ -0,0 +1,114 @@ +module.exports = function(hljs) { + + var ANNOTATION = { className: 'meta', begin: '@[A-Za-z]+' }; + + // used in strings for escaping/interpolation/substitution + var SUBST = { + className: 'subst', + variants: [ + {begin: '\\$[A-Za-z0-9_]+'}, + {begin: '\\${', end: '}'} + ] + }; + + var STRING = { + className: 'string', + variants: [ + { + begin: '"', end: '"', + illegal: '\\n', + contains: [hljs.BACKSLASH_ESCAPE] + }, + { + begin: '"""', end: '"""', + relevance: 10 + }, + { + begin: '[a-z]+"', end: '"', + illegal: '\\n', + contains: [hljs.BACKSLASH_ESCAPE, SUBST] + }, + { + className: 'string', + begin: '[a-z]+"""', end: '"""', + contains: [SUBST], + relevance: 10 + } + ] + + }; + + var SYMBOL = { + className: 'symbol', + begin: '\'\\w[\\w\\d_]*(?!\')' + }; + + var TYPE = { + className: 'type', + begin: '\\b[A-Z][A-Za-z0-9_]*', + relevance: 0 + }; + + var NAME = { + className: 'title', + begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/, + relevance: 0 + }; + + var CLASS = { + className: 'class', + beginKeywords: 'class object trait type', + end: /[:={\[\n;]/, + excludeEnd: true, + contains: [ + { + beginKeywords: 'extends with', + relevance: 10 + }, + { + begin: /\[/, + end: /\]/, + excludeBegin: true, + excludeEnd: true, + relevance: 0, + contains: [TYPE] + }, + { + className: 'params', + begin: /\(/, + end: /\)/, + excludeBegin: true, + excludeEnd: true, + relevance: 0, + contains: [TYPE] + }, + NAME + ] + }; + + var METHOD = { + className: 'function', + beginKeywords: 'def', + end: /[:={\[(\n;]/, + excludeEnd: true, + contains: [NAME] + }; + + return { + keywords: { + literal: 'true false null', + keyword: 'type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit' + }, + contains: [ + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + STRING, + SYMBOL, + TYPE, + METHOD, + CLASS, + hljs.C_NUMBER_MODE, + ANNOTATION + ] + }; +}; \ No newline at end of file -- cgit v1.2.3