From 403ee33f053d45df483ad09ba6b1198678480a88 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 23 Jul 2016 01:00:11 -0700 Subject: [PATCH] Initial commit. --- shBrushKotlin.js | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 shBrushKotlin.js diff --git a/shBrushKotlin.js b/shBrushKotlin.js new file mode 100644 index 0000000..3f678d1 --- /dev/null +++ b/shBrushKotlin.js @@ -0,0 +1,53 @@ +/** + * SyntaxHighlighter Syntax for Kotlin + * + * @version + * 0.1.0 (July 22, 2016) + * + * @copyright + * Copyright (C) 2016 Erik C. Thauvin. http://erik.thauvin.net/ + * Copyright (C) 2004-2010 Alex Gorbatchev. http://alexgorbatchev.com/SyntaxHighlighter + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +;(function() +{ + // CommonJS + typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; + + function Brush() + { + var keywords = 'abstract annotation as break by catch class companion const constructor continue' + + ' crossinline data do dynamic else enum external false final finally for fun get if' + + ' import in infix inline inner interface internal is lateinit noinline null object' + + ' open operator out override package private protected public reified return sealed' + + ' set super tailrec this throw trait true try type val var vararg when where while' + + ' String Array Unit Int'; + + this.regexList = [ + { regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments + { regex: /\/\*([^\*][\s\S]*)?\*\//gm, css: 'comments' }, // multiline comments + { regex: /\/\*(?!\*\/)\*[\s\S]*?\*\//gm, css: 'preprocessor' }, // documentation comments + { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings + { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings + { regex: /\b([\d]+(\.[\d]+)?|0x[a-f0-9]+)\b/gi, css: 'value' }, // numbers + { regex: /(?!\@interface\b)\@[\$\w]+\b/g, css: 'color1' }, // annotation @anno + { regex: /\@interface\b/g, css: 'color2' }, // @interface keyword + { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // java keyword + ]; + + this.forHtmlScript({ + left : /(<|<)%[@!=]?/g, + right : /%(>|>)/g + }); + }; + + Brush.prototype = new SyntaxHighlighter.Highlighter(); + Brush.aliases = ['kotlin']; + + SyntaxHighlighter.brushes.Kotlin = Brush; + + // CommonJS + typeof(exports) != 'undefined' ? exports.Brush = Brush : null; +})(); \ No newline at end of file