diff options
Diffstat (limited to 'node_modules/highlight.js/lib/languages/haxe.js')
-rw-r--r-- | node_modules/highlight.js/lib/languages/haxe.js | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/haxe.js b/node_modules/highlight.js/lib/languages/haxe.js new file mode 100644 index 000000000..ca817029f --- /dev/null +++ b/node_modules/highlight.js/lib/languages/haxe.js @@ -0,0 +1,111 @@ +module.exports = function(hljs) { + var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*'; + var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)'; + + var HAXE_BASIC_TYPES = 'Int Float String Bool Dynamic Void Array '; + + return { + aliases: ['hx'], + keywords: { + keyword: 'break case cast catch continue default do dynamic else enum extern ' + + 'for function here if import in inline never new override package private get set ' + + 'public return static super switch this throw trace try typedef untyped using var while ' + + HAXE_BASIC_TYPES, + built_in: + 'trace this', + literal: + 'true false null _' + }, + contains: [ + { className: 'string', // interpolate-able strings + begin: '\'', end: '\'', + contains: [ + hljs.BACKSLASH_ESCAPE, + { className: 'subst', // interpolation + begin: '\\$\\{', end: '\\}' + }, + { className: 'subst', // interpolation + begin: '\\$', end: '\\W}' + } + ] + }, + hljs.QUOTE_STRING_MODE, + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + hljs.C_NUMBER_MODE, + { className: 'meta', // compiler meta + begin: '@:', end: '$' + }, + { className: 'meta', // compiler conditionals + begin: '#', end: '$', + keywords: {'meta-keyword': 'if else elseif end error'} + }, + { className: 'type', // function types + begin: ':[ \t]*', end: '[^A-Za-z0-9_ \t\\->]', + excludeBegin: true, excludeEnd: true, + relevance: 0 + }, + { className: 'type', // types + begin: ':[ \t]*', end: '\\W', + excludeBegin: true, excludeEnd: true + }, + { className: 'type', // instantiation + begin: 'new *', end: '\\W', + excludeBegin: true, excludeEnd: true + }, + { className: 'class', // enums + beginKeywords: 'enum', end: '\\{', + contains: [ + hljs.TITLE_MODE + ] + }, + { className: 'class', // abstracts + beginKeywords: 'abstract', end: '[\\{$]', + contains: [ + { className: 'type', + begin: '\\(', end: '\\)', + excludeBegin: true, excludeEnd: true + }, + { className: 'type', + begin: 'from +', end: '\\W', + excludeBegin: true, excludeEnd: true + }, + { className: 'type', + begin: 'to +', end: '\\W', + excludeBegin: true, excludeEnd: true + }, + hljs.TITLE_MODE + ], + keywords: { + keyword: 'abstract from to' + } + }, + { className: 'class', // classes + begin: '\\b(class|interface) +', end: '[\\{$]', excludeEnd: true, + keywords: 'class interface', + contains: [ + { className: 'keyword', + begin: '\\b(extends|implements) +', + keywords: 'extends implements', + contains: [ + { + className: 'type', + begin: hljs.IDENT_RE, + relevance: 0 + } + ] + }, + hljs.TITLE_MODE + ] + }, + { className: 'function', + beginKeywords: 'function', end: '\\(', excludeEnd: true, + illegal: '\\S', + contains: [ + hljs.TITLE_MODE + ] + } + ], + illegal: /<\// + }; +};
\ No newline at end of file |