penguin/AstroJS

Javascript framework for my blog

botanjs/src/Libraries/SyntaxHighlighter/Brush/Scala.js

raw ยท 1877 bytes

/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/SyntaxHighlighter
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
 *
 */
;(function()
{
	var ns = __namespace( "Libraries.SyntaxHighlighter.Brush" );

    /** @type {Libraries.SyntaxHighlighter} */
    var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );

    /** @type {typeof Libraries.SyntaxHighlighterBrush} **/
    var Brush = function()
	{
		// Contributed by Yegor Jbanov and David Bernard.
	
		var keywords =	'val sealed case def true trait implicit forSome import match object null finally super ' +
						'override try lazy for var catch throw type extends class while with new final yield abstract ' +
						'else do if return protected private this package false';

		var keyops =	'[_:=><%#@]+';

		this.regexList = [
			{ "regex": SyntaxHighlighter.regexLib.singleLineCComments,			"css": 'comments' },	// one line comments
			{ "regex": SyntaxHighlighter.regexLib.multiLineCComments,				"css": 'comments' },	// multiline comments
			{ "regex": SyntaxHighlighter.regexLib.multiLineSingleQuotedString,	"css": 'string' },	// multi-line strings
			{ "regex": SyntaxHighlighter.regexLib.multiLineDoubleQuotedString,    "css": 'string' },	// double-quoted string
			{ "regex": SyntaxHighlighter.regexLib.singleQuotedString,				"css": 'string' },	// strings
			{ "regex": /0x[a-f0-9]+|\d+(\.\d+)?/gi,								"css": 'value' },		// numbers
			{ "regex": new RegExp(this.getKeywords(keywords), 'gm'),				"css": 'keyword' },	// keywords
			{ "regex": new RegExp(keyops, 'gm'),									"css": 'keyword' }	// scala keyword
			];
	}

	Brush.prototype	= new SyntaxHighlighter.Highlighter();
	Brush.aliases	= ['scala'];

	SyntaxHighlighter.brushes[ "Scala" ] = Brush;

    ns[ NS_EXPORT ]( EX_CLASS, "Scala", Brush );
})();