0

Update to 7.1

This commit is contained in:
Rei
2012-08-14 22:13:27 +08:00
parent c48a19bb3f
commit 7d6da30689
84 changed files with 4179 additions and 2385 deletions

View File

@@ -28,6 +28,8 @@ var hljs = new function() {
}
}
var is_old_IE = (typeof navigator !== 'undefined' && /MSIE [678]/.test(navigator.userAgent));
function blockText(block, ignoreNewLines) {
var result = '';
for (var i = 0; i < block.childNodes.length; i++)
@@ -40,14 +42,13 @@ var hljs = new function() {
result += '\n';
else
result += blockText(block.childNodes[i]);
// Thank you, MSIE...
if (/MSIE [678]/.test(navigator.userAgent))
if (is_old_IE)
result = result.replace(/\r/g, '\n');
return result;
}
function blockLanguage(block) {
var classes = block.className.split(/\s+/)
var classes = block.className.split(/\s+/);
classes = classes.concat(block.parentNode.className.split(/\s+/));
for (var i = 0; i < classes.length; i++) {
var class_ = classes[i].replace(/^language-/, '');
@@ -61,19 +62,19 @@ var hljs = new function() {
function nodeStream(node) {
var result = [];
(function (node, offset) {
(function _nodeStream(node, offset) {
for (var i = 0; i < node.childNodes.length; i++) {
if (node.childNodes[i].nodeType == 3)
offset += node.childNodes[i].nodeValue.length;
else if (node.childNodes[i].nodeName == 'BR')
offset += 1
else {
offset += 1;
else if (node.childNodes[i].nodeType == 1) {
result.push({
event: 'start',
offset: offset,
node: node.childNodes[i]
});
offset = arguments.callee(node.childNodes[i], offset)
offset = _nodeStream(node.childNodes[i], offset);
result.push({
event: 'stop',
offset: offset,
@@ -123,8 +124,8 @@ var hljs = new function() {
for (var i = 0; i < node.attributes.length; i++) {
var attribute = node.attributes[i];
result += ' ' + attribute.nodeName.toLowerCase();
if (attribute.nodeValue != undefined && attribute.nodeValue != false && attribute.nodeValue != null) {
result += '="' + escape(attribute.nodeValue) + '"';
if (attribute.value !== undefined && attribute.value !== false && attribute.value !== null) {
result += '="' + escape(attribute.value) + '"';
}
}
return result + '>';
@@ -138,10 +139,10 @@ var hljs = new function() {
result += open(current.node);
nodeStack.push(current.node);
} else if (current.event == 'stop') {
var i = nodeStack.length;
var node, i = nodeStack.length;
do {
i--;
var node = nodeStack[i];
node = nodeStack[i];
result += ('</' + node.nodeName.toLowerCase() + '>');
} while (node != current.node);
nodeStack.splice(i, 1);
@@ -151,40 +152,56 @@ var hljs = new function() {
}
}
}
result += value.substr(processed);
return result;
return result + escape(value.substr(processed));
}
/* Initialization */
function compileModes() {
function compileModes(language_name) {
function compileMode(mode, language, is_default) {
if (mode.compiled)
return;
var keywords = []; // used later with beginWithKeyword but filled as a side-effect of keywords compilation
if (mode.keywords) {
var compiled_keywords = {};
function flatten(className, str) {
var group = str.split(' ');
for (var i = 0; i < group.length; i++) {
var pair = group[i].split('|');
compiled_keywords[pair[0]] = [className, pair[1] ? Number(pair[1]) : 1];
keywords.push(pair[0]);
}
}
mode.lexemsRe = langRe(language, mode.lexems || hljs.IDENT_RE, true);
if (typeof mode.keywords == 'string') { // string
flatten('keyword', mode.keywords)
} else {
for (var className in mode.keywords) {
if (!mode.keywords.hasOwnProperty(className))
continue;
flatten(className, mode.keywords[className]);
}
}
mode.keywords = compiled_keywords;
}
if (!is_default) {
if (mode.beginWithKeyword) {
mode.begin = '\\b(' + keywords.join('|') + ')\\s';
}
mode.beginRe = langRe(language, mode.begin ? mode.begin : '\\B|\\b');
if (!mode.end && !mode.endsWithParent)
mode.end = '\\B|\\b'
mode.end = '\\B|\\b';
if (mode.end)
mode.endRe = langRe(language, mode.end);
}
if (mode.illegal)
mode.illegalRe = langRe(language, mode.illegal);
if (mode.relevance == undefined)
if (mode.relevance === undefined)
mode.relevance = 1;
if (mode.keywords)
mode.lexemsRe = langRe(language, mode.lexems || hljs.IDENT_RE, true);
for (var key in mode.keywords) {
if (!mode.keywords.hasOwnProperty(key))
continue;
if (mode.keywords[key] instanceof Object)
mode.keywordGroups = mode.keywords;
else
mode.keywordGroups = {'keyword': mode.keywords};
break;
}
if (!mode.contains) {
mode.contains = [];
}
@@ -192,20 +209,20 @@ var hljs = new function() {
// (see lisp where quoted_list contains quoted_list)
mode.compiled = true;
for (var i = 0; i < mode.contains.length; i++) {
if (mode.contains[i] == 'self') {
mode.contains[i] = mode;
}
compileMode(mode.contains[i], language, false);
}
if (mode.starts) {
compileMode(mode.starts, language, false);
}
}
for (var i in languages) {
if (!languages.hasOwnProperty(i))
continue;
compileMode(languages[i].defaultMode, languages[i], true);
}
compileMode(languages[language_name].defaultMode, languages[language_name], true);
}
var compiled_languages = {};
/*
Core highlighting function. Accepts a language name and a string with the
code to highlight. Returns an object with the following properties:
@@ -216,14 +233,15 @@ var hljs = new function() {
*/
function highlight(language_name, value) {
if (!compileModes.called) {
compileModes();
compileModes.called = true;
if (!compiled_languages[language_name]) {
compileModes(language_name);
compiled_languages[language_name] = true;
}
function subMode(lexem, mode) {
for (var i = 0; i < mode.contains.length; i++) {
if (mode.contains[i].beginRe.test(lexem)) {
var match = mode.contains[i].beginRe.exec(lexem);
if (match && match.index == 0) {
return mode.contains[i];
}
}
@@ -240,7 +258,7 @@ var hljs = new function() {
}
function isIllegal(lexem, mode) {
return mode.illegalRe && mode.illegalRe.test(lexem);
return mode.illegal && mode.illegalRe.test(lexem);
}
function compileTerminators(mode, language) {
@@ -262,69 +280,81 @@ var hljs = new function() {
terminators.push(mode.illegal);
}
return langRe(language, '(' + terminators.join('|') + ')', true);
return terminators.length ? langRe(language, terminators.join('|'), true) : null;
}
function eatModeChunk(value, index) {
var mode = modes[modes.length - 1];
if (!mode.terminators) {
if (mode.terminators === undefined) {
mode.terminators = compileTerminators(mode, language);
}
mode.terminators.lastIndex = index;
var match = mode.terminators.exec(value);
if (match)
return [value.substr(index, match.index - index), match[0], false];
else
return [value.substr(index), '', true];
var match;
if (mode.terminators) {
mode.terminators.lastIndex = index;
match = mode.terminators.exec(value);
}
return match ? [value.substr(index, match.index - index), match[0], false] : [value.substr(index), '', true];
}
function keywordMatch(mode, match) {
var match_str = language.case_insensitive ? match[0].toLowerCase() : match[0]
for (var className in mode.keywordGroups) {
if (!mode.keywordGroups.hasOwnProperty(className))
continue;
var value = mode.keywordGroups[className].hasOwnProperty(match_str);
if (value)
return [className, value];
}
var match_str = language.case_insensitive ? match[0].toLowerCase() : match[0];
var value = mode.keywords[match_str];
if (value && value instanceof Array)
return value;
return false;
}
function processKeywords(buffer, mode) {
buffer = escape(buffer);
if (!mode.keywords)
return escape(buffer);
return buffer;
var result = '';
var last_index = 0;
mode.lexemsRe.lastIndex = 0;
var match = mode.lexemsRe.exec(buffer);
while (match) {
result += escape(buffer.substr(last_index, match.index - last_index));
result += buffer.substr(last_index, match.index - last_index);
var keyword_match = keywordMatch(mode, match);
if (keyword_match) {
keyword_count += keyword_match[1];
result += '<span class="'+ keyword_match[0] +'">' + escape(match[0]) + '</span>';
result += '<span class="'+ keyword_match[0] +'">' + match[0] + '</span>';
} else {
result += escape(match[0]);
result += match[0];
}
last_index = mode.lexemsRe.lastIndex;
match = mode.lexemsRe.exec(buffer);
}
result += escape(buffer.substr(last_index, buffer.length - last_index));
return result;
return result + buffer.substr(last_index);
}
function processSubLanguage(buffer, mode) {
var result;
if (mode.subLanguage == '') {
result = highlightAuto(buffer);
} else {
result = highlight(mode.subLanguage, buffer);
}
// Counting embedded language score towards the host language may be disabled
// with zeroing the containing mode relevance. Usecase in point is Markdown that
// allows XML everywhere and makes every XML snippet to have a much larger Markdown
// score.
if (mode.relevance > 0) {
keyword_count += result.keyword_count;
relevance += result.relevance;
}
return '<span class="' + result.language + '">' + result.value + '</span>';
}
function processBuffer(buffer, mode) {
if (mode.subLanguage && languages[mode.subLanguage]) {
var result = highlight(mode.subLanguage, buffer);
keyword_count += result.keyword_count;
return result.value;
if (mode.subLanguage && languages[mode.subLanguage] || mode.subLanguage == '') {
return processSubLanguage(buffer, mode);
} else {
return processKeywords(buffer, mode);
}
}
function startNewMode(mode, lexem) {
var markup = mode.className?'<span class="' + mode.className + '">':'';
var markup = mode.className? '<span class="' + mode.className + '">': '';
if (mode.returnBegin) {
result += markup;
mode.buffer = '';
@@ -388,30 +418,29 @@ var hljs = new function() {
var keyword_count = 0;
var result = '';
try {
var index = 0;
var mode_info, index = 0;
language.defaultMode.buffer = '';
do {
var mode_info = eatModeChunk(value, index);
mode_info = eatModeChunk(value, index);
var return_lexem = processModeInfo(mode_info[0], mode_info[1], mode_info[2]);
index += mode_info[0].length;
if (!return_lexem) {
index += mode_info[1].length;
}
} while (!mode_info[2]);
if(modes.length > 1)
throw 'Illegal';
return {
relevance: relevance,
keyword_count: keyword_count,
value: result
}
value: result,
language: language_name
};
} catch (e) {
if (e == 'Illegal') {
return {
relevance: 0,
keyword_count: 0,
value: escape(value)
}
};
} else {
throw e;
}
@@ -467,7 +496,7 @@ var hljs = new function() {
if (tabReplace) {
value = value.replace(/^((<[^>]+>|\t)+)/gm, function(match, p1, offset, s) {
return p1.replace(/\t/g, tabReplace);
})
});
}
if (useBR) {
value = value.replace(/\n/g, '<br>');
@@ -482,17 +511,18 @@ var hljs = new function() {
function highlightBlock(block, tabReplace, useBR) {
var text = blockText(block, useBR);
var language = blockLanguage(block);
var result, pre;
if (language == 'no-highlight')
return;
if (language) {
var result = highlight(language, text);
result = highlight(language, text);
} else {
var result = highlightAuto(text);
result = highlightAuto(text);
language = result.language;
}
var original = nodeStream(block);
if (original.length) {
var pre = document.createElement('pre');
pre = document.createElement('pre');
pre.innerHTML = result.value;
result.value = mergeStreams(original, nodeStream(pre), text);
}
@@ -502,10 +532,10 @@ var hljs = new function() {
if (!class_name.match('(\\s|^)(language-)?' + language + '(\\s|$)')) {
class_name = class_name ? (class_name + ' ' + language) : language;
}
if (/MSIE [678]/.test(navigator.userAgent) && block.tagName == 'CODE' && block.parentNode.tagName == 'PRE') {
if (is_old_IE && block.tagName == 'CODE' && block.parentNode.tagName == 'PRE') {
// This is for backwards compatibility only. IE needs this strange
// hack becasue it cannot just cleanly replace <code> block contents.
var pre = block.parentNode;
pre = block.parentNode;
var container = document.createElement('div');
container.innerHTML = '<pre><code>' + result.value + '</code></pre>';
block = container.firstChild.firstChild;
@@ -573,12 +603,13 @@ var hljs = new function() {
this.IDENT_RE = '[a-zA-Z][a-zA-Z0-9_]*';
this.UNDERSCORE_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*';
this.NUMBER_RE = '\\b\\d+(\\.\\d+)?';
this.C_NUMBER_RE = '\\b(0x[A-Za-z0-9]+|\\d+(\\.\\d+)?)';
this.C_NUMBER_RE = '(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float
this.BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b...
this.RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
// Common modes
this.BACKSLASH_ESCAPE = {
begin: '\\\\.', relevance: 0
begin: '\\\\[\\s\\S]', relevance: 0
};
this.APOS_STRING_MODE = {
className: 'string',
@@ -616,6 +647,11 @@ var hljs = new function() {
begin: this.C_NUMBER_RE,
relevance: 0
};
this.BINARY_NUMBER_MODE = {
className: 'number',
begin: this.BINARY_NUMBER_RE,
relevance: 0
};
// Utility functions
this.inherit = function(parent, obj) {

View File

@@ -4,10 +4,36 @@ Author: Yuri Ivanov <ivanov@supersoft.ru>
Contributors: Sergey Baranov <segyrn@yandex.ru>
*/
hljs.LANGUAGES['1c'] = function(){
hljs.LANGUAGES['1c'] = function(hljs){
var IDENT_RE_RU = '[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*';
var OneS_KEYWORDS = {'возврат':1,'дата':1,'для':1,'если':1,'и':1,'или':1,'иначе':1,'иначеесли':1,'исключение':1,'конецесли':1,'конецпопытки':1,'конецпроцедуры':1,'конецфункции':1,'конеццикла':1,'константа':1,'не':1,'перейти':1,'перем':1,'перечисление':1,'по':1,'пока':1,'попытка':1,'прервать':1,'продолжить':1,'процедура':1,'строка':1,'тогда':1,'фс':1,'функция':1,'цикл':1,'число':1,'экспорт':1};
var OneS_BUILT_IN = {'ansitooem':1,'oemtoansi':1,'ввестивидсубконто':1,'ввестидату':1,'ввестизначение':1,'ввестиперечисление':1,'ввестипериод':1,'ввестиплансчетов':1,'ввестистроку':1,'ввестичисло':1,'вопрос':1,'восстановитьзначение':1,'врег':1,'выбранныйплансчетов':1,'вызватьисключение':1,'датагод':1,'датамесяц':1,'датачисло':1,'добавитьмесяц':1,'завершитьработусистемы':1,'заголовоксистемы':1,'записьжурналарегистрации':1,'запуститьприложение':1,'зафиксироватьтранзакцию':1,'значениевстроку':1,'значениевстрокувнутр':1,'значениевфайл':1,'значениеизстроки':1,'значениеизстрокивнутр':1,'значениеизфайла':1,'имякомпьютера':1,'имяпользователя':1,'каталогвременныхфайлов':1,'каталогиб':1,'каталогпользователя':1,'каталогпрограммы':1,'кодсимв':1,'командасистемы':1,'конгода':1,'конецпериодаби':1,'конецрассчитанногопериодаби':1,'конецстандартногоинтервала':1,'конквартала':1,'конмесяца':1,'коннедели':1,'лев':1,'лог':1,ог10':1,'макс':1,'максимальноеколичествосубконто':1,'мин':1,'монопольныйрежим':1,'названиеинтерфейса':1,'названиенабораправ':1,'назначитьвид':1,'назначитьсчет':1,'найти':1,'найтипомеченныенаудаление':1,'найтиссылки':1,'началопериодаби':1,'началостандартногоинтервала':1,'начатьтранзакцию':1,'начгода':1,'начквартала':1,'начмесяца':1,'начнедели':1,'номерднягода':1,'номерднянедели':1,'номернеделигода':1,'нрег':1,'обработкаожидания':1,'окр':1,'описаниеошибки':1,'основнойжурналрасчетов':1,'основнойплансчетов':1,'основнойязык':1,'открытьформу':1,'открытьформумодально':1,'отменитьтранзакцию':1,'очиститьокносообщений':1,'периодстр':1,'полноеимяпользователя':1,'получитьвремята':1,'получитьдатута':1,'получитьдокументта':1,'получитьзначенияотбора':1,'получитьпозициюта':1,'получитьпустоезначение':1,'получитьта':1,'прав':1,'праводоступа':1,'предупреждение':1,'префиксавтонумерации':1,'пустаястрока':1,'пустоезначение':1,'рабочаядаттьпустоезначение':1,'получитьта':1,'прав':1,'праводоступа':1,'предупреждение':1,'префиксавтонумерации':1,'пустаястрока':1,'пустоезначение':1,'рабочаядата':1,'разделительстраниц':1,'разделительстрок':1,'разм':1,'разобратьпозициюдокумента':1,'рассчитатьрегистрына':1,'рассчитатьрегистрыпо':1,'сигнал':1,'симв':1,'символтабуляции':1,'создатьобъект':1,'сокрл':1,'сокрлп':1,'сокрп':1,' сообщить':1,'состояние':1,'сохранитьзначение':1,'сред':1,'статусвозврата':1,'стрдлина':1,'стрзаменить':1,'стрколичествострок':1,'стрполучитьстроку':1,' стрчисловхождений':1,'сформироватьпозициюдокумента':1,'счетпокоду':1,'текущаядата':1,'текущеевремя':1,'типзначения':1,'типзначениястр':1,'удалитьобъекты':1,'установитьтана':1,'установитьтапо':1,'фиксшаблон':1,'формат':1,'цел':1,'шаблон':1};
var OneS_KEYWORDS = 'возврат дата для если и или иначе иначеесли исключение конецесли ' +
'конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем ' +
'перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл ' +
'число экспорт';
var OneS_BUILT_IN = 'ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ' +
'ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос ' +
'восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц ' +
'датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации ' +
'запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр ' +
'значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера ' +
'имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы ' +
'кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби ' +
'конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс ' +
'максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ ' +
'назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби ' +
'началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели ' +
'номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки ' +
'основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально ' +
'отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята ' +
'получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта ' +
'получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации ' +
'пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц ' +
'разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына ' +
'рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп ' +
'сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить ' +
'стрколичествострок стрполучитьстроку стрчисловхождений сформироватьпозициюдокумента ' +
'счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты ' +
'установитьтана установитьтапо фиксшаблон формат цел шаблон';
var DQUOTE = {className: 'dquote', begin: '""'};
var STR_START = {
className: 'string',
@@ -25,7 +51,7 @@ hljs.LANGUAGES['1c'] = function(){
case_insensitive: true,
defaultMode: {
lexems: IDENT_RE_RU,
keywords: {'keyword':OneS_KEYWORDS,'built_in':OneS_BUILT_IN},
keywords: {keyword: OneS_KEYWORDS, built_in: OneS_BUILT_IN},
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.NUMBER_MODE,
@@ -34,7 +60,7 @@ hljs.LANGUAGES['1c'] = function(){
className: 'function',
begin: '(процедура|функция)', end: '$',
lexems: IDENT_RE_RU,
keywords: {'процедура': 1, 'экспорт': 1, 'функция': 1},
keywords: 'процедура функция',
contains: [
{className: 'title', begin: IDENT_RE_RU},
{
@@ -45,14 +71,14 @@ hljs.LANGUAGES['1c'] = function(){
className: 'params',
begin: '\\(', end: '\\)',
lexems: IDENT_RE_RU,
keywords: {'знач':1},
keywords: 'знач',
contains: [STR_START, STR_CONT]
},
{
className: 'export',
begin: 'экспорт', endsWithParent: true,
lexems: IDENT_RE_RU,
keywords: {'экспорт': 1},
keywords: 'экспорт',
contains: [hljs.C_LINE_COMMENT_MODE]
}
]
@@ -65,4 +91,4 @@ hljs.LANGUAGES['1c'] = function(){
]
}
};
}();
}(hljs);

View File

@@ -0,0 +1,85 @@
/*
Language: ActionScript
Author: Alexander Myadzel <myadzel@gmail.com>
*/
hljs.LANGUAGES['actionscript'] = 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 AS3_REST_ARG_MODE = {
className: 'rest_arg',
begin: '[.]{3}', end: IDENT_RE,
relevance: 10
};
var TITLE_MODE = {className: 'title', begin: IDENT_RE};
return {
defaultMode: {
keywords: {
keyword: 'as break case catch class const continue default delete do dynamic each ' +
'else extends final finally for function get if implements import in include ' +
'instanceof interface internal is namespace native new override package private ' +
'protected public return set static super switch this throw try typeof use var void ' +
'while with',
literal: 'true false null undefined'
},
contains: [
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
hljs.C_NUMBER_MODE,
{
className: 'package',
beginWithKeyword: true, end: '{',
keywords: 'package',
contains: [TITLE_MODE]
},
{
className: 'class',
beginWithKeyword: true, end: '{',
keywords: 'class interface',
contains: [
{
beginWithKeyword: true,
keywords: 'extends implements'
},
TITLE_MODE
]
},
{
className: 'preprocessor',
beginWithKeyword: true, end: ';',
keywords: 'import include'
},
{
className: 'function',
beginWithKeyword: true, end: '[{;]',
keywords: 'function',
illegal: '\\S',
contains: [
TITLE_MODE,
{
className: 'params',
begin: '\\(', end: '\\)',
contains: [
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
AS3_REST_ARG_MODE
]
},
{
className: 'type',
begin: ':',
end: IDENT_FUNC_RETURN_TYPE_RE,
relevance: 10
}
]
}
]
}
}
}(hljs);

View File

@@ -7,426 +7,113 @@ Version: 1.1
Date: 2008-12-27
*/
hljs.LANGUAGES.apache = function(){
hljs.LANGUAGES['apache'] = function(hljs) {
var NUMBER = {className: 'number', begin: '[\\$%]\\d+'};
var CBRACKET = {
className: 'cbracket',
begin: '[\\$%]\\{', end: '\\}'
};
CBRACKET.contains = [CBRACKET, NUMBER];
return {
case_insensitive: true,
defaultMode: {
keywords: {
'keyword': {
'acceptfilter': 1,
'acceptmutex': 1,
'acceptpathinfo': 1,
'accessfilename': 1,
'action': 1,
'addalt': 1,
'addaltbyencoding': 1,
'addaltbytype': 1,
'addcharset': 1,
'adddefaultcharset': 1,
'adddescription': 1,
'addencoding': 1,
'addhandler': 1,
'addicon': 1,
'addiconbyencoding': 1,
'addiconbytype': 1,
'addinputfilter': 1,
'addlanguage': 1,
'addmoduleinfo': 1,
'addoutputfilter': 1,
'addoutputfilterbytype': 1,
'addtype': 1,
'alias': 1,
'aliasmatch': 1,
'allow': 1,
'allowconnect': 1,
'allowencodedslashes': 1,
'allowoverride': 1,
'anonymous': 1,
'anonymous_logemail': 1,
'anonymous_mustgiveemail': 1,
'anonymous_nouserid': 1,
'anonymous_verifyemail': 1,
'authbasicauthoritative': 1,
'authbasicprovider': 1,
'authdbduserpwquery': 1,
'authdbduserrealmquery': 1,
'authdbmgroupfile': 1,
'authdbmtype': 1,
'authdbmuserfile': 1,
'authdefaultauthoritative': 1,
'authdigestalgorithm': 1,
'authdigestdomain': 1,
'authdigestnccheck': 1,
'authdigestnonceformat': 1,
'authdigestnoncelifetime': 1,
'authdigestprovider': 1,
'authdigestqop': 1,
'authdigestshmemsize': 1,
'authgroupfile': 1,
'authldapbinddn': 1,
'authldapbindpassword': 1,
'authldapcharsetconfig': 1,
'authldapcomparednonserver': 1,
'authldapdereferencealiases': 1,
'authldapgroupattribute': 1,
'authldapgroupattributeisdn': 1,
'authldapremoteuserattribute': 1,
'authldapremoteuserisdn': 1,
'authldapurl': 1,
'authname': 1,
'authnprovideralias': 1,
'authtype': 1,
'authuserfile': 1,
'authzdbmauthoritative': 1,
'authzdbmtype': 1,
'authzdefaultauthoritative': 1,
'authzgroupfileauthoritative': 1,
'authzldapauthoritative': 1,
'authzownerauthoritative': 1,
'authzuserauthoritative': 1,
'balancermember': 1,
'browsermatch': 1,
'browsermatchnocase': 1,
'bufferedlogs': 1,
'cachedefaultexpire': 1,
'cachedirlength': 1,
'cachedirlevels': 1,
'cachedisable': 1,
'cacheenable': 1,
'cachefile': 1,
'cacheignorecachecontrol': 1,
'cacheignoreheaders': 1,
'cacheignorenolastmod': 1,
'cacheignorequerystring': 1,
'cachelastmodifiedfactor': 1,
'cachemaxexpire': 1,
'cachemaxfilesize': 1,
'cacheminfilesize': 1,
'cachenegotiateddocs': 1,
'cacheroot': 1,
'cachestorenostore': 1,
'cachestoreprivate': 1,
'cgimapextension': 1,
'charsetdefault': 1,
'charsetoptions': 1,
'charsetsourceenc': 1,
'checkcaseonly': 1,
'checkspelling': 1,
'chrootdir': 1,
'contentdigest': 1,
'cookiedomain': 1,
'cookieexpires': 1,
'cookielog': 1,
'cookiename': 1,
'cookiestyle': 1,
'cookietracking': 1,
'coredumpdirectory': 1,
'customlog': 1,
'dav': 1,
'davdepthinfinity': 1,
'davgenericlockdb': 1,
'davlockdb': 1,
'davmintimeout': 1,
'dbdexptime': 1,
'dbdkeep': 1,
'dbdmax': 1,
'dbdmin': 1,
'dbdparams': 1,
'dbdpersist': 1,
'dbdpreparesql': 1,
'dbdriver': 1,
'defaulticon': 1,
'defaultlanguage': 1,
'defaulttype': 1,
'deflatebuffersize': 1,
'deflatecompressionlevel': 1,
'deflatefilternote': 1,
'deflatememlevel': 1,
'deflatewindowsize': 1,
'deny': 1,
'directoryindex': 1,
'directorymatch': 1,
'directoryslash': 1,
'documentroot': 1,
'dumpioinput': 1,
'dumpiologlevel': 1,
'dumpiooutput': 1,
'enableexceptionhook': 1,
'enablemmap': 1,
'enablesendfile': 1,
'errordocument': 1,
'errorlog': 1,
'example': 1,
'expiresactive': 1,
'expiresbytype': 1,
'expiresdefault': 1,
'extendedstatus': 1,
'extfilterdefine': 1,
'extfilteroptions': 1,
'fileetag': 1,
'filterchain': 1,
'filterdeclare': 1,
'filterprotocol': 1,
'filterprovider': 1,
'filtertrace': 1,
'forcelanguagepriority': 1,
'forcetype': 1,
'forensiclog': 1,
'gracefulshutdowntimeout': 1,
'group': 1,
'header': 1,
'headername': 1,
'hostnamelookups': 1,
'identitycheck': 1,
'identitychecktimeout': 1,
'imapbase': 1,
'imapdefault': 1,
'imapmenu': 1,
'include': 1,
'indexheadinsert': 1,
'indexignore': 1,
'indexoptions': 1,
'indexorderdefault': 1,
'indexstylesheet': 1,
'isapiappendlogtoerrors': 1,
'isapiappendlogtoquery': 1,
'isapicachefile': 1,
'isapifakeasync': 1,
'isapilognotsupported': 1,
'isapireadaheadbuffer': 1,
'keepalive': 1,
'keepalivetimeout': 1,
'languagepriority': 1,
'ldapcacheentries': 1,
'ldapcachettl': 1,
'ldapconnectiontimeout': 1,
'ldapopcacheentries': 1,
'ldapopcachettl': 1,
'ldapsharedcachefile': 1,
'ldapsharedcachesize': 1,
'ldaptrustedclientcert': 1,
'ldaptrustedglobalcert': 1,
'ldaptrustedmode': 1,
'ldapverifyservercert': 1,
'limitinternalrecursion': 1,
'limitrequestbody': 1,
'limitrequestfields': 1,
'limitrequestfieldsize': 1,
'limitrequestline': 1,
'limitxmlrequestbody': 1,
'listen': 1,
'listenbacklog': 1,
'loadfile': 1,
'loadmodule': 1,
'lockfile': 1,
'logformat': 1,
'loglevel': 1,
'maxclients': 1,
'maxkeepaliverequests': 1,
'maxmemfree': 1,
'maxrequestsperchild': 1,
'maxrequestsperthread': 1,
'maxspareservers': 1,
'maxsparethreads': 1,
'maxthreads': 1,
'mcachemaxobjectcount': 1,
'mcachemaxobjectsize': 1,
'mcachemaxstreamingbuffer': 1,
'mcacheminobjectsize': 1,
'mcacheremovalalgorithm': 1,
'mcachesize': 1,
'metadir': 1,
'metafiles': 1,
'metasuffix': 1,
'mimemagicfile': 1,
'minspareservers': 1,
'minsparethreads': 1,
'mmapfile': 1,
'mod_gzip_on': 1,
'mod_gzip_add_header_count': 1,
'mod_gzip_keep_workfiles': 1,
'mod_gzip_dechunk': 1,
'mod_gzip_min_http': 1,
'mod_gzip_minimum_file_size': 1,
'mod_gzip_maximum_file_size': 1,
'mod_gzip_maximum_inmem_size': 1,
'mod_gzip_temp_dir': 1,
'mod_gzip_item_include': 1,
'mod_gzip_item_exclude': 1,
'mod_gzip_command_version': 1,
'mod_gzip_can_negotiate': 1,
'mod_gzip_handle_methods': 1,
'mod_gzip_static_suffix': 1,
'mod_gzip_send_vary': 1,
'mod_gzip_update_static': 1,
'modmimeusepathinfo': 1,
'multiviewsmatch': 1,
'namevirtualhost': 1,
'noproxy': 1,
'nwssltrustedcerts': 1,
'nwsslupgradeable': 1,
'options': 1,
'order': 1,
'passenv': 1,
'pidfile': 1,
'protocolecho': 1,
'proxybadheader': 1,
'proxyblock': 1,
'proxydomain': 1,
'proxyerroroverride': 1,
'proxyftpdircharset': 1,
'proxyiobuffersize': 1,
'proxymaxforwards': 1,
'proxypass': 1,
'proxypassinterpolateenv': 1,
'proxypassmatch': 1,
'proxypassreverse': 1,
'proxypassreversecookiedomain': 1,
'proxypassreversecookiepath': 1,
'proxypreservehost': 1,
'proxyreceivebuffersize': 1,
'proxyremote': 1,
'proxyremotematch': 1,
'proxyrequests': 1,
'proxyset': 1,
'proxystatus': 1,
'proxytimeout': 1,
'proxyvia': 1,
'readmename': 1,
'receivebuffersize': 1,
'redirect': 1,
'redirectmatch': 1,
'redirectpermanent': 1,
'redirecttemp': 1,
'removecharset': 1,
'removeencoding': 1,
'removehandler': 1,
'removeinputfilter': 1,
'removelanguage': 1,
'removeoutputfilter': 1,
'removetype': 1,
'requestheader': 1,
'require': 2,
'rewritebase': 1,
'rewritecond': 10,
'rewriteengine': 1,
'rewritelock': 1,
'rewritelog': 1,
'rewriteloglevel': 1,
'rewritemap': 1,
'rewriteoptions': 1,
'rewriterule': 10,
'rlimitcpu': 1,
'rlimitmem': 1,
'rlimitnproc': 1,
'satisfy': 1,
'scoreboardfile': 1,
'script': 1,
'scriptalias': 1,
'scriptaliasmatch': 1,
'scriptinterpretersource': 1,
'scriptlog': 1,
'scriptlogbuffer': 1,
'scriptloglength': 1,
'scriptsock': 1,
'securelisten': 1,
'seerequesttail': 1,
'sendbuffersize': 1,
'serveradmin': 1,
'serveralias': 1,
'serverlimit': 1,
'servername': 1,
'serverpath': 1,
'serverroot': 1,
'serversignature': 1,
'servertokens': 1,
'setenv': 1,
'setenvif': 1,
'setenvifnocase': 1,
'sethandler': 1,
'setinputfilter': 1,
'setoutputfilter': 1,
'ssienableaccess': 1,
'ssiendtag': 1,
'ssierrormsg': 1,
'ssistarttag': 1,
'ssitimeformat': 1,
'ssiundefinedecho': 1,
'sslcacertificatefile': 1,
'sslcacertificatepath': 1,
'sslcadnrequestfile': 1,
'sslcadnrequestpath': 1,
'sslcarevocationfile': 1,
'sslcarevocationpath': 1,
'sslcertificatechainfile': 1,
'sslcertificatefile': 1,
'sslcertificatekeyfile': 1,
'sslciphersuite': 1,
'sslcryptodevice': 1,
'sslengine': 1,
'sslhonorciperorder': 1,
'sslmutex': 1,
'ssloptions': 1,
'sslpassphrasedialog': 1,
'sslprotocol': 1,
'sslproxycacertificatefile': 1,
'sslproxycacertificatepath': 1,
'sslproxycarevocationfile': 1,
'sslproxycarevocationpath': 1,
'sslproxyciphersuite': 1,
'sslproxyengine': 1,
'sslproxymachinecertificatefile': 1,
'sslproxymachinecertificatepath': 1,
'sslproxyprotocol': 1,
'sslproxyverify': 1,
'sslproxyverifydepth': 1,
'sslrandomseed': 1,
'sslrequire': 1,
'sslrequiressl': 1,
'sslsessioncache': 1,
'sslsessioncachetimeout': 1,
'sslusername': 1,
'sslverifyclient': 1,
'sslverifydepth': 1,
'startservers': 1,
'startthreads': 1,
'substitute': 1,
'suexecusergroup': 1,
'threadlimit': 1,
'threadsperchild': 1,
'threadstacksize': 1,
'timeout': 1,
'traceenable': 1,
'transferlog': 1,
'typesconfig': 1,
'unsetenv': 1,
'usecanonicalname': 1,
'usecanonicalphysicalport': 1,
'user': 1,
'userdir': 1,
'virtualdocumentroot': 1,
'virtualdocumentrootip': 1,
'virtualscriptalias': 1,
'virtualscriptaliasip': 1,
'win32disableacceptex': 1,
'xbithack': 1
},
'literal': {'on': 1, 'off': 1}
keyword: 'acceptfilter acceptmutex acceptpathinfo accessfilename action addalt ' +
'addaltbyencoding addaltbytype addcharset adddefaultcharset adddescription ' +
'addencoding addhandler addicon addiconbyencoding addiconbytype addinputfilter ' +
'addlanguage addmoduleinfo addoutputfilter addoutputfilterbytype addtype alias ' +
'aliasmatch allow allowconnect allowencodedslashes allowoverride anonymous ' +
'anonymous_logemail anonymous_mustgiveemail anonymous_nouserid anonymous_verifyemail ' +
'authbasicauthoritative authbasicprovider authdbduserpwquery authdbduserrealmquery ' +
'authdbmgroupfile authdbmtype authdbmuserfile authdefaultauthoritative ' +
'authdigestalgorithm authdigestdomain authdigestnccheck authdigestnonceformat ' +
'authdigestnoncelifetime authdigestprovider authdigestqop authdigestshmemsize ' +
'authgroupfile authldapbinddn authldapbindpassword authldapcharsetconfig ' +
'authldapcomparednonserver authldapdereferencealiases authldapgroupattribute ' +
'authldapgroupattributeisdn authldapremoteuserattribute authldapremoteuserisdn ' +
'authldapurl authname authnprovideralias authtype authuserfile authzdbmauthoritative ' +
'authzdbmtype authzdefaultauthoritative authzgroupfileauthoritative ' +
'authzldapauthoritative authzownerauthoritative authzuserauthoritative ' +
'balancermember browsermatch browsermatchnocase bufferedlogs cachedefaultexpire ' +
'cachedirlength cachedirlevels cachedisable cacheenable cachefile ' +
'cacheignorecachecontrol cacheignoreheaders cacheignorenolastmod ' +
'cacheignorequerystring cachelastmodifiedfactor cachemaxexpire cachemaxfilesize ' +
'cacheminfilesize cachenegotiateddocs cacheroot cachestorenostore cachestoreprivate ' +
'cgimapextension charsetdefault charsetoptions charsetsourceenc checkcaseonly ' +
'checkspelling chrootdir contentdigest cookiedomain cookieexpires cookielog ' +
'cookiename cookiestyle cookietracking coredumpdirectory customlog dav ' +
'davdepthinfinity davgenericlockdb davlockdb davmintimeout dbdexptime dbdkeep ' +
'dbdmax dbdmin dbdparams dbdpersist dbdpreparesql dbdriver defaulticon ' +
'defaultlanguage defaulttype deflatebuffersize deflatecompressionlevel ' +
'deflatefilternote deflatememlevel deflatewindowsize deny directoryindex ' +
'directorymatch directoryslash documentroot dumpioinput dumpiologlevel dumpiooutput ' +
'enableexceptionhook enablemmap enablesendfile errordocument errorlog example ' +
'expiresactive expiresbytype expiresdefault extendedstatus extfilterdefine ' +
'extfilteroptions fileetag filterchain filterdeclare filterprotocol filterprovider ' +
'filtertrace forcelanguagepriority forcetype forensiclog gracefulshutdowntimeout ' +
'group header headername hostnamelookups identitycheck identitychecktimeout ' +
'imapbase imapdefault imapmenu include indexheadinsert indexignore indexoptions ' +
'indexorderdefault indexstylesheet isapiappendlogtoerrors isapiappendlogtoquery ' +
'isapicachefile isapifakeasync isapilognotsupported isapireadaheadbuffer keepalive ' +
'keepalivetimeout languagepriority ldapcacheentries ldapcachettl ' +
'ldapconnectiontimeout ldapopcacheentries ldapopcachettl ldapsharedcachefile ' +
'ldapsharedcachesize ldaptrustedclientcert ldaptrustedglobalcert ldaptrustedmode ' +
'ldapverifyservercert limitinternalrecursion limitrequestbody limitrequestfields ' +
'limitrequestfieldsize limitrequestline limitxmlrequestbody listen listenbacklog ' +
'loadfile loadmodule lockfile logformat loglevel maxclients maxkeepaliverequests ' +
'maxmemfree maxrequestsperchild maxrequestsperthread maxspareservers maxsparethreads ' +
'maxthreads mcachemaxobjectcount mcachemaxobjectsize mcachemaxstreamingbuffer ' +
'mcacheminobjectsize mcacheremovalalgorithm mcachesize metadir metafiles metasuffix ' +
'mimemagicfile minspareservers minsparethreads mmapfile mod_gzip_on ' +
'mod_gzip_add_header_count mod_gzip_keep_workfiles mod_gzip_dechunk ' +
'mod_gzip_min_http mod_gzip_minimum_file_size mod_gzip_maximum_file_size ' +
'mod_gzip_maximum_inmem_size mod_gzip_temp_dir mod_gzip_item_include ' +
'mod_gzip_item_exclude mod_gzip_command_version mod_gzip_can_negotiate ' +
'mod_gzip_handle_methods mod_gzip_static_suffix mod_gzip_send_vary ' +
'mod_gzip_update_static modmimeusepathinfo multiviewsmatch namevirtualhost noproxy ' +
'nwssltrustedcerts nwsslupgradeable options order passenv pidfile protocolecho ' +
'proxybadheader proxyblock proxydomain proxyerroroverride proxyftpdircharset ' +
'proxyiobuffersize proxymaxforwards proxypass proxypassinterpolateenv ' +
'proxypassmatch proxypassreverse proxypassreversecookiedomain ' +
'proxypassreversecookiepath proxypreservehost proxyreceivebuffersize proxyremote ' +
'proxyremotematch proxyrequests proxyset proxystatus proxytimeout proxyvia ' +
'readmename receivebuffersize redirect redirectmatch redirectpermanent ' +
'redirecttemp removecharset removeencoding removehandler removeinputfilter ' +
'removelanguage removeoutputfilter removetype requestheader require rewritebase ' +
'rewritecond rewriteengine rewritelock rewritelog rewriteloglevel rewritemap ' +
'rewriteoptions rewriterule rlimitcpu rlimitmem rlimitnproc satisfy scoreboardfile ' +
'script scriptalias scriptaliasmatch scriptinterpretersource scriptlog ' +
'scriptlogbuffer scriptloglength scriptsock securelisten seerequesttail ' +
'sendbuffersize serveradmin serveralias serverlimit servername serverpath ' +
'serverroot serversignature servertokens setenv setenvif setenvifnocase sethandler ' +
'setinputfilter setoutputfilter ssienableaccess ssiendtag ssierrormsg ssistarttag ' +
'ssitimeformat ssiundefinedecho sslcacertificatefile sslcacertificatepath ' +
'sslcadnrequestfile sslcadnrequestpath sslcarevocationfile sslcarevocationpath ' +
'sslcertificatechainfile sslcertificatefile sslcertificatekeyfile sslciphersuite ' +
'sslcryptodevice sslengine sslhonorciperorder sslmutex ssloptions ' +
'sslpassphrasedialog sslprotocol sslproxycacertificatefile ' +
'sslproxycacertificatepath sslproxycarevocationfile sslproxycarevocationpath ' +
'sslproxyciphersuite sslproxyengine sslproxymachinecertificatefile ' +
'sslproxymachinecertificatepath sslproxyprotocol sslproxyverify ' +
'sslproxyverifydepth sslrandomseed sslrequire sslrequiressl sslsessioncache ' +
'sslsessioncachetimeout sslusername sslverifyclient sslverifydepth startservers ' +
'startthreads substitute suexecusergroup threadlimit threadsperchild ' +
'threadstacksize timeout traceenable transferlog typesconfig unsetenv ' +
'usecanonicalname usecanonicalphysicalport user userdir virtualdocumentroot ' +
'virtualdocumentrootip virtualscriptalias virtualscriptaliasip ' +
'win32disableacceptex xbithack',
literal: 'on off'
},
contains: [
hljs.HASH_COMMENT_MODE,
{className: 'sqbracket', begin: '\\s\\[', end: '\\]$'},
CBRACKET,
{
className: 'sqbracket',
begin: '\\s\\[', end: '\\]$'
},
{
className: 'cbracket',
begin: '[\\$%]\\{', end: '\\}',
contains: ['self', NUMBER]
},
NUMBER,
{className: 'tag', begin: '</?', end: '>'},
hljs.QUOTE_STRING_MODE
]
}
};
}();
}(hljs);

View File

@@ -3,73 +3,60 @@ Language: AVR Assembler
Author: Vladimir Ermakov <vooon341@gmail.com>
*/
hljs.LANGUAGES.avrasm =
{
case_insensitive: true,
defaultMode: {
keywords: {
'keyword': {
hljs.LANGUAGES['avrasm'] = function(hljs) {
return {
case_insensitive: true,
defaultMode: {
keywords: {
keyword:
/* mnemonic */
'adc': 1, 'add': 1 , 'adiw': 1 , 'and': 1 , 'andi': 1 , 'asr': 1 , 'bclr': 1 , 'bld': 1 , 'brbc': 1 , 'brbs': 1 , 'brcc': 1 ,
'brcs': 1, 'break': 1, 'breq': 1, 'brge': 1, 'brhc': 1, 'brhs': 1, 'brid': 1, 'brie': 1, 'brlo': 1, 'brlt': 1, 'brmi': 1,
'brne': 1, 'brpl': 1, 'brsh': 1, 'brtc': 1, 'brts': 1, 'brvc': 1, 'brvs': 1, 'bset': 1, 'bst': 1, 'call': 1, 'cbi': 1,
'cbr': 1, 'clc': 1, 'clh': 1, 'cli': 1, 'cln': 1, 'clr': 1, 'cls': 1, 'clt': 1, 'clv': 1, 'clz': 1, 'com': 1, 'cp': 1,
'cpc': 1, 'cpi': 1, 'cpse': 1, 'dec': 1, 'eicall': 1, 'eijmp': 1, 'elpm': 1, 'eor': 1, 'fmul': 1, 'fmuls': 1, 'fmulsu': 1,
'icall': 1, 'ijmp': 1, 'in': 1, 'inc': 1, 'jmp': 1, 'ld': 1, 'ldd': 1, 'ldi': 1, 'lds': 1, 'lpm': 1, 'lsl': 1, 'lsr': 1,
'mov': 1, 'movw': 1, 'mul': 1, 'muls': 1, 'mulsu': 1, 'neg': 1, 'nop': 1, 'or': 1, 'ori': 1, 'out': 1, 'pop': 1, 'push': 1,
'rcall': 1, 'ret': 1, 'reti': 1, 'rjmp': 1, 'rol': 1, 'ror': 1, 'sbc': 1, 'sbr': 1, 'sbrc': 1, 'sbrs': 1, 'sec': 1, 'seh': 1,
'sbi': 1, 'sbci': 1, 'sbic': 1, 'sbis': 1, 'sbiw': 1, 'sei': 1, 'sen': 1, 'ser': 1, 'ses': 1, 'set': 1, 'sev': 1, 'sez': 1,
'sleep': 1, 'spm': 1, 'st': 1, 'std': 1, 'sts': 1, 'sub': 1, 'subi': 1, 'swap': 1, 'tst': 1, 'wdr': 1
},
'built_in': {
'adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs ' +
'brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr ' +
'clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor ' +
'fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul ' +
'muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs ' +
'sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub ' +
'subi swap tst wdr',
built_in:
/* general purpose registers */
'r0': 1, 'r1': 1, 'r2': 1, 'r3': 1, 'r4': 1, 'r5': 1, 'r6': 1, 'r7': 1, 'r8': 1, 'r9': 1, 'r10': 1, 'r11': 1, 'r12': 1,
'r13': 1, 'r14': 1, 'r15': 1, 'r16': 1, 'r17': 1, 'r18': 1, 'r19': 1, 'r20': 1, 'r21': 1, 'r22': 1, 'r23': 1, 'r24': 1,
'r25': 1, 'r26': 1, 'r27': 1, 'r28': 1, 'r29': 1, 'r30': 1, 'r31': 1,
'x': 1 /* R27:R26 */, 'xh': 1 /* R27 */, 'xl': 1 /* R26 */,
'y': 1 /* R29:R28 */, 'yh': 1 /* R29 */, 'yl': 1 /* R28 */,
'z': 1 /* R31:R30 */, 'zh': 1 /* R31 */, 'zl': 1 /* R30 */,
'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 ' +
'r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ' +
/* IO Registers (ATMega128) */
'ucsr1c': 1, 'udr1': 1, 'ucsr1a': 1, 'ucsr1b': 1, 'ubrr1l': 1, 'ubrr1h': 1, 'ucsr0c': 1, 'ubrr0h': 1, 'tccr3c': 1,
'tccr3a': 1, 'tccr3b': 1, 'tcnt3h': 1, 'tcnt3l': 1, 'ocr3ah': 1, 'ocr3al': 1, 'ocr3bh': 1, 'ocr3bl': 1, 'ocr3ch': 1,
'ocr3cl': 1, 'icr3h': 1, 'icr3l': 1, 'etimsk': 1, 'etifr': 1, 'tccr1c': 1, 'ocr1ch': 1, 'ocr1cl': 1, 'twcr': 1,
'twdr': 1, 'twar': 1, 'twsr': 1, 'twbr': 1, 'osccal': 1, 'xmcra': 1, 'xmcrb': 1, 'eicra': 1, 'spmcsr': 1, 'spmcr': 1,
'portg': 1, 'ddrg': 1, 'ping': 1, 'portf': 1, 'ddrf': 1, 'sreg': 1, 'sph': 1, 'spl': 1, 'xdiv': 1, 'rampz': 1,
'eicrb': 1, 'eimsk': 1, 'gimsk': 1, 'gicr': 1, 'eifr': 1, 'gifr': 1, 'timsk': 1, 'tifr': 1, 'mcucr': 1,
'mcucsr': 1, 'tccr0': 1, 'tcnt0': 1, 'ocr0': 1, 'assr': 1, 'tccr1a': 1, 'tccr1b': 1, 'tcnt1h': 1, 'tcnt1l': 1,
'ocr1ah': 1, 'ocr1al': 1, 'ocr1bh': 1, 'ocr1bl': 1, 'icr1h': 1, 'icr1l': 1, 'tccr2': 1, 'tcnt2': 1, 'ocr2': 1,
'ocdr': 1, 'wdtcr': 1, 'sfior': 1, 'eearh': 1, 'eearl': 1, 'eedr': 1, 'eecr': 1, 'porta': 1, 'ddra': 1, 'pina': 1,
'portb': 1, 'ddrb': 1, 'pinb': 1, 'portc': 1, 'ddrc': 1, 'pinc': 1, 'portd': 1, 'ddrd': 1, 'pind': 1, 'spdr': 1,
'spsr': 1, 'spcr': 1, 'udr0': 1, 'ucsr0a': 1, 'ucsr0b': 1, 'ubrr0l': 1, 'acsr': 1, 'admux': 1, 'adcsr': 1, 'adch': 1,
'adcl': 1, 'porte': 1, 'ddre': 1, 'pine': 1, 'pinf': 1
'ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h ' +
'tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ' +
'ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ' +
'ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk ' +
'tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ' +
'ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr ' +
'porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ' +
'ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf'
},
contains: [
hljs.C_BLOCK_COMMENT_MODE,
{className: 'comment', begin: ';', end: '$'},
hljs.C_NUMBER_MODE, // 0x..., decimal, float
hljs.BINARY_NUMBER_MODE, // 0b...
{
className: 'number',
begin: '\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)' // $..., 0o...
},
hljs.QUOTE_STRING_MODE,
{
className: 'string',
begin: '\'', end: '[^\\\\]\'',
illegal: '[^\\\\][^\']'
},
{className: 'label', begin: '^[A-Za-z0-9_.$]+:'},
{className: 'preprocessor', begin: '#', end: '$'},
{ // директивы «.include» «.macro» и т.д.
className: 'preprocessor',
begin: '\\.[a-zA-Z]+'
},
{ // подстановка в «.macro»
className: 'localvars',
begin: '@[0-9]+'
}
},
contains: [
hljs.C_BLOCK_COMMENT_MODE,
{className: 'comment', begin: ';', end: '$'},
hljs.C_NUMBER_MODE,
/*{ // Hex: 0x00, $00; Oct: 0o00; Bin: 0b00000000; Dec: 0
// пока что-то не получается :(, буду использовать сишную моду.
className: 'number',
begin: '((0[xX]|\$)[A-Fa-f0-9]+|0[oO][0-7]+|0[bB][0-1]+|\\d+)'
}*/
hljs.QUOTE_STRING_MODE,
{
className: 'string',
begin: '\'', end: '[^\\\\]\'',
illegal: '[^\\\\][^\']'
},
{className: 'label', begin: '^[A-Za-z0-9_.$]+:'},
{className: 'preprocessor', begin: '#', end: '$'},
{ // директивы «.include» «.macro» и т.д.
className: 'preprocessor',
begin: '\\.[a-zA-Z]+'
},
{ // подстановка в «.macro»
className: 'localvars',
begin: '@[0-9]+'
}
]
}
};
]
}
};
}(hljs);

View File

@@ -3,41 +3,44 @@ Language: Axapta
Author: Dmitri Roudakov <dmitri@roudakov.ru>
*/
hljs.LANGUAGES.axapta = {
defaultMode: {
keywords: {'false': 1, 'int': 1, 'abstract': 1, 'private': 1, 'char': 1, 'interface': 1, 'boolean': 1, 'static': 1, 'null': 1, 'if': 1, 'for': 1, 'true': 1, 'while': 1, 'long': 1, 'throw': 1, 'finally': 1, 'protected': 1, 'extends': 1, 'final': 1, 'implements': 1, 'return': 1, 'void': 1, 'enum': 1, 'else': 1, 'break': 1, 'new': 1, 'catch': 1, 'byte': 1, 'super': 1, 'class': 1, 'case': 1, 'short': 1, 'default': 1, 'double': 1, 'public': 1, 'try': 1, 'this': 1, 'switch': 1, 'continue': 1,
'reverse':1, 'firstfast':1,'firstonly':1,'forupdate':1,'nofetch':1, 'sum':1, 'avg':1, 'minof':1, 'maxof':1, 'count':1, 'order':1, 'group':1, 'by':1, 'asc':1, 'desc':1, 'index':1, 'hint':1, 'like':1,
'dispaly':1, 'edit':1, 'client':1, 'server':1, 'ttsbegin':1, 'ttscommit':1,
'str':1, 'real':1, 'date':1, 'container':1, 'anytype':1, 'common':1, 'div':1,'mod':1
},
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
hljs.C_NUMBER_MODE,
{
className: 'preprocessor',
begin: '#', end: '$'
},
{
className: 'class',
begin: '(class |interface )', end: '{',
illegal: ':',
keywords: {'class': 1, 'interface': 1},
contains: [
{
className: 'inheritance',
begin: '(implements|extends)',
keywords: {'extends': 1, 'implements': 1},
relevance: 10
},
{
className: 'title',
begin: hljs.UNDERSCORE_IDENT_RE
}
]
}
]
}
};
hljs.LANGUAGES['axapta'] = function(hljs) {
return {
defaultMode: {
keywords: 'false int abstract private char interface boolean static null if for true ' +
'while long throw finally protected extends final implements return void enum else ' +
'break new catch byte super class case short default double public try this switch ' +
'continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count ' +
'order group by asc desc index hint like dispaly edit client server ttsbegin ' +
'ttscommit str real date container anytype common div mod',
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
hljs.C_NUMBER_MODE,
{
className: 'preprocessor',
begin: '#', end: '$'
},
{
className: 'class',
beginWithKeyword: true, end: '{',
illegal: ':',
keywords: 'class interface',
contains: [
{
className: 'inheritance',
beginWithKeyword: true,
keywords: 'extends implements',
relevance: 10
},
{
className: 'title',
begin: hljs.UNDERSCORE_IDENT_RE
}
]
}
]
}
};
}(hljs);

View File

@@ -3,30 +3,33 @@ Language: Bash
Author: vah <vahtenberg@gmail.com>
*/
hljs.LANGUAGES.bash = function(){
var BASH_LITERAL = {'true' : 1, 'false' : 1};
hljs.LANGUAGES['bash'] = function(hljs) {
var BASH_LITERAL = 'true false';
var VAR1 = {
className: 'variable',
begin: '\\$([a-zA-Z0-9_]+)\\b'
className: 'variable', begin: '\\$[a-zA-Z0-9_]+\\b'
};
var VAR2 = {
className: 'variable',
begin: '\\$\\{(([^}])|(\\\\}))+\\}',
contains: [hljs.C_NUMBER_MODE]
className: 'variable', begin: '\\${([^}]|\\\\})+}'
};
var STRING = {
var QUOTE_STRING = {
className: 'string',
begin: '"', end: '"',
illegal: '\\n',
contains: [hljs.BACKSLASH_ESCAPE, VAR1, VAR2],
relevance: 0
};
var APOS_STRING = {
className: 'string',
begin: '\'', end: '\'',
contains: [{begin: '\'\''}],
relevance: 0
};
var TEST_CONDITION = {
className: 'test_condition',
begin: '', end: '',
contains: [STRING, VAR1, VAR2, hljs.C_NUMBER_MODE],
contains: [QUOTE_STRING, APOS_STRING, VAR1, VAR2],
keywords: {
'literal': BASH_LITERAL
literal: BASH_LITERAL
},
relevance: 0
};
@@ -34,8 +37,8 @@ hljs.LANGUAGES.bash = function(){
return {
defaultMode: {
keywords: {
'keyword': {'if' : 1, 'then' : 1, 'else' : 1, 'fi' : 1, 'for' : 1, 'break' : 1, 'continue' : 1, 'while' : 1, 'in' : 1, 'do' : 1, 'done' : 1, 'echo' : 1, 'exit' : 1, 'return' : 1, 'set' : 1, 'declare' : 1},
'literal': BASH_LITERAL
keyword: 'if then else fi for break continue while in do done echo exit return set declare',
literal: BASH_LITERAL
},
contains: [
{
@@ -43,14 +46,14 @@ hljs.LANGUAGES.bash = function(){
begin: '(#!\\/bin\\/bash)|(#!\\/bin\\/sh)',
relevance: 10
},
hljs.HASH_COMMENT_MODE,
hljs.C_NUMBER_MODE,
STRING,
VAR1,
VAR2,
hljs.HASH_COMMENT_MODE,
QUOTE_STRING,
APOS_STRING,
hljs.inherit(TEST_CONDITION, {begin: '\\[ ', end: ' \\]', relevance: 0}),
hljs.inherit(TEST_CONDITION, {begin: '\\[\\[ ', end: ' \\]\\]'})
]
}
};
}();
}(hljs);

View File

@@ -0,0 +1,105 @@
/*
Language: Clojure
Description: Clojure syntax (based on lisp.js)
Author: mfornos
*/
hljs.LANGUAGES['clojure'] = function(hljs) {
var keywords = {
built_in:
// Clojure keywords
'def cond apply if-not if-let if not not= = &lt; < > &lt;= <= >= == + / * - rem '+
'quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? '+
'set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? '+
'class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? '+
'string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . '+
'inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last '+
'drop-while while intern condp case reduced cycle split-at split-with repeat replicate '+
'iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext '+
'nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends '+
'add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler '+
'set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter '+
'monitor-exit defmacro defn defn- macroexpand macroexpand-1 for doseq dosync dotimes and or '+
'when when-not when-let comp juxt partial sequence memoize constantly complement identity assert '+
'peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast '+
'sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import '+
'intern refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! '+
'assoc! dissoc! pop! disj! import use class type num float double short byte boolean bigint biginteger '+
'bigdec print-method print-dup throw-if throw printf format load compile get-in update-in pr pr-on newline '+
'flush read slurp read-line subvec with-open memfn time ns assert re-find re-groups rand-int rand mod locking '+
'assert-valid-fdecl alias namespace resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! '+
'reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! '+
'new next conj set! memfn to-array future future-call into-array aset gen-class reduce merge map filter find empty '+
'hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list '+
'disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer '+
'chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate '+
'unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta '+
'lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize'
};
var CLJ_IDENT_RE = '[a-zA-Z_0-9\\!\\.\\?\\-\\+\\*\\/\\<\\=\\>\\&\\#\\$\';]+';
var SIMPLE_NUMBER_RE = '[\\s:\\(\\{]+\\d+(\\.\\d+)?';
var NUMBER = {
className: 'number', begin: SIMPLE_NUMBER_RE,
relevance: 0
};
var STRING = {
className: 'string',
begin: '"', end: '"',
contains: [hljs.BACKSLASH_ESCAPE],
relevance: 0
};
var COMMENT = {
className: 'comment',
begin: ';', end: '$',
relevance: 0
};
var COLLECTION = {
className: 'collection',
begin: '[\\[\\{]', end: '[\\]\\}]'
};
var HINT = {
className: 'comment',
begin: '\\^' + CLJ_IDENT_RE
};
var HINT_COL = {
className: 'comment',
begin: '\\^\\{', end: '\\}'
};
var KEY = {
className: 'attribute',
begin: '[:]' + CLJ_IDENT_RE
};
var LIST = {
className: 'list',
begin: '\\(', end: '\\)',
relevance: 0
};
var BODY = {
endsWithParent: true, excludeEnd: true,
keywords: {literal: 'true false nil'},
relevance: 0
};
var TITLE = {
keywords: keywords,
lexems: CLJ_IDENT_RE,
className: 'title', begin: CLJ_IDENT_RE,
starts: BODY
};
LIST.contains = [{className: 'comment', begin: 'comment'}, TITLE];
BODY.contains = [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER];
COLLECTION.contains = [LIST, STRING, HINT, COMMENT, KEY, COLLECTION, NUMBER];
return {
case_insensitive: true,
defaultMode: {
illegal: '\\S',
contains: [
COMMENT,
LIST
]
}
}
}(hljs);

View File

@@ -5,20 +5,36 @@ Author: Igor Kalnitsky <igor.kalnitsky@gmail.com>
Website: http://kalnitsky.org.ua/
*/
hljs.LANGUAGES.cmake = {
case_insensitive: true,
defaultMode: {
keywords: {
'add_custom_command': 2, 'add_custom_target': 2, 'add_definitions': 2, 'add_dependencies': 2, 'add_executable': 2, 'add_library': 2, 'add_subdirectory': 2, 'add_executable': 2, 'add_library': 2, 'add_subdirectory': 2, 'add_test': 2, 'aux_source_directory': 2, 'break': 1, 'build_command': 2, 'cmake_minimum_required': 3, 'cmake_policy': 3, 'configure_file': 1, 'create_test_sourcelist': 1, 'define_property': 1, 'else': 1, 'elseif': 1, 'enable_language': 2, 'enable_testing': 2, 'endforeach': 1, 'endfunction': 1, 'endif': 1, 'endmacro': 1, 'endwhile': 1, 'execute_process': 2, 'export': 1, 'find_file': 1, 'find_library': 2, 'find_package': 2, 'find_path': 1, 'find_program': 1, 'fltk_wrap_ui': 2, 'foreach': 1, 'function': 1, 'get_cmake_property': 3, 'get_directory_property': 1, 'get_filename_component': 1, 'get_property': 1, 'get_source_file_property': 1, 'get_target_property': 1, 'get_test_property': 1, 'if': 1, 'include': 1, 'include_directories': 2, 'include_external_msproject': 1, 'include_regular_expression': 2, 'install': 1, 'link_directories': 1, 'load_cache': 1, 'load_command': 1, 'macro': 1, 'mark_as_advanced': 1, 'message': 1, 'option': 1, 'output_required_files': 1, 'project': 1, 'qt_wrap_cpp': 2, 'qt_wrap_ui': 2, 'remove_definitions': 2, 'return': 1, 'separate_arguments': 1, 'set': 1, 'set_directory_properties': 1, 'set_property': 1, 'set_source_files_properties': 1, 'set_target_properties': 1, 'set_tests_properties': 1, 'site_name': 1, 'source_group': 1, 'string': 1, 'target_link_libraries': 2, 'try_compile': 2, 'try_run': 2, 'unset': 1, 'variable_watch': 2, 'while': 1, 'build_name': 1, 'exec_program': 1, 'export_library_dependencies': 1, 'install_files': 1, 'install_programs': 1, 'install_targets': 1, 'link_libraries': 1, 'make_directory': 1, 'remove': 1, 'subdir_depends': 1, 'subdirs': 1, 'use_mangled_mesa': 1, 'utility_source': 1, 'variable_requires': 1, 'write_file': 1 },
contains: [
{
className: 'envvar',
begin: '\\${', end: '}'
},
hljs.HASH_COMMENT_MODE,
hljs.QUOTE_STRING_MODE,
hljs.NUMBER_MODE
]
}
};
hljs.LANGUAGES['cmake'] = function(hljs) {
return {
case_insensitive: true,
defaultMode: {
keywords: 'add_custom_command add_custom_target add_definitions add_dependencies ' +
'add_executable add_library add_subdirectory add_test aux_source_directory ' +
'break build_command cmake_minimum_required cmake_policy configure_file ' +
'create_test_sourcelist define_property else elseif enable_language enable_testing ' +
'endforeach endfunction endif endmacro endwhile execute_process export find_file ' +
'find_library find_package find_path find_program fltk_wrap_ui foreach function ' +
'get_cmake_property get_directory_property get_filename_component get_property ' +
'get_source_file_property get_target_property get_test_property if include ' +
'include_directories include_external_msproject include_regular_expression install ' +
'link_directories load_cache load_command macro mark_as_advanced message option ' +
'output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return ' +
'separate_arguments set set_directory_properties set_property ' +
'set_source_files_properties set_target_properties set_tests_properties site_name ' +
'source_group string target_link_libraries try_compile try_run unset variable_watch ' +
'while build_name exec_program export_library_dependencies install_files ' +
'install_programs install_targets link_libraries make_directory remove subdir_depends ' +
'subdirs use_mangled_mesa utility_source variable_requires write_file',
contains: [
{
className: 'envvar',
begin: '\\${', end: '}'
},
hljs.HASH_COMMENT_MODE,
hljs.QUOTE_STRING_MODE,
hljs.NUMBER_MODE
]
}
};
}(hljs);

View File

@@ -0,0 +1,112 @@
/*
Language: CoffeeScript
Author: Dmytrii Nagirniak <dnagir@gmail.com>
Contributors: Oleg Efimov <efimovov@gmail.com>
Description: CoffeeScript is a programming language that transcompiles to JavaScript. For info about language see http://coffeescript.org/
*/
hljs.LANGUAGES['coffeescript'] = function(hljs) {
var keywords = {
keyword:
// JS keywords
'in if for while finally new do return else break catch instanceof throw try this ' +
'switch continue typeof delete debugger class extends super' +
// Coffee keywords
'then unless until loop of by when and or is isnt not',
literal:
// JS literals
'true false null undefined ' +
// Coffee literals
'yes no on off ',
reserved: 'case default function var void with const let enum export import native ' +
'__hasProp __extends __slice __bind __indexOf'
};
var JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';
var COFFEE_QUOTE_STRING_SUBST_MODE = {
className: 'subst',
begin: '#\\{', end: '}',
keywords: keywords,
contains: [hljs.C_NUMBER_MODE, hljs.BINARY_NUMBER_MODE]
};
var COFFEE_QUOTE_STRING_MODE = {
className: 'string',
begin: '"', end: '"',
relevance: 0,
contains: [hljs.BACKSLASH_ESCAPE, COFFEE_QUOTE_STRING_SUBST_MODE]
};
var COFFEE_HEREDOC_MODE = {
className: 'string',
begin: '"""', end: '"""',
contains: [hljs.BACKSLASH_ESCAPE, COFFEE_QUOTE_STRING_SUBST_MODE]
};
var COFFEE_HERECOMMENT_MODE = {
className: 'comment',
begin: '###', end: '###'
};
var COFFEE_HEREGEX_MODE = {
className: 'regexp',
begin: '///', end: '///',
contains: [hljs.HASH_COMMENT_MODE]
};
var COFFEE_EMPTY_REGEX_MODE = {
className: 'regexp', begin: '//[gim]*'
};
var COFFEE_REGEX_MODE = {
className: 'regexp',
begin: '/\\S(\\\\.|[^\\n])*/[gim]*' // \S is required to parse x / 2 / 3 as two divisions
};
var COFFEE_FUNCTION_DECLARATION_MODE = {
className: 'function',
begin: JS_IDENT_RE + '\\s*=\\s*(\\(.+\\))?\\s*[-=]>',
returnBegin: true,
contains: [
{
className: 'title',
begin: JS_IDENT_RE
},
{
className: 'params',
begin: '\\(', end: '\\)'
}
]
};
var COFFEE_EMBEDDED_JAVASCRIPT = {
begin: '`', end: '`',
excludeBegin: true, excludeEnd: true,
subLanguage: 'javascript'
};
return {
defaultMode: {
keywords: keywords,
contains: [
// Numbers
hljs.C_NUMBER_MODE,
hljs.BINARY_NUMBER_MODE,
// Strings
hljs.APOS_STRING_MODE,
COFFEE_HEREDOC_MODE, // Should be before COFFEE_QUOTE_STRING_MODE for greater priority
COFFEE_QUOTE_STRING_MODE,
// Comments
COFFEE_HERECOMMENT_MODE, // Should be before hljs.HASH_COMMENT_MODE for greater priority
hljs.HASH_COMMENT_MODE,
// CoffeeScript specific modes
COFFEE_HEREGEX_MODE,
COFFEE_EMPTY_REGEX_MODE,
COFFEE_REGEX_MODE,
COFFEE_EMBEDDED_JAVASCRIPT,
COFFEE_FUNCTION_DECLARATION_MODE
]
}
};
}(hljs);

View File

@@ -1,42 +1,21 @@
/*
Language: C++
Contributors: Evgeny Stepanischev <imbolk@gmail.com>
*/
hljs.LANGUAGES.cpp = function(){
hljs.LANGUAGES['cpp'] = function(hljs) {
var CPP_KEYWORDS = {
'keyword': {
'false': 1, 'int': 1, 'float': 1, 'while': 1, 'private': 1, 'char': 1,
'catch': 1, 'export': 1, 'virtual': 1, 'operator': 2, 'sizeof': 2,
'dynamic_cast': 2, 'typedef': 2, 'const_cast': 2, 'const': 1,
'struct': 1, 'for': 1, 'static_cast': 2, 'union': 1, 'namespace': 1,
'unsigned': 1, 'long': 1, 'throw': 1, 'volatile': 2, 'static': 1,
'protected': 1, 'bool': 1, 'template': 1, 'mutable': 1, 'if': 1,
'public': 1, 'friend': 2, 'do': 1, 'return': 1, 'goto': 1, 'auto': 1,
'void': 2, 'enum': 1, 'else': 1, 'break': 1, 'new': 1, 'extern': 1,
'using': 1, 'true': 1, 'class': 1, 'asm': 1, 'case': 1, 'typeid': 1,
'short': 1, 'reinterpret_cast': 2, 'default': 1, 'double': 1,
'register': 1, 'explicit': 1, 'signed': 1, 'typename': 1, 'try': 1,
'this': 1, 'switch': 1, 'continue': 1, 'wchar_t': 1, 'inline': 1,
'delete': 1, 'alignof': 1, 'char16_t': 1, 'char32_t': 1, 'constexpr': 1,
'decltype': 1, 'noexcept': 1, 'nullptr': 1, 'static_assert': 1,
'thread_local': 1
},
'built_in': {
'std': 1, 'string': 1, 'cin': 1, 'cout': 1, 'cerr': 1, 'clog': 1,
'stringstream': 1, 'istringstream': 1, 'ostringstream': 1, 'auto_ptr': 1,
'deque': 1, 'list': 1, 'queue': 1, 'stack': 1, 'vector': 1, 'map': 1,
'set': 1, 'bitset': 1, 'multiset': 1, 'multimap': 1, 'unordered_set': 1,
'unordered_map': 1, 'unordered_multiset': 1, 'unordered_multimap': 1,
'array': 1, 'shared_ptr': 1
}
keyword: 'false int float while private char catch export virtual operator sizeof ' +
'dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace ' +
'unsigned long throw volatile static protected bool template mutable if public friend ' +
'do return goto auto void enum else break new extern using true class asm case typeid ' +
'short reinterpret_cast|10 default double register explicit signed typename try this ' +
'switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype ' +
'noexcept nullptr static_assert thread_local restrict _Bool complex',
built_in: 'std string cin cout cerr clog stringstream istringstream ostringstream ' +
'auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set ' +
'unordered_map unordered_multiset unordered_multimap array shared_ptr'
};
var STL_CONTAINER = {
className: 'stl_container',
begin: '\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<', end: '>',
keywords: CPP_KEYWORDS,
relevance: 10
};
STL_CONTAINER.contains = [STL_CONTAINER];
return {
defaultMode: {
keywords: CPP_KEYWORDS,
@@ -47,16 +26,26 @@ hljs.LANGUAGES.cpp = function(){
hljs.QUOTE_STRING_MODE,
{
className: 'string',
begin: '\'', end: '[^\\\\]\'',
illegal: '[^\\\\][^\']'
begin: '\'\\\\?.', end: '\'',
illegal: '.'
},
{
className: 'number',
begin: '\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)'
},
hljs.C_NUMBER_MODE,
{
className: 'preprocessor',
begin: '#', end: '$'
},
STL_CONTAINER
{
className: 'stl_container',
begin: '\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<', end: '>',
keywords: CPP_KEYWORDS,
relevance: 10,
contains: ['self']
}
]
}
};
}();
}(hljs);

View File

@@ -3,39 +3,51 @@ Language: C#
Author: Jason Diamond <jason@diamond.name>
*/
hljs.LANGUAGES.cs = {
defaultMode: {
keywords: {
hljs.LANGUAGES['cs'] = function(hljs) {
return {
defaultMode: {
keywords:
// Normal keywords.
'abstract': 1, 'as': 1, 'base': 1, 'bool': 1, 'break': 1, 'byte': 1, 'case': 1, 'catch': 1, 'char': 1, 'checked': 1, 'class': 1, 'const': 1, 'continue': 1, 'decimal': 1, 'default': 1, 'delegate': 1, 'do': 1, 'do': 1, 'double': 1, 'else': 1, 'enum': 1, 'event': 1, 'explicit': 1, 'extern': 1, 'false': 1, 'finally': 1, 'fixed': 1, 'float': 1, 'for': 1, 'foreach': 1, 'goto': 1, 'if': 1, 'implicit': 1, 'in': 1, 'int': 1, 'interface': 1, 'internal': 1, 'is': 1, 'lock': 1, 'long': 1, 'namespace': 1, 'new': 1, 'null': 1, 'object': 1, 'operator': 1, 'out': 1, 'override': 1, 'params': 1, 'private': 1, 'protected': 1, 'public': 1, 'readonly': 1, 'ref': 1, 'return': 1, 'sbyte': 1, 'sealed': 1, 'short': 1, 'sizeof': 1, 'stackalloc': 1, 'static': 1, 'string': 1, 'struct': 1, 'switch': 1, 'this': 1, 'throw': 1, 'true': 1, 'try': 1, 'typeof': 1, 'uint': 1, 'ulong': 1, 'unchecked': 1, 'unsafe': 1, 'ushort': 1, 'using': 1, 'virtual': 1, 'volatile': 1, 'void': 1, 'while': 1,
'abstract as base bool break byte case catch char checked class const continue decimal ' +
'default delegate do double else enum event explicit extern false finally fixed float ' +
'for foreach goto if implicit in int interface internal is lock long namespace new null ' +
'object operator out override params private protected public readonly ref return sbyte ' +
'sealed short sizeof stackalloc static string struct switch this throw true try typeof ' +
'uint ulong unchecked unsafe ushort using virtual volatile void while ' +
// Contextual keywords.
'ascending': 1, 'descending': 1, 'from': 1, 'get': 1, 'group': 1, 'into': 1, 'join': 1, 'let': 1, 'orderby': 1, 'partial': 1, 'select': 1, 'set': 1, 'value': 1, 'var': 1, 'where': 1, 'yield': 1
},
contains: [
{
className: 'comment',
begin: '///', end: '$', returnBegin: true,
contains: [
{
className: 'xmlDocTag',
begin: '///|<!--|-->'
},
{
className: 'xmlDocTag',
begin: '</?', end: '>'
}
]
},
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
{
className: 'string',
begin: '@"', end: '"',
contains: [{begin: '""'}]
},
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
hljs.C_NUMBER_MODE
]
}
};
'ascending descending from get group into join let orderby partial select set value var '+
'where yield',
contains: [
{
className: 'comment',
begin: '///', end: '$', returnBegin: true,
contains: [
{
className: 'xmlDocTag',
begin: '///|<!--|-->'
},
{
className: 'xmlDocTag',
begin: '</?', end: '>'
}
]
},
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
{
className: 'preprocessor',
begin: '#', end: '$',
keywords: 'if else elif endif define undef warning error line region endregion pragma checksum'
},
{
className: 'string',
begin: '@"', end: '"',
contains: [{begin: '""'}]
},
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
hljs.C_NUMBER_MODE
]
}
};
}(hljs);

View File

@@ -2,14 +2,11 @@
Language: CSS
*/
hljs.LANGUAGES.css = function() {
hljs.LANGUAGES['css'] = function(hljs) {
var FUNCTION = {
className: 'function',
begin: hljs.IDENT_RE + '\\(', end: '\\)',
contains: [{
endsWithParent: true, excludeEnd: true,
contains: [hljs.NUMBER_MODE, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]
}]
contains: [hljs.NUMBER_MODE, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]
};
return {
case_insensitive: true,
@@ -37,16 +34,16 @@ hljs.LANGUAGES.css = function() {
className: 'at_rule',
begin: '@(font-face|page)',
lexems: '[a-z-]+',
keywords: {'font-face': 1, 'page': 1}
keywords: 'font-face page'
},
{
className: 'at_rule',
begin: '@', end: '[{;]', // at_rule eating first "{" is a good thing
// because it doesn't let it to be parsed as
// because it doesnt let it to be parsed as
// a rule set but instead drops parser into
// the defaultMode which is how it should be.
excludeEnd: true,
keywords: {'import': 1, 'page': 1, 'media': 1, 'charset': 1},
keywords: 'import page media charset',
contains: [
FUNCTION,
hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE,
@@ -98,4 +95,4 @@ hljs.LANGUAGES.css = function() {
]
}
};
}();
}(hljs);

View File

@@ -0,0 +1,269 @@
/*
Language: D
Author: Aleksandar Ruzicic <aleksandar@ruzicic.info>
Description: D is a language with C-like syntax and static typing. It pragmatically combines efficiency, control, and modeling power, with safety and programmer productivity.
Version: 1.0a
Date: 2012-04-08
*/
/**
* Known issues:
*
* - invalid hex string literals will be recognized as a double quoted strings
* but 'x' at the beginning of string will not be matched
*
* - delimited string literals are not checked for matching end delimiter
* (not possible to do with js regexp)
*
* - content of token string is colored as a string (i.e. no keyword coloring inside a token string)
* also, content of token string is not validated to contain only valid D tokens
*
* - special token sequence rule is not strictly following D grammar (anything following #line
* up to the end of line is matched as special token sequence)
*/
hljs.LANGUAGES['d'] = function(hljs) {
/**
* Language keywords
*
* @type {Object}
*/
var D_KEYWORDS = {
keyword:
'abstract alias align asm assert auto body break byte case cast catch class ' +
'const continue debug default delete deprecated do else enum export extern final ' +
'finally for foreach foreach_reverse|10 goto if immutable import in inout int ' +
'interface invariant is lazy macro mixin module new nothrow out override package ' +
'pragma private protected public pure ref return scope shared static struct ' +
'super switch synchronized template this throw try typedef typeid typeof union ' +
'unittest version void volatile while with __FILE__ __LINE__ __gshared|10 ' +
'__thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__',
built_in:
'bool cdouble cent cfloat char creal dchar delegate double dstring float function ' +
'idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar ' +
'wstring',
literal:
'false null true'
};
/**
* Number literal regexps
*
* @type {String}
*/
var decimal_integer_re = '(0|[1-9][\\d_]*)',
decimal_integer_nosus_re = '(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)',
binary_integer_re = '0[bB][01_]+',
hexadecimal_digits_re = '([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)',
hexadecimal_integer_re = '0[xX]' + hexadecimal_digits_re,
decimal_exponent_re = '([eE][+-]?' + decimal_integer_nosus_re + ')',
decimal_float_re = '(' + decimal_integer_nosus_re + '(\\.\\d*|' + decimal_exponent_re + ')|' +
'\\d+\\.' + decimal_integer_nosus_re + decimal_integer_nosus_re + '|' +
'\\.' + decimal_integer_re + decimal_exponent_re + '?' +
')',
hexadecimal_float_re = '(0[xX](' +
hexadecimal_digits_re + '\\.' + hexadecimal_digits_re + '|'+
'\\.?' + hexadecimal_digits_re +
')[pP][+-]?' + decimal_integer_nosus_re + ')';
integer_re = '(' +
decimal_integer_re + '|' +
binary_integer_re + '|' +
hexadecimal_integer_re +
')',
float_re = '(' +
hexadecimal_float_re + '|' +
decimal_float_re +
')';
/**
* Escape sequence supported in D string and character literals
*
* @type {String}
*/
var escape_sequence_re = '\\\\(' +
'[\'"\\?\\\\abfnrtv]|' + // common escapes
'u[\\dA-Fa-f]{4}|' + // four hex digit unicode codepoint
'[0-7]{1,3}|' + // one to three octal digit ascii char code
'x[\\dA-Fa-f]{2}|' + // two hex digit ascii char code
'U[\\dA-Fa-f]{8}' + // eight hex digit unicode codepoint
')|' +
'&[a-zA-Z\\d]{2,};'; // named character entity
/**
* D integer number literals
*
* @type {Object}
*/
var D_INTEGER_MODE = {
className: 'number',
begin: '\\b' + integer_re + '(L|u|U|Lu|LU|uL|UL)?',
relevance: 0
};
/**
* [D_FLOAT_MODE description]
* @type {Object}
*/
var D_FLOAT_MODE = {
className: 'number',
begin: '\\b(' +
float_re + '([fF]|L|i|[fF]i|Li)?|' +
integer_re + '(i|[fF]i|Li)' +
')',
relevance: 0
};
/**
* D character literal
*
* @type {Object}
*/
var D_CHARACTER_MODE = {
className: 'string',
begin: '\'(' + escape_sequence_re + '|.)', end: '\'',
illegal: '.'
};
/**
* D string escape sequence
*
* @type {Object}
*/
var D_ESCAPE_SEQUENCE = {
begin: escape_sequence_re,
relevance: 0
}
/**
* D double quoted string literal
*
* @type {Object}
*/
var D_STRING_MODE = {
className: 'string',
begin: '"',
contains: [D_ESCAPE_SEQUENCE],
end: '"[cwd]?',
relevance: 0
};
/**
* D wysiwyg and delimited string literals
*
* @type {Object}
*/
var D_WYSIWYG_DELIMITED_STRING_MODE = {
className: 'string',
begin: '[rq]"',
end: '"[cwd]?',
relevance: 5
};
/**
* D alternate wysiwyg string literal
*
* @type {Object}
*/
var D_ALTERNATE_WYSIWYG_STRING_MODE = {
className: 'string',
begin: '`',
end: '`[cwd]?'
};
/**
* D hexadecimal string literal
*
* @type {Object}
*/
var D_HEX_STRING_MODE = {
className: 'string',
begin: 'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',
relevance: 10
};
/**
* D delimited string literal
*
* @type {Object}
*/
var D_TOKEN_STRING_MODE = {
className: 'string',
begin: 'q"\\{',
end: '\\}"'
};
/**
* Hashbang support
*
* @type {Object}
*/
var D_HASHBANG_MODE = {
className: 'shebang',
begin: '^#!',
end: '$',
relevance: 5
};
/**
* D special token sequence
*
* @type {Object}
*/
var D_SPECIAL_TOKEN_SEQUENCE_MODE = {
className: 'preprocessor',
begin: '#(line)',
end: '$',
relevance: 5
};
/**
* D attributes
*
* @type {Object}
*/
var D_ATTRIBUTE_MODE = {
className: 'keyword',
begin: '@[a-zA-Z_][a-zA-Z_\\d]*'
};
/**
* D nesting comment
*
* @type {Object}
*/
var D_NESTING_COMMENT_MODE = {
className: 'comment',
begin: '\\/\\+',
contains: ['self'],
end: '\\+\\/',
relevance: 10
}
return {
defaultMode: {
lexems: hljs.UNDERSCORE_IDENT_RE,
keywords: D_KEYWORDS,
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
D_NESTING_COMMENT_MODE,
D_HEX_STRING_MODE,
D_STRING_MODE,
D_WYSIWYG_DELIMITED_STRING_MODE,
D_ALTERNATE_WYSIWYG_STRING_MODE,
D_TOKEN_STRING_MODE,
D_FLOAT_MODE,
D_INTEGER_MODE,
D_CHARACTER_MODE,
D_HASHBANG_MODE,
D_SPECIAL_TOKEN_SEQUENCE_MODE,
D_ATTRIBUTE_MODE
]
}
};
}(hljs);

View File

@@ -2,9 +2,21 @@
Language: Delphi
*/
hljs.LANGUAGES.delphi = function(){
var DELPHI_KEYWORDS = {'and': 1, 'safecall': 1, 'cdecl': 1, 'then': 1, 'string': 1, 'exports': 1, 'library': 1, 'not': 1, 'pascal': 1, 'set': 1, 'virtual': 1, 'file': 1, 'in': 1, 'array': 1, 'label': 1, 'packed': 1, 'end.': 1, 'index': 1, 'while': 1, 'const': 1, 'raise': 1, 'for': 1, 'to': 1, 'implementation': 1, 'with': 1, 'except': 1, 'overload': 1, 'destructor': 1, 'downto': 1, 'finally': 1, 'program': 1, 'exit': 1, 'unit': 1, 'inherited': 1, 'override': 1, 'if': 1, 'type': 1, 'until': 1, 'function': 1, 'do': 1, 'begin': 1, 'repeat': 1, 'goto': 1, 'nil': 1, 'far': 1, 'initialization': 1, 'object': 1, 'else': 1, 'var': 1, 'uses': 1, 'external': 1, 'resourcestring': 1, 'interface': 1, 'end': 1, 'finalization': 1, 'class': 1, 'asm': 1, 'mod': 1, 'case': 1, 'on': 1, 'shr': 1, 'shl': 1, 'of': 1, 'register': 1, 'xorwrite': 1, 'threadvar': 1, 'try': 1, 'record': 1, 'near': 1, 'stored': 1, 'constructor': 1, 'stdcall': 1, 'inline': 1, 'div': 1, 'out': 1, 'or': 1, 'procedure': 1};
var DELPHI_CLASS_KEYWORDS = {'safecall': 1, 'stdcall': 1, 'pascal': 1, 'stored': 1, 'const': 1, 'implementation': 1, 'finalization': 1, 'except': 1, 'to': 1, 'finally': 1, 'program': 1, 'inherited': 1, 'override': 1, 'then': 1, 'exports': 1, 'string': 1, 'read': 1, 'not': 1, 'mod': 1, 'shr': 1, 'try': 1, 'div': 1, 'shl': 1, 'set': 1, 'library': 1, 'message': 1, 'packed': 1, 'index': 1, 'for': 1, 'near': 1, 'overload': 1, 'label': 1, 'downto': 1, 'exit': 1, 'public': 1, 'goto': 1, 'interface': 1, 'asm': 1, 'on': 1, 'of': 1, 'constructor': 1, 'or': 1, 'private': 1, 'array': 1, 'unit': 1, 'raise': 1, 'destructor': 1, 'var': 1, 'type': 1, 'until': 1, 'function': 1, 'else': 1, 'external': 1, 'with': 1, 'case': 1, 'default': 1, 'record': 1, 'while': 1, 'protected': 1, 'property': 1, 'procedure': 1, 'published': 1, 'and': 1, 'cdecl': 1, 'do': 1, 'threadvar': 1, 'file': 1, 'in': 1, 'if': 1, 'end': 1, 'virtual': 1, 'write': 1, 'far': 1, 'out': 1, 'begin': 1, 'repeat': 1, 'nil': 1, 'initialization': 1, 'object': 1, 'uses': 1, 'resourcestring': 1, 'class': 1, 'register': 1, 'xorwrite': 1, 'inline': 1, 'static': 1};
hljs.LANGUAGES['delphi'] = function(hljs) {
var DELPHI_KEYWORDS = 'and safecall cdecl then string exports library not pascal set ' +
'virtual file in array label packed end. index while const raise for to implementation ' +
'with except overload destructor downto finally program exit unit inherited override if ' +
'type until function do begin repeat goto nil far initialization object else var uses ' +
'external resourcestring interface end finalization class asm mod case on shr shl of ' +
'register xorwrite threadvar try record near stored constructor stdcall inline div out or ' +
'procedure';
var DELPHI_CLASS_KEYWORDS = 'safecall stdcall pascal stored const implementation ' +
'finalization except to finally program inherited override then exports string read not ' +
'mod shr try div shl set library message packed index for near overload label downto exit ' +
'public goto interface asm on of constructor or private array unit raise destructor var ' +
'type until function else external with case default record while protected property ' +
'procedure published and cdecl do threadvar file in if end virtual write far out begin ' +
'repeat nil initialization object uses resourcestring class register xorwrite inline static';
var CURLY_COMMENT = {
className: 'comment',
begin: '{', end: '}',
@@ -26,8 +38,8 @@ hljs.LANGUAGES.delphi = function(){
};
var FUNCTION = {
className: 'function',
begin: '(procedure|constructor|destructor|function)\\b', end: '[:;]',
keywords: {'function': 1, 'constructor': 10, 'destructor': 10, 'procedure': 10},
beginWithKeyword: true, end: '[:;]',
keywords: 'function constructor|10 destructor|10 procedure|10',
contains: [
{
className: 'title', begin: hljs.IDENT_RE
@@ -57,14 +69,11 @@ hljs.LANGUAGES.delphi = function(){
keywords: DELPHI_CLASS_KEYWORDS,
contains: [
STRING, CHAR_STRING,
CURLY_COMMENT, PAREN_COMMENT,
CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE,
FUNCTION
]
}
]
},
modes: [
]
}
};
}();
}(hljs);

View File

@@ -4,61 +4,63 @@ Description: Unified and context diff
Author: Vasily Polovnyov <vast@whiteants.net>
*/
hljs.LANGUAGES.diff = {
case_insensitive: true,
defaultMode: {
contains: [
{
className: 'chunk',
begin: '^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$',
relevance: 10
},
{
className: 'chunk',
begin: '^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$',
relevance: 10
},
{
className: 'chunk',
begin: '^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$',
relevance: 10
},
{
className: 'header',
begin: 'Index: ', end: '$'
},
{
className: 'header',
begin: '=====', end: '=====$'
},
{
className: 'header',
begin: '^\\-\\-\\-', end: '$'
},
{
className: 'header',
begin: '^\\*{3} ', end: '$'
},
{
className: 'header',
begin: '^\\+\\+\\+', end: '$'
},
{
className: 'header',
begin: '\\*{5}', end: '\\*{5}$'
},
{
className: 'addition',
begin: '^\\+', end: '$'
},
{
className: 'deletion',
begin: '^\\-', end: '$'
},
{
className: 'change',
begin: '^\\!', end: '$'
}
]
}
};
hljs.LANGUAGES['diff'] = function(hljs) {
return {
case_insensitive: true,
defaultMode: {
contains: [
{
className: 'chunk',
begin: '^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$',
relevance: 10
},
{
className: 'chunk',
begin: '^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$',
relevance: 10
},
{
className: 'chunk',
begin: '^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$',
relevance: 10
},
{
className: 'header',
begin: 'Index: ', end: '$'
},
{
className: 'header',
begin: '=====', end: '=====$'
},
{
className: 'header',
begin: '^\\-\\-\\-', end: '$'
},
{
className: 'header',
begin: '^\\*{3} ', end: '$'
},
{
className: 'header',
begin: '^\\+\\+\\+', end: '$'
},
{
className: 'header',
begin: '\\*{5}', end: '\\*{5}$'
},
{
className: 'addition',
begin: '^\\+', end: '$'
},
{
className: 'deletion',
begin: '^\\-', end: '$'
},
{
className: 'change',
begin: '^\\!', end: '$'
}
]
}
};
}(hljs);

View File

@@ -1,9 +1,11 @@
/*
Language: Django
Requires: xml.js
Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
Contributors: Ilya Baryshev <baryshev@gmail.com>
*/
hljs.LANGUAGES.django = function() {
hljs.LANGUAGES['django'] = function(hljs) {
function allowsDjangoSyntax(mode, parent) {
return (
@@ -18,7 +20,7 @@ hljs.LANGUAGES.django = function() {
for (var key in mode) {
if (key != 'contains') {
result[key] = mode[key];
};
}
var contains = [];
for (var i = 0; mode.contains && i < mode.contains.length; i++) {
contains.push(copy(mode.contains[i], mode));
@@ -36,7 +38,15 @@ hljs.LANGUAGES.django = function() {
var FILTER = {
className: 'filter',
begin: '\\|[A-Za-z]+\\:?', excludeEnd: true,
keywords: {'truncatewords': 1, 'removetags': 1, 'linebreaksbr': 1, 'yesno': 1, 'get_digit': 1, 'timesince': 1, 'random': 1, 'striptags': 1, 'filesizeformat': 1, 'escape': 1, 'linebreaks': 1, 'length_is': 1, 'ljust': 1, 'rjust': 1, 'cut': 1, 'urlize': 1, 'fix_ampersands': 1, 'title': 1, 'floatformat': 1, 'capfirst': 1, 'pprint': 1, 'divisibleby': 1, 'add': 1, 'make_list': 1, 'unordered_list': 1, 'urlencode': 1, 'timeuntil': 1, 'urlizetrunc': 1, 'wordcount': 1, 'stringformat': 1, 'linenumbers': 1, 'slice': 1, 'date': 1, 'dictsort': 1, 'dictsortreversed': 1, 'default_if_none': 1, 'pluralize': 1, 'lower': 1, 'join': 1, 'center': 1, 'default': 1, 'truncatewords_html': 1, 'upper': 1, 'length': 1, 'phone2numeric': 1, 'wordwrap': 1, 'time': 1, 'addslashes': 1, 'slugify': 1, 'first': 1},
keywords:
'truncatewords removetags linebreaksbr yesno get_digit timesince random striptags ' +
'filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands ' +
'title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode ' +
'timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort ' +
'dictsortreversed default_if_none pluralize lower join center default ' +
'truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first ' +
'escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize ' +
'localtime utc timezone',
contains: [
{className: 'argument', begin: '"', end: '"'}
]
@@ -54,7 +64,15 @@ hljs.LANGUAGES.django = function() {
{
className: 'template_tag',
begin: '{%', end: '%}',
keywords: {'comment': 1, 'endcomment': 1, 'load': 1, 'templatetag': 1, 'ifchanged': 1, 'endifchanged': 1, 'if': 1, 'endif': 1, 'firstof': 1, 'for': 1, 'endfor': 1, 'in': 1, 'ifnotequal': 1, 'endifnotequal': 1, 'widthratio': 1, 'extends': 1, 'include': 1, 'spaceless': 1, 'endspaceless': 1, 'regroup': 1, 'by': 1, 'as': 1, 'ifequal': 1, 'endifequal': 1, 'ssi': 1, 'now': 1, 'with': 1, 'cycle': 1, 'url': 1, 'filter': 1, 'endfilter': 1, 'debug': 1, 'block': 1, 'endblock': 1, 'else': 1},
keywords:
'comment endcomment load templatetag ifchanged endifchanged if endif firstof for ' +
'endfor in ifnotequal endifnotequal widthratio extends include spaceless ' +
'endspaceless regroup by as ifequal endifequal ssi now with cycle url filter ' +
'endfilter debug block endblock else autoescape endautoescape csrf_token empty elif ' +
'endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix ' +
'plural get_current_language language get_available_languages ' +
'get_current_language_bidi get_language_info get_language_info_list localize ' +
'endlocalize localtime endlocaltime timezone endtimezone get_current_timezone',
contains: [FILTER]
},
{
@@ -69,4 +87,4 @@ hljs.LANGUAGES.django = function() {
defaultMode: copy(hljs.LANGUAGES.xml.defaultMode)
};
}();
}(hljs);

View File

@@ -3,27 +3,35 @@ Language: DOS .bat
Author: Alexander Makarov (http://rmcreative.ru/)
*/
hljs.LANGUAGES.dos = {
case_insensitive: true,
defaultMode: {
keywords: {
'flow': {'if':1, 'else':1, 'goto':1, 'for':1, 'in':1, 'do':1, 'call':1, 'exit':1, 'not':1, 'exist':1, 'errorlevel':1, 'defined':1, 'equ':1, 'neq':1, 'lss':1, 'leq':1, 'gtr':1, 'geq':1},
'keyword':{'shift':1, 'cd':1, 'dir':1, 'echo':1, 'setlocal':1, 'endlocal':1, 'set':1, 'pause':1, 'copy':1},
'stream':{'prn':1, 'nul':1, 'lpt3':1, 'lpt2':1, 'lpt1':1, 'con':1, 'com4':1, 'com3':1, 'com2':1, 'com1':1, 'aux':1},
'winutils':{'ping':1, 'net':1, 'ipconfig':1, 'taskkill':1, 'xcopy':1, 'ren':1, 'del':1}
},
contains: [
{
className: 'envvar', begin: '%[^ ]+?%'
hljs.LANGUAGES['dos'] = function(hljs) {
return {
case_insensitive: true,
defaultMode: {
keywords: {
flow: 'if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr geq',
keyword: 'shift cd dir echo setlocal endlocal set pause copy',
stream: 'prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux',
winutils: 'ping net ipconfig taskkill xcopy ren del'
},
{
className: 'number', begin: '\\b\\d+',
relevance: 0
},
{
className: 'comment',
begin: '@?rem', end: '$'
}
]
}
};
contains: [
{
className: 'envvar', begin: '%%[^ ]'
},
{
className: 'envvar', begin: '%[^ ]+?%'
},
{
className: 'envvar', begin: '![^ ]+?!'
},
{
className: 'number', begin: '\\b\\d+',
relevance: 0
},
{
className: 'comment',
begin: '@?rem', end: '$'
}
]
}
};
}(hljs);

View File

@@ -3,79 +3,55 @@
Author: Sergey Ignatov <sergey@ignatov.spb.su>
*/
hljs.LANGUAGES.erlang_repl = {
defaultMode: {
keywords: {
'special_functions':{
'spawn':10,
'spawn_link':10,
'self':2
hljs.LANGUAGES['erlang-repl'] = function(hljs) {
return {
defaultMode: {
keywords: {
special_functions:
'spawn spawn_link self',
reserved:
'after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if ' +
'let not of or orelse|10 query receive rem try when xor'
},
'reserved':{
'after':1,
'and':1,
'andalso':5,
'band':1,
'begin':1,
'bnot':1,
'bor':1,
'bsl':1,
'bsr':1,
'bxor':1,
'case':1,
'catch':0,
'cond':1,
'div':1,
'end':1,
'fun':0,
'if':0,
'let':1,
'not':0,
'of':1,
'or':1,
'orelse':5,
'query':1,
'receive':0,
'rem':1,
'try':0,
'when':1,
'xor':1
}
},
contains: [
{
className: 'input_number', begin: '^[0-9]+> ',
relevance: 10
},
{
className: 'comment',
begin: '%', end: '$'
},
hljs.NUMBER_MODE,
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
{
className: 'constant', begin: '\\?(::)?([A-Z]\\w*(::)?)+'
},
{
className: 'arrow', begin: '->'
},
{
className: 'ok', begin: 'ok'
},
{
className: 'exclamation_mark', begin: '!'
},
{
className: 'function_or_atom',
begin: '(\\b[a-z\'][a-zA-Z0-9_\']*:[a-z\'][a-zA-Z0-9_\']*)|(\\b[a-z\'][a-zA-Z0-9_\']*)',
relevance: 0
},
{
className: 'variable',
begin: '[A-Z][a-zA-Z0-9_\']*',
relevance: 0
}
]
}
};
contains: [
{
className: 'input_number', begin: '^[0-9]+> ',
relevance: 10
},
{
className: 'comment',
begin: '%', end: '$'
},
{
className: 'number',
begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)',
relevance: 0
},
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
{
className: 'constant', begin: '\\?(::)?([A-Z]\\w*(::)?)+'
},
{
className: 'arrow', begin: '->'
},
{
className: 'ok', begin: 'ok'
},
{
className: 'exclamation_mark', begin: '!'
},
{
className: 'function_or_atom',
begin: '(\\b[a-z\'][a-zA-Z0-9_\']*:[a-z\'][a-zA-Z0-9_\']*)|(\\b[a-z\'][a-zA-Z0-9_\']*)',
relevance: 0
},
{
className: 'variable',
begin: '[A-Z][a-zA-Z0-9_\']*',
relevance: 0
}
]
}
};
}(hljs);

View File

@@ -4,39 +4,15 @@ Description: Erlang is a general-purpose functional language, with strict evalua
Author: Nikolay Zakharov <nikolay.desh@gmail.com>, Dmitry Kovega <arhibot@gmail.com>
*/
hljs.LANGUAGES.erlang = function(){
hljs.LANGUAGES['erlang'] = function(hljs) {
var BASIC_ATOM_RE = '[a-z\'][a-zA-Z0-9_\']*';
var FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')';
var ERLANG_RESERVED = {
'keyword': {
'after': 1,
'and': 1,
'andalso': 10,
'band': 1,
'begin': 1,
'bnot': 1,
'bor': 1,
'bsl': 1,
'bzr': 1,
'bxor': 1,
'case': 1,
'catch': 1,
'cond': 1,
'div': 1,
'end': 1,
'fun': 1,
'let': 1,
'not': 1,
'of': 1,
'orelse': 10,
'query': 1,
'receive': 1,
'rem': 1,
'try': 1,
'when': 1,
'xor': 1
},
'literal': {'false': 1, 'true': 1}
keyword:
'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun let ' +
'not of orelse|10 query receive rem try when xor',
literal:
'false true'
};
var COMMENT = {
@@ -44,6 +20,11 @@ hljs.LANGUAGES.erlang = function(){
begin: '%', end: '$',
relevance: 0
};
var NUMBER = {
className: 'number',
begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)',
relevance: 0
};
var NAMED_FUN = {
begin: 'fun\\s+' + BASIC_ATOM_RE + '/\\d+'
};
@@ -110,7 +91,7 @@ hljs.LANGUAGES.erlang = function(){
BLOCK_STATEMENTS,
FUNCTION_CALL,
hljs.QUOTE_STRING_MODE,
hljs.C_NUMBER_MODE,
NUMBER,
TUPLE,
VAR1, VAR2,
RECORD_ACCESS
@@ -122,7 +103,7 @@ hljs.LANGUAGES.erlang = function(){
BLOCK_STATEMENTS,
FUNCTION_CALL,
hljs.QUOTE_STRING_MODE,
hljs.C_NUMBER_MODE,
NUMBER,
TUPLE,
VAR1, VAR2,
RECORD_ACCESS
@@ -134,7 +115,6 @@ hljs.LANGUAGES.erlang = function(){
var PARAMS = {
className: 'params',
begin: '\\(', end: '\\)',
endsWithParent: true,
contains: BASIC_MODES
};
return {
@@ -144,19 +124,20 @@ hljs.LANGUAGES.erlang = function(){
contains: [
{
className: 'function',
begin: '^' + BASIC_ATOM_RE + '\\(', end: ';|\\.',
begin: '^' + BASIC_ATOM_RE + '\\s*\\(', end: '->',
returnBegin: true,
illegal: '\\(|#|//|/\\*|\\\\|:',
contains: [
PARAMS,
{
className: 'title', begin: BASIC_ATOM_RE
},
{
keywords: ERLANG_RESERVED,
begin: '->', endsWithParent: true,
contains: BASIC_MODES
}
]
],
starts: {
end: ';|\\.',
keywords: ERLANG_RESERVED,
contains: BASIC_MODES
}
},
COMMENT,
{
@@ -166,31 +147,13 @@ hljs.LANGUAGES.erlang = function(){
excludeEnd: true,
returnBegin: true,
lexems: '-' + hljs.IDENT_RE,
keywords: {
'-module':1,
'-record':1,
'-undef':1,
'-export':1,
'-ifdef':1,
'-ifndef':1,
'-author':1,
'-copyright':1,
'-doc':1,
'-vsn':1,
'-import': 1,
'-include': 1,
'-include_lib': 1,
'-compile': 1,
'-define': 1,
'-else': 1,
'-endif': 1,
'-file': 1,
'-behaviour': 1,
'-behavior': 1
},
keywords:
'-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn ' +
'-import -include -include_lib -compile -define -else -endif -file -behaviour ' +
'-behavior',
contains: [PARAMS]
},
hljs.C_NUMBER_MODE,
NUMBER,
hljs.QUOTE_STRING_MODE,
RECORD_ACCESS,
VAR1, VAR2,
@@ -198,4 +161,4 @@ hljs.LANGUAGES.erlang = function(){
]
}
};
}();
}(hljs);

View File

@@ -0,0 +1,101 @@
/*
Language: GLSL
Description: OpenGL Shading Language
Author: Sergey Tikhomirov <me@stikhomirov.com>
*/
hljs.LANGUAGES['glsl'] = function(hljs) {
return {
defaultMode: {
keywords: {
keyword:
'atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default ' +
'discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 ' +
'dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray ' +
'iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube ' +
'iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect ' +
'image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray ' +
'isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer ' +
'isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 ' +
'mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict ' +
'return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray ' +
'sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow ' +
'sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth ' +
'struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray ' +
'uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray ' +
'usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer ' +
'usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly',
built_in:
'gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial ' +
'gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color ' +
'gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord ' +
'gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor ' +
'gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial ' +
'gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel ' +
'gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize ' +
'gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers ' +
'gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs ' +
'gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers ' +
'gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents ' +
'gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers ' +
'gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents ' +
'gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits ' +
'gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents ' +
'gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset ' +
'gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms ' +
'gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits ' +
'gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents ' +
'gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters ' +
'gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents ' +
'gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents ' +
'gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits ' +
'gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors ' +
'gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs ' +
'gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits ' +
'gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset'+
'gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose ' +
'gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse ' +
'gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose ' +
'gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 ' +
'gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix ' +
'gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn ' +
'gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn ' +
'gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose ' +
'gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition ' +
'gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor ' +
'gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID ' +
'gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive ' +
'abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement ' +
'atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ' +
'ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward ' +
'findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan ' +
'greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange ' +
'imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended ' +
'intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt ' +
'isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier ' +
'min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 ' +
'packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract ' +
'round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj ' +
'shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture ' +
'texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj ' +
'texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod ' +
'textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod ' +
'textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod ' +
'textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry ' +
'uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 ' +
'unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse',
literal: 'true false'
},
illegal: '"',
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
hljs.C_NUMBER_MODE,
{
className: 'preprocessor',
begin: '#', end: '$'
}
]
}
};
}(hljs);

View File

@@ -1,32 +1,22 @@
/*
Language: Go
Author: Stephan Kountso aka StepLg <steplg@gmail.com>
Contributors: Evgeny Stepanischev <imbolk@gmail.com>
Description: Google go language (golang). For info about language see http://golang.org/
*/
hljs.LANGUAGES.go = function(){
hljs.LANGUAGES['go'] = function(hljs) {
var GO_KEYWORDS = {
'keyword': {
'break' : 1, 'default' : 1, 'func' : 1, 'interface' : 1, 'select' : 1,
'case' : 1, 'map' : 1, 'struct' : 1, 'chan' : 1,
'else' : 1, 'goto' : 1, 'package' : 1, 'switch' : 1, 'const' : 1,
'fallthrough' : 1, 'if' : 1, 'range' : 1, 'type' : 1, 'continue' : 1,
'for' : 1, 'import' : 1, 'return' : 1, 'var' : 1, 'go': 1, 'defer' : 1
},
'constant': {
'true': 1, 'false': 1, 'iota': 1, 'nil': 1
},
'typename': {
'bool': 1, 'byte': 1, 'complex64': 1, 'complex128': 1, 'float32': 1,
'float64': 1, 'int8': 1, 'int16': 1, 'int32': 1, 'int64': 1, 'string': 1,
'uint8': 1, 'uint16': 1, 'uint32': 1, 'uint64': 1, 'int': 1, 'uint': 1,
'uintptr': 1
},
'built_in': {
'append': 1, 'cap': 1, 'close': 1, 'complex': 1, 'copy': 1, 'imag': 1,
'len': 1, 'make': 1, 'new': 1, 'panic': 1, 'print': 1, 'println': 1,
'real': 1, 'recover': 1
}
keyword:
'break default func interface select case map struct chan else goto package switch ' +
'const fallthrough if range type continue for import return var go defer',
constant:
'true false iota nil',
typename:
'bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 ' +
'uint16 uint32 uint64 int uint uintptr rune',
built_in:
'append cap close complex copy imag len make new panic print println real recover delete'
};
return {
defaultMode: {
@@ -43,7 +33,7 @@ hljs.LANGUAGES.go = function(){
},
{
className: 'string',
begin: '`', end: '[^\\\\]`'
begin: '`', end: '`'
},
{
className: 'number',
@@ -54,5 +44,4 @@ hljs.LANGUAGES.go = function(){
]
}
};
}();
}(hljs);

View File

@@ -3,9 +3,9 @@ Language: Haskell
Author: Jeremy Hull <sourdrums@gmail.com>
*/
hljs.LANGUAGES.haskell = function(){
var LABEL = {
className: 'label',
hljs.LANGUAGES['haskell'] = function(hljs) {
var TYPE = {
className: 'type',
begin: '\\b[A-Z][\\w\']*',
relevance: 0
};
@@ -13,28 +13,33 @@ hljs.LANGUAGES.haskell = function(){
className: 'container',
begin: '\\(', end: '\\)',
contains: [
{className: 'label', begin: '\\b[A-Z][\\w\\(\\)\\.\']*'},
{className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
{className: 'title', begin: '[_a-z][\\w\']*'}
]
};
var CONTAINER2 = {
className: 'container',
begin: '{', end: '}',
contains: CONTAINER.contains
}
return {
defaultMode: {
keywords: {
'keyword': {
'let': 1, 'in': 1, 'if': 1, 'then': 1, 'else': 1, 'case': 1, 'of': 1,
'where': 1, 'do': 1, 'module': 1, 'import': 1, 'hiding': 1,
'qualified': 1, 'type': 1, 'data': 1, 'newtype': 1, 'deriving': 1,
'class': 1, 'instance': 1, 'null': 1, 'not': 1, 'as': 1
}
},
keywords:
'let in if then else case of where do module import hiding qualified type data ' +
'newtype deriving class instance not as foreign ccall safe unsafe',
contains: [
{
className: 'comment',
begin: '--', end: '$'
},
{
className: 'preprocessor',
begin: '{-#', end: '#-}'
},
{
className: 'comment',
contains: ['self'],
begin: '{-', end: '-}'
},
{
@@ -47,31 +52,39 @@ hljs.LANGUAGES.haskell = function(){
{
className: 'import',
begin: '\\bimport', end: '$',
keywords: {'import': 1, 'qualified': 1, 'as': 1, 'hiding': 1},
contains: [CONTAINER]
keywords: 'import qualified as hiding',
contains: [CONTAINER],
illegal: '\\W\\.|;'
},
{
className: 'module',
begin: '\\bmodule', end: 'where',
keywords: {'module': 1, 'where': 1},
contains: [CONTAINER]
keywords: 'module where',
contains: [CONTAINER],
illegal: '\\W\\.|;'
},
{
className: 'class',
begin: '\\b(class|instance|data|(new)?type)', end: '(where|$)',
keywords: {'class': 1, 'where': 1, 'instance': 1,'data': 1,'type': 1,'newtype': 1, 'deriving': 1},
contains: [LABEL]
begin: '\\b(class|instance)', end: 'where',
keywords: 'class where instance',
contains: [TYPE]
},
{
className: 'typedef',
begin: '\\b(data|(new)?type)', end: '$',
keywords: 'data type newtype deriving',
contains: [TYPE, CONTAINER, CONTAINER2]
},
hljs.C_NUMBER_MODE,
{
className: 'shebang',
begin: '#!\\/usr\\/bin\\/env\ runhaskell', end: '$'
},
LABEL,
TYPE,
{
className: 'title', begin: '^[_a-z][\\w\']*'
}
]
}
};
}();
}(hljs);

View File

@@ -0,0 +1,41 @@
/*
Language: HTTP
Description: HTTP request and response headers with automatic body highlighting
Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
*/
hljs.LANGUAGES['http'] = function(hljs) {
return {
defaultMode: {
illegal: '\\S',
contains: [
{
className: 'status',
begin: '^HTTP/[0-9\\.]+', end: '$',
contains: [{className: 'number', begin: '\\b\\d{3}\\b'}]
},
{
className: 'request',
begin: '^[A-Z]+ (.*?) HTTP/[0-9\\.]+$', returnBegin: true, end: '$',
contains: [
{
className: 'string',
begin: ' ', end: ' ',
excludeBegin: true, excludeEnd: true
}
]
},
{
className: 'attribute',
begin: '^\\w', end: ': ', excludeEnd: true,
illegal: '\\n',
starts: {className: 'string', end: '$'}
},
{
begin: '\\n\\n',
starts: {subLanguage: '', endsWithParent: true}
}
]
}
};
}(hljs);

View File

@@ -2,31 +2,33 @@
Language: Ini
*/
hljs.LANGUAGES.ini = {
case_insensitive: true,
defaultMode: {
illegal: '[^\\s]',
contains: [
{
className: 'comment',
begin: ';', end: '$'
},
{
className: 'title',
begin: '^\\[', end: '\\]'
},
{
className: 'setting',
begin: '^[a-z0-9_\\[\\]]+[ \\t]*=[ \\t]*', end: '$',
contains: [
{
className: 'value',
endsWithParent: true,
keywords: {'on': 1, 'off': 1, 'true': 1, 'false': 1, 'yes': 1, 'no': 1},
contains: [hljs.QUOTE_STRING_MODE, hljs.NUMBER_MODE]
}
]
}
]
}
};
hljs.LANGUAGES['ini'] = function(hljs) {
return {
case_insensitive: true,
defaultMode: {
illegal: '[^\\s]',
contains: [
{
className: 'comment',
begin: ';', end: '$'
},
{
className: 'title',
begin: '^\\[', end: '\\]'
},
{
className: 'setting',
begin: '^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*', end: '$',
contains: [
{
className: 'value',
endsWithParent: true,
keywords: 'on off true false yes no',
contains: [hljs.QUOTE_STRING_MODE, hljs.NUMBER_MODE]
}
]
}
]
}
};
}(hljs);

View File

@@ -3,43 +3,49 @@ Language: Java
Author: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>
*/
hljs.LANGUAGES.java = {
defaultMode: {
keywords: {'false': 1, 'synchronized': 1, 'int': 1, 'abstract': 1, 'float': 1, 'private': 1, 'char': 1, 'interface': 1, 'boolean': 1, 'static': 1, 'null': 1, 'if': 1, 'const': 1, 'for': 1, 'true': 1, 'while': 1, 'long': 1, 'throw': 1, 'strictfp': 1, 'finally': 1, 'protected': 1, 'extends': 1, 'import': 1, 'native': 1, 'final': 1, 'implements': 1, 'return': 1, 'void': 1, 'enum': 1, 'else': 1, 'break': 1, 'transient': 1, 'new': 1, 'catch': 1, 'instanceof': 1, 'byte': 1, 'super': 1, 'class': 1, 'volatile': 1, 'case': 1, 'assert': 1, 'short': 1, 'package': 1, 'default': 1, 'double': 1, 'public': 1, 'try': 1, 'this': 1, 'switch': 1, 'continue': 1, 'throws': 1},
contains: [
{
className: 'javadoc',
begin: '/\\*\\*', end: '\\*/',
contains: [{
className: 'javadoctag', begin: '@[A-Za-z]+'
}],
relevance: 10
},
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
{
className: 'class',
begin: '(class |interface )', end: '{',
keywords: {'class': 1, 'interface': 1},
illegal: ':',
contains: [
{
begin: '(implements|extends)',
keywords: {'extends': 1, 'implements': 1},
relevance: 10
},
{
className: 'title',
begin: hljs.UNDERSCORE_IDENT_RE
}
]
},
hljs.C_NUMBER_MODE,
{
className: 'annotation', begin: '@[A-Za-z]+'
}
]
}
};
hljs.LANGUAGES['java'] = function(hljs) {
return {
defaultMode: {
keywords:
'false synchronized int abstract float private char boolean static null if const ' +
'for true while long throw strictfp finally protected import native final return void ' +
'enum else break transient new catch instanceof byte super volatile case assert short ' +
'package default double public try this switch continue throws',
contains: [
{
className: 'javadoc',
begin: '/\\*\\*', end: '\\*/',
contains: [{
className: 'javadoctag', begin: '@[A-Za-z]+'
}],
relevance: 10
},
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
{
className: 'class',
beginWithKeyword: true, end: '{',
keywords: 'class interface',
illegal: ':',
contains: [
{
beginWithKeyword: true,
keywords: 'extends implements',
relevance: 10
},
{
className: 'title',
begin: hljs.UNDERSCORE_IDENT_RE
}
]
},
hljs.C_NUMBER_MODE,
{
className: 'annotation', begin: '@[A-Za-z]+'
}
]
}
};
}(hljs);

View File

@@ -1,53 +1,59 @@
/*
Language: Javascript
Language: JavaScript
*/
hljs.LANGUAGES.javascript = {
defaultMode: {
keywords: {
'keyword': {'in': 1, 'if': 1, 'for': 1, 'while': 1, 'finally': 1, 'var': 1, 'new': 1, 'function': 1, 'do': 1, 'return': 1, 'void': 1, 'else': 1, 'break': 1, 'catch': 1, 'instanceof': 1, 'with': 1, 'throw': 1, 'case': 1, 'default': 1, 'try': 1, 'this': 1, 'switch': 1, 'continue': 1, 'typeof': 1, 'delete': 1},
'literal': {'true': 1, 'false': 1, 'null': 1}
},
contains: [
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
hljs.C_NUMBER_MODE,
{ // regexp container
begin: '(' + hljs.RE_STARTERS_RE + '|case|return|throw)\\s*',
keywords: {'return': 1, 'throw': 1, 'case': 1},
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
{
className: 'regexp',
begin: '/', end: '/[gim]*',
contains: [{begin: '\\\\/'}]
}
],
relevance: 0
hljs.LANGUAGES['javascript'] = function(hljs) {
return {
defaultMode: {
keywords: {
keyword:
'in if for while finally var new function do return void else break catch ' +
'instanceof with throw case default try this switch continue typeof delete ' +
'let yield',
literal:
'true false null undefined NaN Infinity'
},
{
className: 'function',
begin: '\\bfunction\\b', end: '{',
keywords: {'function': 1},
contains: [
{
className: 'title', begin: '[A-Za-z$_][0-9A-Za-z$_]*'
},
{
className: 'params',
begin: '\\(', end: '\\)',
contains: [
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE
]
}
]
}
]
}
};
contains: [
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
hljs.C_NUMBER_MODE,
{ // regexp container
begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
keywords: 'return throw case',
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
{
className: 'regexp',
begin: '/', end: '/[gim]*',
contains: [{begin: '\\\\/'}]
}
],
relevance: 0
},
{
className: 'function',
beginWithKeyword: true, end: '{',
keywords: 'function',
contains: [
{
className: 'title', begin: '[A-Za-z$_][0-9A-Za-z$_]*'
},
{
className: 'params',
begin: '\\(', end: '\\)',
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE
],
illegal: '["\'\\(]'
}
],
illegal: '\\[|%'
}
]
}
};
}(hljs);

View File

@@ -0,0 +1,44 @@
/*
Language: JSON
Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
*/
hljs.LANGUAGES['json'] = function(hljs) {
var LITERALS = {literal: 'true false null'};
var TYPES = [
hljs.QUOTE_STRING_MODE,
hljs.C_NUMBER_MODE
];
var VALUE_CONTAINER = {
className: 'value',
end: ',', endsWithParent: true, excludeEnd: true,
contains: TYPES,
keywords: LITERALS
};
var OBJECT = {
begin: '{', end: '}',
contains: [
{
className: 'attribute',
begin: '\\s*"', end: '"\\s*:\\s*', excludeBegin: true, excludeEnd: true,
contains: [hljs.BACKSLASH_ESCAPE],
illegal: '\\n',
starts: VALUE_CONTAINER
}
],
illegal: '\\S'
};
var ARRAY = {
begin: '\\[', end: '\\]',
contains: [hljs.inherit(VALUE_CONTAINER, {className: null})], // inherit is also a workaround for a bug that makes shared modes with endsWithParent compile only the ending of one of the parents
illegal: '\\S'
};
TYPES.splice(TYPES.length, 0, OBJECT, ARRAY);
return {
defaultMode: {
contains: TYPES,
keywords: LITERALS,
illegal: '\\S'
}
};
}(hljs);

View File

@@ -4,28 +4,30 @@ Description: Generic lisp syntax
Author: Vasily Polovnyov <vast@whiteants.net>
*/
hljs.LANGUAGES.lisp = function(){
hljs.LANGUAGES['lisp'] = function(hljs) {
var LISP_IDENT_RE = '[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#]*';
var LISP_SIMPLE_NUMBER_RE = '(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?';
var LITERAL = {
className: 'literal',
begin: '\\b(t{1}|nil)\\b'
};
var NUMBER1 = {
className: 'number', begin: LISP_SIMPLE_NUMBER_RE
};
var NUMBER2 = {
className: 'number', begin: '#b[0-1]+(/[0-1]+)?'
};
var NUMBER3 = {
className: 'number', begin: '#o[0-7]+(/[0-7]+)?'
};
var NUMBER4 = {
className: 'number', begin: '#x[0-9a-f]+(/[0-9a-f]+)?'
};
var NUMBER5 = {
className: 'number', begin: '#c\\(' + LISP_SIMPLE_NUMBER_RE + ' +' + LISP_SIMPLE_NUMBER_RE, end: '\\)'
};
var NUMBERS = [
{
className: 'number', begin: LISP_SIMPLE_NUMBER_RE
},
{
className: 'number', begin: '#b[0-1]+(/[0-1]+)?'
},
{
className: 'number', begin: '#o[0-7]+(/[0-7]+)?'
},
{
className: 'number', begin: '#x[0-9a-f]+(/[0-9a-f]+)?'
},
{
className: 'number', begin: '#c\\(' + LISP_SIMPLE_NUMBER_RE + ' +' + LISP_SIMPLE_NUMBER_RE, end: '\\)'
}
]
var STRING = {
className: 'string',
begin: '"', end: '"',
@@ -45,19 +47,19 @@ hljs.LANGUAGES.lisp = function(){
begin: '[:&]' + LISP_IDENT_RE
};
var QUOTED_LIST = {
begin: '\\(', end: '\\)'
begin: '\\(', end: '\\)',
contains: ['self', LITERAL, STRING].concat(NUMBERS)
};
QUOTED_LIST.contains = [QUOTED_LIST, LITERAL, NUMBER1, NUMBER2, NUMBER3, NUMBER4, NUMBER5, STRING];
var QUOTED1 = {
className: 'quoted',
begin: '[\'`]\\(', end: '\\)',
contains: [NUMBER1, NUMBER2, NUMBER3, NUMBER4, NUMBER5, STRING, VARIABLE, KEYWORD, QUOTED_LIST]
contains: NUMBERS.concat([STRING, VARIABLE, KEYWORD, QUOTED_LIST])
};
var QUOTED2 = {
className: 'quoted',
begin: '\\(quote ', end: '\\)',
keywords: {'title': {'quote': 1}},
contains: [NUMBER1, NUMBER2, NUMBER3, NUMBER4, NUMBER5, STRING, VARIABLE, KEYWORD, QUOTED_LIST]
keywords: {title: 'quote'},
contains: NUMBERS.concat([STRING, VARIABLE, KEYWORD, QUOTED_LIST])
};
var LIST = {
className: 'list',
@@ -68,20 +70,19 @@ hljs.LANGUAGES.lisp = function(){
endsWithParent: true, excludeEnd: true
};
LIST.contains = [{className: 'title', begin: LISP_IDENT_RE}, BODY];
BODY.contains = [QUOTED1, QUOTED2, LIST, LITERAL, NUMBER1, NUMBER2, NUMBER3, NUMBER4, NUMBER5, STRING, COMMENT, VARIABLE, KEYWORD];
BODY.contains = [QUOTED1, QUOTED2, LIST, LITERAL].concat(NUMBERS).concat([STRING, COMMENT, VARIABLE, KEYWORD]);
return {
case_insensitive: true,
defaultMode: {
illegal: '[^\\s]',
contains: [
contains: NUMBERS.concat([
LITERAL,
NUMBER1, NUMBER2, NUMBER3, NUMBER4, NUMBER5,
STRING,
COMMENT,
QUOTED1, QUOTED2,
LIST
]
])
}
};
}();
}(hljs);

View File

@@ -3,50 +3,43 @@ Language: Lua
Author: Andrew Fedorov <dmmdrs@mail.ru>
*/
hljs.LANGUAGES.lua = function() {
hljs.LANGUAGES['lua'] = function(hljs) {
var OPENING_LONG_BRACKET = '\\[=*\\[';
var CLOSING_LONG_BRACKET = '\\]=*\\]';
var LONG_BRACKETS = {
begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET
};
LONG_BRACKETS.contains = [LONG_BRACKETS];
var COMMENT1 = {
className: 'comment',
begin: '--(?!' + OPENING_LONG_BRACKET + ')', end: '$'
};
var COMMENT2 = {
className: 'comment',
begin: '--' + OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
contains: [LONG_BRACKETS],
relevance: 10
begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
contains: ['self']
};
var COMMENTS = [
{
className: 'comment',
begin: '--(?!' + OPENING_LONG_BRACKET + ')', end: '$'
},
{
className: 'comment',
begin: '--' + OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
contains: [LONG_BRACKETS],
relevance: 10
}
]
return {
defaultMode: {
lexems: hljs.UNDERSCORE_IDENT_RE,
keywords: {
'keyword': {
'and': 1, 'break': 1, 'do': 1, 'else': 1, 'elseif': 1, 'end': 1,
'false': 1, 'for': 1, 'if': 1, 'in': 1, 'local': 1, 'nil': 1,
'not': 1, 'or': 1, 'repeat': 1, 'return': 1, 'then': 1, 'true': 1,
'until': 1, 'while': 1
},
'built_in': {
'_G': 1, '_VERSION': 1, 'assert': 1, 'collectgarbage': 1, 'dofile': 1,
'error': 1, 'getfenv': 1, 'getmetatable': 1, 'ipairs': 1, 'load': 1,
'loadfile': 1, 'loadstring': 1, 'module': 1, 'next': 1, 'pairs': 1,
'pcall': 1, 'print': 1, 'rawequal': 1, 'rawget': 1, 'rawset': 1,
'require': 1, 'select': 1, 'setfenv': 1, 'setmetatable': 1,
'tonumber': 1, 'tostring': 1, 'type': 1, 'unpack': 1, 'xpcall': 1,
'coroutine': 1, 'debug': 1, 'io': 1, 'math': 1, 'os': 1, 'package': 1,
'string': 1, 'table': 1
}
keyword:
'and break do else elseif end false for if in local nil not or repeat return then ' +
'true until while',
built_in:
'_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load ' +
'loadfile loadstring module next pairs pcall print rawequal rawget rawset require ' +
'select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug ' +
'io math os package string table'
},
contains: [
COMMENT1, COMMENT2,
contains: COMMENTS.concat([
{
className: 'function',
begin: '\\bfunction\\b', end: '\\)',
keywords: {'function': 1},
beginWithKeyword: true, end: '\\)',
keywords: 'function',
contains: [
{
className: 'title',
@@ -55,10 +48,9 @@ hljs.LANGUAGES.lua = function() {
{
className: 'params',
begin: '\\(', endsWithParent: true,
contains: [COMMENT1, COMMENT2]
},
COMMENT1, COMMENT2
]
contains: COMMENTS
}
].concat(COMMENTS)
},
hljs.C_NUMBER_MODE,
hljs.APOS_STRING_MODE,
@@ -69,7 +61,7 @@ hljs.LANGUAGES.lua = function() {
contains: [LONG_BRACKETS],
relevance: 10
}
]
])
}
};
}();
}(hljs);

View File

@@ -0,0 +1,87 @@
/*
Language: Markdown
Requires: xml.js
Author: John Crepezzi <john.crepezzi@gmail.com>
Website: http://seejohncode.com/
*/
hljs.LANGUAGES['markdown'] = function(hljs) {
return {
case_insensitive: true,
defaultMode: {
contains: [
// highlight headers
{
className: 'header',
begin: '^#{1,3}', end: '$'
},
{
className: 'header',
begin: '^.+?\\n[=-]{2,}$'
},
// inline html
{
begin: '<', end: '>',
subLanguage: 'xml',
relevance: 0
},
// lists (indicators only)
{
className: 'bullet',
begin: '^([*+-]|(\\d+\\.))\\s+'
},
// strong segments
{
className: 'strong',
begin: '[*_]{2}.+?[*_]{2}'
},
// emphasis segments
{
className: 'emphasis',
begin: '\\*.+?\\*'
},
{
className: 'emphasis',
begin: '_.+?_',
relevance: 0
},
// blockquotes
{
className: 'blockquote',
begin: '^>\\s+', end: '$'
},
// code snippets
{
className: 'code',
begin: '`.+?`'
},
{
className: 'code',
begin: '^ ', end: '$',
relevance: 0
},
// horizontal rules
{
className: 'horizontal_rule',
begin: '^-{3,}', end: '$'
},
// using links - title and link
{
begin: '\\[.+?\\]\\(.+?\\)',
returnBegin: true,
contains: [
{
className: 'link_label',
begin: '\\[.+\\]'
},
{
className: 'link_url',
begin: '\\(', end: '\\)',
excludeBegin: true, excludeEnd: true
}
]
}
]
}
};
}(hljs);

View File

@@ -0,0 +1,64 @@
/*
Language: Matlab
Author: Denis Bardadym <bardadymchik@gmail.com>
*/
hljs.LANGUAGES['matlab'] = function(hljs) {
return {
defaultMode: {
keywords: {
keyword:
'break case catch classdef continue else elseif end enumerated events for function ' +
'global if methods otherwise parfor persistent properties return spmd switch try while',
built_in:
'sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan ' +
'atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot ' +
'cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog ' +
'realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal ' +
'cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli ' +
'besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma ' +
'gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms ' +
'nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones ' +
'eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ' +
'ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril ' +
'triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute ' +
'shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan ' +
'isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal ' +
'rosser toeplitz vander wilkinson'
},
illegal: '(//|"|#|/\\*|\\s+/\\w+)',
contains: [
{
className: 'function',
beginWithKeyword: true, end: '$',
keywords: 'function',
contains: [
{
className: 'title',
begin: hljs.UNDERSCORE_IDENT_RE
},
{
className: 'params',
begin: '\\(', end: '\\)'
},
{
className: 'params',
begin: '\\[', end: '\\]'
}
]
},
{
className: 'string',
begin: '\'', end: '\'',
contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}],
relevance: 0
},
{
className: 'comment',
begin: '\\%', end: '$'
},
hljs.C_NUMBER_MODE
]
}
};
}(hljs);

File diff suppressed because one or more lines are too long

View File

@@ -1,224 +1,102 @@
/*
Language: Nginx
Author: Peter Leonov <gojpeg@yandex.ru>
Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
*/
hljs.LANGUAGES.nginx = function() {
var VAR1 = {
className: 'variable',
begin: '\\$\\d+'
};
var VAR2 = {
className: 'variable',
begin: '\\${', end: '}'
};
var VAR3 = {
className: 'variable',
begin: '[\\$\\@]' + hljs.UNDERSCORE_IDENT_RE
hljs.LANGUAGES['nginx'] = function(hljs) {
var VARS = [
{
className: 'variable', begin: '\\$\\d+'
},
{
className: 'variable', begin: '\\${', end: '}'
},
{
className: 'variable', begin: '[\\$\\@]' + hljs.UNDERSCORE_IDENT_RE
}
];
var DEFAULT = {
endsWithParent: true,
lexems: '[a-z/_]+',
keywords: {
built_in:
'on off yes no true false none blocked debug info notice warn error crit ' +
'select break last permanent redirect kqueue rtsig epoll poll /dev/poll'
},
relevance: 0,
illegal: '=>',
contains: [
hljs.HASH_COMMENT_MODE,
{
className: 'string',
begin: '"', end: '"',
contains: [hljs.BACKSLASH_ESCAPE].concat(VARS),
relevance: 0
},
{
className: 'string',
begin: "'", end: "'",
contains: [hljs.BACKSLASH_ESCAPE].concat(VARS),
relevance: 0
},
{
className: 'url',
begin: '([a-z]+):/', end: '\\s', endsWithParent: true, excludeEnd: true
},
{
className: 'regexp',
begin: "\\s\\^", end: "\\s|{|;", returnEnd: true,
contains: [hljs.BACKSLASH_ESCAPE].concat(VARS)
},
// regexp locations (~, ~*)
{
className: 'regexp',
begin: "~\\*?\\s+", end: "\\s|{|;", returnEnd: true,
contains: [hljs.BACKSLASH_ESCAPE].concat(VARS)
},
// *.example.com
{
className: 'regexp',
begin: "\\*(\\.[a-z\\-]+)+",
contains: [hljs.BACKSLASH_ESCAPE].concat(VARS)
},
// sub.example.*
{
className: 'regexp',
begin: "([a-z\\-]+\\.)+\\*",
contains: [hljs.BACKSLASH_ESCAPE].concat(VARS)
},
// IP
{
className: 'number',
begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b'
},
// units
{
className: 'number',
begin: '\\b\\d+[kKmMgGdshdwy]*\\b',
relevance: 0
}
].concat(VARS)
};
return {
defaultMode: {
contains: [
hljs.HASH_COMMENT_MODE,
{ // directive
begin: hljs.UNDERSCORE_IDENT_RE, end: ';|{', returnEnd: true,
keywords: {
accept_mutex: 1, accept_mutex_delay: 1, access_log: 1,
add_after_body: 1, add_before_body: 1, add_header: 1,
addition_types: 1, alias: 1, allow: 1, ancient_browser: 1,
ancient_browser: 1, ancient_browser_value: 1, ancient_browser_value: 1,
auth_basic: 1, auth_basic_user_file: 1, autoindex: 1,
autoindex_exact_size: 1, autoindex_localtime: 1, 'break': 1,
charset: 1, charset: 1, charset_map: 1, charset_map: 1,
charset_types: 1, charset_types: 1, client_body_buffer_size: 1,
client_body_in_file_only: 1, client_body_in_single_buffer: 1,
client_body_temp_path: 1, client_body_timeout: 1,
client_header_buffer_size: 1, client_header_timeout: 1,
client_max_body_size: 1, connection_pool_size: 1, connections: 1,
create_full_put_path: 1, daemon: 1, dav_access: 1, dav_methods: 1,
debug_connection: 1, debug_points: 1, default_type: 1, deny: 1,
directio: 1, directio_alignment: 1, echo: 1, echo_after_body: 1,
echo_before_body: 1, echo_blocking_sleep: 1, echo_duplicate: 1,
echo_end: 1, echo_exec: 1, echo_flush: 1, echo_foreach_split: 1,
echo_location: 1, echo_location_async: 1, echo_read_request_body: 1,
echo_request_body: 1, echo_reset_timer: 1, echo_sleep: 1,
echo_subrequest: 1, echo_subrequest_async: 1, empty_gif: 1,
empty_gif: 1, env: 1, error_log: 1, error_log: 1, error_page: 1,
events: 1, expires: 1, fastcgi_bind: 1, fastcgi_buffer_size: 1,
fastcgi_buffers: 1, fastcgi_busy_buffers_size: 1, fastcgi_cache: 1,
fastcgi_cache_key: 1, fastcgi_cache_methods: 1,
fastcgi_cache_min_uses: 1, fastcgi_cache_path: 1,
fastcgi_cache_use_stale: 1, fastcgi_cache_valid: 1,
fastcgi_catch_stderr: 1, fastcgi_connect_timeout: 1,
fastcgi_hide_header: 1, fastcgi_ignore_client_abort: 1,
fastcgi_ignore_headers: 1, fastcgi_index: 1,
fastcgi_intercept_errors: 1, fastcgi_max_temp_file_size: 1,
fastcgi_next_upstream: 1, fastcgi_param: 1, fastcgi_pass: 1,
fastcgi_pass_header: 1, fastcgi_pass_request_body: 1,
fastcgi_pass_request_headers: 1, fastcgi_read_timeout: 1,
fastcgi_send_lowat: 1, fastcgi_send_timeout: 1,
fastcgi_split_path_info: 1, fastcgi_store: 1, fastcgi_store_access: 1,
fastcgi_temp_file_write_size: 1, fastcgi_temp_path: 1,
fastcgi_upstream_fail_timeout: 1, fastcgi_upstream_max_fails: 1,
flv: 1, geo: 1, geo: 1, geoip_city: 1, geoip_country: 1, gzip: 1,
gzip_buffers: 1, gzip_comp_level: 1, gzip_disable: 1, gzip_hash: 1,
gzip_http_version: 1, gzip_min_length: 1, gzip_no_buffer: 1,
gzip_proxied: 1, gzip_static: 1, gzip_types: 1, gzip_vary: 1,
gzip_window: 1, http: 1, 'if': 1, if_modified_since: 1,
ignore_invalid_headers: 1, image_filter: 1, image_filter_buffer: 1,
image_filter_jpeg_quality: 1, image_filter_transparency: 1, include: 1,
index: 1, internal: 1, ip_hash: 1, js: 1, js_load: 1, js_require: 1,
js_utf8: 1, keepalive_requests: 1, keepalive_timeout: 1,
kqueue_changes: 1, kqueue_events: 1, large_client_header_buffers: 1,
limit_conn: 1, limit_conn_log_level: 1, limit_except: 1, limit_rate: 1,
limit_rate_after: 1, limit_req: 1, limit_req_log_level: 1,
limit_req_zone: 1, limit_zone: 1, lingering_time: 1,
lingering_timeout: 1, listen: 1, location: 1, lock_file: 1,
log_format: 1, log_not_found: 1, log_subrequest: 1, map: 1,
map_hash_bucket_size: 1, map_hash_max_size: 1, master_process: 1,
memcached_bind: 1, memcached_buffer_size: 1,
memcached_connect_timeout: 1, memcached_next_upstream: 1,
memcached_pass: 1, memcached_read_timeout: 1,
memcached_send_timeout: 1, memcached_upstream_fail_timeout: 1,
memcached_upstream_max_fails: 1, merge_slashes: 1, min_delete_depth: 1,
modern_browser: 1, modern_browser: 1, modern_browser_value: 1,
modern_browser_value: 1, more_clear_headers: 1,
more_clear_input_headers: 1, more_set_headers: 1,
more_set_input_headers: 1, msie_padding: 1, msie_refresh: 1,
multi_accept: 1, open_file_cache: 1, open_file_cache_errors: 1,
open_file_cache_events: 1, open_file_cache_min_uses: 1,
open_file_cache_retest: 1, open_file_cache_valid: 1,
open_log_file_cache: 1, optimize_server_names: 1, output_buffers: 1,
override_charset: 1, override_charset: 1, perl: 1, perl_modules: 1,
perl_require: 1, perl_set: 1, pid: 1, port_in_redirect: 1,
post_action: 1, postpone_gzipping: 1, postpone_output: 1,
proxy_bind: 1, proxy_buffer_size: 1, proxy_buffering: 1,
proxy_buffers: 1, proxy_busy_buffers_size: 1, proxy_cache: 1,
proxy_cache_key: 1, proxy_cache_methods: 1, proxy_cache_min_uses: 1,
proxy_cache_path: 1, proxy_cache_use_stale: 1, proxy_cache_valid: 1,
proxy_connect_timeout: 1, proxy_headers_hash_bucket_size: 1,
proxy_headers_hash_max_size: 1, proxy_hide_header: 1,
proxy_ignore_client_abort: 1, proxy_ignore_headers: 1,
proxy_intercept_errors: 1, proxy_max_temp_file_size: 1,
proxy_method: 1, proxy_next_upstream: 1, proxy_pass: 1,
proxy_pass_header: 1, proxy_pass_request_body: 1,
proxy_pass_request_headers: 1, proxy_read_timeout: 1,
proxy_redirect: 1, proxy_send_lowat: 1, proxy_send_timeout: 1,
proxy_set_body: 1, proxy_set_header: 1, proxy_store: 1,
proxy_store_access: 1, proxy_temp_file_write_size: 1,
proxy_temp_path: 1, proxy_upstream_fail_timeout: 1,
proxy_upstream_max_fails: 1, push_authorized_channels_only: 1,
push_channel_group: 1, push_max_channel_id_length: 1,
push_max_channel_subscribers: 1, push_max_message_buffer_length: 1,
push_max_reserved_memory: 1, push_message_buffer_length: 1,
push_message_timeout: 1, push_min_message_buffer_length: 1,
push_min_message_recipients: 1, push_publisher: 1,
push_store_messages: 1, push_subscriber: 1,
push_subscriber_concurrency: 1, random_index: 1, read_ahead: 1,
real_ip_header: 1, recursive_error_pages: 1, request_pool_size: 1,
reset_timedout_connection: 1, resolver: 1, resolver_timeout: 1,
'return': 1, rewrite: 1, rewrite_log: 1, root: 1, satisfy: 1,
satisfy_any: 1, send_lowat: 1, send_timeout: 1, sendfile: 1,
sendfile_max_chunk: 1, server: 1, server: 1, server_name: 1,
server_name_in_redirect: 1, server_names_hash_bucket_size: 1,
server_names_hash_max_size: 1, server_tokens: 1, 'set': 1,
set_real_ip_from: 1, source_charset: 1, source_charset: 1, ssi: 1,
ssi_ignore_recycled_buffers: 1, ssi_min_file_chunk: 1,
ssi_silent_errors: 1, ssi_types: 1, ssi_value_length: 1, ssl: 1,
ssl_certificate: 1, ssl_certificate_key: 1, ssl_ciphers: 1,
ssl_client_certificate: 1, ssl_crl: 1, ssl_dhparam: 1,
ssl_prefer_server_ciphers: 1, ssl_protocols: 1, ssl_session_cache: 1,
ssl_session_timeout: 1, ssl_verify_client: 1, ssl_verify_depth: 1,
sub_filter: 1, sub_filter_once: 1, sub_filter_types: 1, tcp_nodelay: 1,
tcp_nopush: 1, timer_resolution: 1, try_files: 1, types: 1,
types_hash_bucket_size: 1, types_hash_max_size: 1,
underscores_in_headers: 1, uninitialized_variable_warn: 1, upstream: 1,
use: 1, user: 1, userid: 1, userid: 1, userid_domain: 1,
userid_domain: 1, userid_expires: 1, userid_expires: 1, userid_mark: 1,
userid_name: 1, userid_name: 1, userid_p3p: 1, userid_p3p: 1,
userid_path: 1, userid_path: 1, userid_service: 1, userid_service: 1,
valid_referers: 1, variables_hash_bucket_size: 1,
variables_hash_max_size: 1, worker_connections: 1,
worker_cpu_affinity: 1, worker_priority: 1, worker_processes: 1,
worker_rlimit_core: 1, worker_rlimit_nofile: 1,
worker_rlimit_sigpending: 1, working_directory: 1, xml_entities: 1,
xslt_stylesheet: 1, xslt_types: 1
},
relevance: 0,
{
begin: hljs.UNDERSCORE_IDENT_RE + '\\s', end: ';|{', returnBegin: true,
contains: [
hljs.HASH_COMMENT_MODE,
{
begin: '\\s', end: '[;{]', returnBegin: true, returnEnd: true,
lexems: '[a-z/]+',
keywords: {
'built_in': {
'on': 1, 'off': 1, 'yes': 1, 'no': 1, 'true': 1, 'false': 1,
'none': 1, 'blocked': 1, 'debug': 1, 'info': 1, 'notice': 1,
'warn': 1, 'error': 1, 'crit': 1, 'select': 1, 'permanent': 1,
'redirect': 1, 'kqueue': 1, 'rtsig': 1, 'epoll': 1, 'poll': 1,
'/dev/poll': 1
}
},
relevance: 0,
contains: [
hljs.HASH_COMMENT_MODE,
{
className: 'string',
begin: '"', end: '"',
contains: [hljs.BACKSLASH_ESCAPE, VAR1, VAR2, VAR3],
relevance: 0
},
{
className: 'string',
begin: "'", end: "'",
contains: [hljs.BACKSLASH_ESCAPE, VAR1, VAR2, VAR3],
relevance: 0
},
{
className: 'string',
begin: '([a-z]+):/', end: '[;\\s]', returnEnd: true
},
{
className: 'regexp',
begin: "\\s\\^", end: "\\s|{|;", returnEnd: true,
contains: [hljs.BACKSLASH_ESCAPE, VAR1, VAR2, VAR3]
},
// regexp locations (~, ~*)
{
className: 'regexp',
begin: "~\\*?\\s+", end: "\\s|{|;", returnEnd: true,
contains: [hljs.BACKSLASH_ESCAPE, VAR1, VAR2, VAR3]
},
// *.example.com
{
className: 'regexp',
begin: "\\*(\\.[a-z\\-]+)+",
contains: [hljs.BACKSLASH_ESCAPE, VAR1, VAR2, VAR3]
},
// sub.example.*
{
className: 'regexp',
begin: "([a-z\\-]+\\.)+\\*",
contains: [hljs.BACKSLASH_ESCAPE, VAR1, VAR2, VAR3]
},
// IP
{
className: 'number',
begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b'
},
// units
{
className: 'number',
begin: '\\s\\d+[kKmMgGdshdwy]*\\b',
relevance: 0
},
VAR1, VAR2, VAR3
]
className: 'title',
begin: hljs.UNDERSCORE_IDENT_RE,
starts: DEFAULT
}
]
}
]
],
illegal: '[^\\s\\}]'
}
}
}();
};
}(hljs);

View File

@@ -1,38 +1,35 @@
/*
Language: Objective C
Author: Valerii Hiora <valerii.hiora@gmail.com>
Contributors: Angel G. Olloqui <angelgarcia.mail@gmail.com>
*/
hljs.LANGUAGES.objectivec = function(){
hljs.LANGUAGES['objectivec'] = function(hljs) {
var OBJC_KEYWORDS = {
'keyword': {
'false': 1, 'int': 1, 'float': 1, 'while': 1, 'private': 1, 'char': 1,
'catch': 1, 'export': 1, 'sizeof': 2, 'typedef': 2, 'const': 1,
'struct': 1, 'for': 1, 'union': 1, 'unsigned': 1, 'long': 1,
'volatile': 2, 'static': 1, 'protected': 1, 'bool': 1, 'mutable': 1,
'if': 1, 'public': 1, 'do': 1, 'return': 1, 'goto': 1, 'void': 2,
'enum': 1, 'else': 1, 'break': 1, 'extern': 1, 'true': 1, 'class': 1,
'asm': 1, 'case': 1, 'short': 1, 'default': 1, 'double': 1, 'throw': 1,
'register': 1, 'explicit': 1, 'signed': 1, 'typename': 1, 'try': 1,
'this': 1, 'switch': 1, 'continue': 1, 'wchar_t': 1, 'inline': 1,
'readonly': 1, 'assign': 1, 'property': 1, 'protocol': 10, 'self': 1,
'synchronized': 1, 'end': 1, 'synthesize': 50, 'id': 1, 'optional': 1,
'required': 1, 'implementation': 10, 'nonatomic': 1,'interface': 1,
'super': 1, 'unichar': 1, 'finally': 2, 'dynamic': 2, 'nil': 1
},
'built_in': {
'YES': 5, 'NO': 5, 'NULL': 1, 'IBOutlet': 50, 'IBAction': 50,
'NSString': 50, 'NSDictionary': 50, 'CGRect': 50, 'CGPoint': 50,
'NSRange': 50, 'release': 1, 'retain': 1, 'autorelease': 50,
'UIButton': 50, 'UILabel': 50, 'UITextView': 50, 'UIWebView': 50,
'MKMapView': 50, 'UISegmentedControl': 50, 'NSObject': 50,
'UITableViewDelegate': 50, 'UITableViewDataSource': 50, 'NSThread': 50,
'UIActivityIndicator': 50, 'UITabbar': 50, 'UIToolBar': 50,
'UIBarButtonItem': 50, 'UIImageView': 50, 'NSAutoreleasePool': 50,
'UITableView': 50, 'BOOL': 1, 'NSInteger': 20, 'CGFloat': 20,
'NSException': 50, 'NSLog': 50, 'NSMutableString': 50,
'NSMutableArray': 50, 'NSMutableDictionary': 50, 'NSURL': 50
}
keyword:
'int float while private char catch export sizeof typedef const struct for union ' +
'unsigned long volatile static protected bool mutable if public do return goto void ' +
'enum else break extern class asm case short default double throw register explicit ' +
'signed typename try this switch continue wchar_t inline readonly assign property ' +
'protocol self synchronized end synthesize id optional required implementation ' +
'nonatomic interface super unichar finally dynamic IBOutlet IBAction selector strong ' +
'weak readonly',
literal:
'false true FALSE TRUE nil YES NO NULL',
built_in:
'NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView ' +
'UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread ' +
'UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool ' +
'UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray ' +
'NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController ' +
'UINavigationBar UINavigationController UITabBarController UIPopoverController ' +
'UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController ' +
'NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor ' +
'UIFont UIApplication NSNotFound NSNotificationCenter NSNotification ' +
'UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar ' +
'NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection class ' +
'UIInterfaceOrientation MPMoviePlayerController dispatch_once_t ' +
'dispatch_queue_t dispatch_sync dispatch_async dispatch_once'
};
return {
defaultMode: {
@@ -74,21 +71,20 @@ hljs.LANGUAGES.objectivec = function(){
},
{
className: 'class',
begin: 'interface|class|protocol|implementation',
beginWithKeyword: true,
end: '({|$)',
keywords: {
'interface': 1,
'class': 1,
'protocol': 5,
'implementation': 5
},
keywords: 'interface class protocol implementation',
contains: [{
className: 'id',
begin: hljs.UNDERSCORE_IDENT_RE
}
]
},
{
className: 'variable',
begin: '\\.'+hljs.UNDERSCORE_IDENT_RE
}
]
}
};
}();
}(hljs);

View File

@@ -4,15 +4,10 @@ Requires: xml.js
Author: Oleg Volchkov <oleg@volchkov.net>
*/
hljs.LANGUAGES.parser3 = function() {
var COMMENTED_BLOCK = {
begin: '{', end: '}'
};
COMMENTED_BLOCK.contains = [COMMENTED_BLOCK];
hljs.LANGUAGES['parser3'] = function(hljs) {
return {
defaultMode: {
subLanguage: 'html',
subLanguage: 'xml',
contains: [
{
className: 'comment',
@@ -20,9 +15,14 @@ hljs.LANGUAGES.parser3 = function() {
},
{
className: 'comment',
contains: [COMMENTED_BLOCK],
begin: '\\^rem{', end: '}',
relevance: 10
relevance: 10,
contains: [
{
begin: '{', end: '}',
contains: ['self']
}
]
},
{
className: 'preprocessor',
@@ -49,4 +49,4 @@ hljs.LANGUAGES.parser3 = function() {
]
}
};
}();
}(hljs);

View File

@@ -3,11 +3,29 @@ Language: Perl
Author: Peter Leonov <gojpeg@yandex.ru>
*/
hljs.LANGUAGES.perl = function(){
var PERL_KEYWORDS = {'getpwent': 1, 'getservent': 1, 'quotemeta': 1, 'msgrcv': 1, 'scalar': 1, 'kill': 1, 'dbmclose': 1, 'undef': 1, 'lc': 1, 'ma': 1, 'syswrite': 1, 'tr': 1, 'send': 1, 'umask': 1, 'sysopen': 1, 'shmwrite': 1, 'vec': 1, 'qx': 1, 'utime': 1, 'local': 1, 'oct': 1, 'semctl': 1, 'localtime': 1, 'readpipe': 1, 'do': 1, 'return': 1, 'format': 1, 'read': 1, 'sprintf': 1, 'dbmopen': 1, 'pop': 1, 'getpgrp': 1, 'not': 1, 'getpwnam': 1, 'rewinddir': 1, 'qq': 1, 'fileno': 1, 'qw': 1, 'endprotoent': 1, 'wait': 1, 'sethostent': 1, 'bless': 1, 's': 1, 'opendir': 1, 'continue': 1, 'each': 1, 'sleep': 1, 'endgrent': 1, 'shutdown': 1, 'dump': 1, 'chomp': 1, 'connect': 1, 'getsockname': 1, 'die': 1, 'socketpair': 1, 'close': 1, 'flock': 1, 'exists': 1, 'index': 1, 'shmget': 1, 'sub': 1, 'for': 1, 'endpwent': 1, 'redo': 1, 'lstat': 1, 'msgctl': 1, 'setpgrp': 1, 'abs': 1, 'exit': 1, 'select': 1, 'print': 1, 'ref': 1, 'gethostbyaddr': 1, 'unshift': 1, 'fcntl': 1, 'syscall': 1, 'goto': 1, 'getnetbyaddr': 1, 'join': 1, 'gmtime': 1, 'symlink': 1, 'semget': 1, 'splice': 1, 'x': 1, 'getpeername': 1, 'recv': 1, 'log': 1, 'setsockopt': 1, 'cos': 1, 'last': 1, 'reverse': 1, 'gethostbyname': 1, 'getgrnam': 1, 'study': 1, 'formline': 1, 'endhostent': 1, 'times': 1, 'chop': 1, 'length': 1, 'gethostent': 1, 'getnetent': 1, 'pack': 1, 'getprotoent': 1, 'getservbyname': 1, 'rand': 1, 'mkdir': 1, 'pos': 1, 'chmod': 1, 'y': 1, 'substr': 1, 'endnetent': 1, 'printf': 1, 'next': 1, 'open': 1, 'msgsnd': 1, 'readdir': 1, 'use': 1, 'unlink': 1, 'getsockopt': 1, 'getpriority': 1, 'rindex': 1, 'wantarray': 1, 'hex': 1, 'system': 1, 'getservbyport': 1, 'endservent': 1, 'int': 1, 'chr': 1, 'untie': 1, 'rmdir': 1, 'prototype': 1, 'tell': 1, 'listen': 1, 'fork': 1, 'shmread': 1, 'ucfirst': 1, 'setprotoent': 1, 'else': 1, 'sysseek': 1, 'link': 1, 'getgrgid': 1, 'shmctl': 1, 'waitpid': 1, 'unpack': 1, 'getnetbyname': 1, 'reset': 1, 'chdir': 1, 'grep': 1, 'split': 1, 'require': 1, 'caller': 1, 'lcfirst': 1, 'until': 1, 'warn': 1, 'while': 1, 'values': 1, 'shift': 1, 'telldir': 1, 'getpwuid': 1, 'my': 1, 'getprotobynumber': 1, 'delete': 1, 'and': 1, 'sort': 1, 'uc': 1, 'defined': 1, 'srand': 1, 'accept': 1, 'package': 1, 'seekdir': 1, 'getprotobyname': 1, 'semop': 1, 'our': 1, 'rename': 1, 'seek': 1, 'if': 1, 'q': 1, 'chroot': 1, 'sysread': 1, 'setpwent': 1, 'no': 1, 'crypt': 1, 'getc': 1, 'chown': 1, 'sqrt': 1, 'write': 1, 'setnetent': 1, 'setpriority': 1, 'foreach': 1, 'tie': 1, 'sin': 1, 'msgget': 1, 'map': 1, 'stat': 1, 'getlogin': 1, 'unless': 1, 'elsif': 1, 'truncate': 1, 'exec': 1, 'keys': 1, 'glob': 1, 'tied': 1, 'closedir': 1, 'ioctl': 1, 'socket': 1, 'readlink': 1, 'eval': 1, 'xor': 1, 'readline': 1, 'binmode': 1, 'setservent': 1, 'eof': 1, 'ord': 1, 'bind': 1, 'alarm': 1, 'pipe': 1, 'atan2': 1, 'getgrent': 1, 'exp': 1, 'time': 1, 'push': 1, 'setgrent': 1, 'gt': 1, 'lt': 1, 'or': 1, 'ne': 1, 'm': 1};
hljs.LANGUAGES['perl'] = function(hljs) {
var PERL_KEYWORDS = 'getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ' +
'ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime ' +
'readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq' +
'fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent ' +
'shutdown dump chomp connect getsockname die socketpair close flock exists index shmget' +
'sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr ' +
'unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 ' +
'getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline ' +
'endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand ' +
'mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink ' +
'getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr ' +
'untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link ' +
'getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller ' +
'lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and ' +
'sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 ' +
'chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach ' +
'tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir' +
'ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe ' +
'atan2 getgrent exp time push setgrent gt lt or ne m|0';
var SUBST = {
className: 'subst',
begin: '[$@]\\{', end: '\}',
begin: '[$@]\\{', end: '\\}',
keywords: PERL_KEYWORDS,
relevance: 10
};
@@ -27,13 +45,18 @@ hljs.LANGUAGES.perl = function(){
{begin: '{', end: '}'}
]
};
var COMMENT = {
className: 'comment',
begin: '^(__END__|__DATA__)', end: '\\n$',
relevance: 5
}
var PERL_DEFAULT_CONTAINS = [
VAR1, VAR2,
hljs.HASH_COMMENT_MODE,
COMMENT,
{
className: 'comment',
begin: '^(__END__|__DATA__)', end: '\\n$',
relevance: 5
begin: '^\\=\\w', end: '\\=cut', endsWithParent: true
},
METHOD,
{
@@ -104,31 +127,36 @@ hljs.LANGUAGES.perl = function(){
begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
relevance: 0
},
{
className: 'regexp',
begin: '(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*',
relevance: 10
},
{
className: 'regexp',
begin: '(m|qr)?/', end: '/[a-z]*',
contains: [hljs.BACKSLASH_ESCAPE],
relevance: 0 // allows empty "//" which is a common comment delimiter in other languages
{ // regexp container
begin: '(' + hljs.RE_STARTERS_RE + '|\\b(split|return|print|reverse|grep)\\b)\\s*',
keywords: 'split return print reverse grep',
relevance: 0,
contains: [
hljs.HASH_COMMENT_MODE,
COMMENT,
{
className: 'regexp',
begin: '(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*',
relevance: 10
},
{
className: 'regexp',
begin: '(m|qr)?/', end: '/[a-z]*',
contains: [hljs.BACKSLASH_ESCAPE],
relevance: 0 // allows empty "//" which is a common comment delimiter in other languages
}
]
},
{
className: 'sub',
begin: '\\bsub\\b', end: '(\\s*\\(.*?\\))?[;{]',
keywords: {'sub':1},
beginWithKeyword: true, end: '(\\s*\\(.*?\\))?[;{]',
keywords: 'sub',
relevance: 5
},
{
className: 'operator',
begin: '-\\w\\b',
relevance: 0
},
{
className: 'pod',
begin: '\\=\\w', end: '\\=cut'
}
];
SUBST.contains = PERL_DEFAULT_CONTAINS;
@@ -140,4 +168,4 @@ hljs.LANGUAGES.perl = function(){
contains: PERL_DEFAULT_CONTAINS
}
};
}();
}(hljs);

View File

@@ -1,55 +1,112 @@
/*
Language: PHP
Author: Victor Karamzin <Victor.Karamzin@enterra-inc.com>
Contributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>
*/
hljs.LANGUAGES.php = {
case_insensitive: true,
defaultMode: {
keywords: {
'and': 1, 'include_once': 1, 'list': 1, 'abstract': 1, 'global': 1,
'private': 1, 'echo': 1, 'interface': 1, 'as': 1, 'static': 1,
'endswitch': 1, 'array': 1, 'null': 1, 'if': 1, 'endwhile': 1, 'or': 1,
'const': 1, 'for': 1, 'endforeach': 1, 'self': 1, 'var': 1, 'while': 1,
'isset': 1, 'public': 1, 'protected': 1, 'exit': 1, 'foreach': 1,
'throw': 1, 'elseif': 1, 'extends': 1, 'include': 1, '__FILE__': 1,
'empty': 1, 'require_once': 1, 'function': 1, 'do': 1, 'xor': 1,
'return': 1, 'implements': 1, 'parent': 1, 'clone': 1, 'use': 1,
'__CLASS__': 1, '__LINE__': 1, 'else': 1, 'break': 1, 'print': 1,
'eval': 1, 'new': 1, 'catch': 1, '__METHOD__': 1, 'class': 1, 'case': 1,
'exception': 1, 'php_user_filter': 1, 'default': 1, 'die': 1,
'require': 1, '__FUNCTION__': 1, 'enddeclare': 1, 'final': 1, 'try': 1,
'this': 1, 'switch': 1, 'continue': 1, 'endfor': 1, 'endif': 1,
'declare': 1, 'unset': 1, 'true': 1, 'false': 1, 'namespace': 1
hljs.LANGUAGES['php'] = function(hljs) {
var VARIABLE = {
className: 'variable', begin: '\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
};
var STRINGS = [
hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
{
className: 'string',
begin: 'b"', end: '"',
contains: [hljs.BACKSLASH_ESCAPE]
},
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.HASH_COMMENT_MODE,
{
className: 'comment',
begin: '/\\*', end: '\\*/',
contains: [{
className: 'phpdoc',
begin: '\\s@[A-Za-z]+',
relevance: 10
}]
},
hljs.C_NUMBER_MODE,
hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
{
className: 'variable',
begin: '\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
},
{
className: 'preprocessor',
begin: '<\\?php',
relevance: 10
},
{
className: 'preprocessor',
begin: '\\?>'
}
]
}
};
{
className: 'string',
begin: 'b\'', end: '\'',
contains: [hljs.BACKSLASH_ESCAPE]
}
];
var NUMBERS = [
hljs.C_NUMBER_MODE, // 0x..., 0..., decimal, float
hljs.BINARY_NUMBER_MODE // 0b...
];
var TITLE = {
className: 'title', begin: hljs.UNDERSCORE_IDENT_RE
};
return {
case_insensitive: true,
defaultMode: {
keywords:
'and include_once list abstract global private echo interface as static endswitch ' +
'array null if endwhile or const for endforeach self var while isset public ' +
'protected exit foreach throw elseif include __FILE__ empty require_once do xor ' +
'return implements parent clone use __CLASS__ __LINE__ else break print eval new ' +
'catch __METHOD__ case exception php_user_filter default die require __FUNCTION__ ' +
'enddeclare final try this switch continue endfor endif declare unset true false ' +
'namespace trait goto instanceof insteadof __DIR__ __NAMESPACE__ __halt_compiler',
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.HASH_COMMENT_MODE,
{
className: 'comment',
begin: '/\\*', end: '\\*/',
contains: [{
className: 'phpdoc',
begin: '\\s@[A-Za-z]+'
}]
},
{
className: 'comment',
excludeBegin: true,
begin: '__halt_compiler.+?;', endsWithParent: true
},
{
className: 'string',
begin: '<<<[\'"]?\\w+[\'"]?$', end: '^\\w+;',
contains: [hljs.BACKSLASH_ESCAPE]
},
{
className: 'preprocessor',
begin: '<\\?php',
relevance: 10
},
{
className: 'preprocessor',
begin: '\\?>'
},
VARIABLE,
{
className: 'function',
beginWithKeyword: true, end: '{',
keywords: 'function',
illegal: '\\$|\\[|%',
contains: [
TITLE,
{
className: 'params',
begin: '\\(', end: '\\)',
contains: [
'self',
VARIABLE,
hljs.C_BLOCK_COMMENT_MODE
].concat(STRINGS).concat(NUMBERS)
}
]
},
{
className: 'class',
beginWithKeyword: true, end: '{',
keywords: 'class',
illegal: '[:\\(\\$]',
contains: [
{
beginWithKeyword: true, endsWithParent: true,
keywords: 'extends',
contains: [TITLE]
},
TITLE
]
},
{
begin: '=>' // No markup, just a relevance booster
}
].concat(STRINGS).concat(NUMBERS)
}
};
}(hljs);

View File

@@ -4,46 +4,48 @@ Description: Python profiler results
Author: Brian Beck <exogen@gmail.com>
*/
hljs.LANGUAGES.profile = {
defaultMode: {
contains: [
hljs.C_NUMBER_MODE,
{
className: 'builtin',
begin: '{', end: '}$',
excludeBegin: true, excludeEnd: true,
contains: [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE],
relevance: 0
},
{
className: 'filename',
begin: '(/\w|[a-zA-Z_][\da-zA-Z_]+\\.[\da-zA-Z_]{1,3})', end: ':',
excludeEnd: true
},
{
className: 'header',
begin: '(ncalls|tottime|cumtime)', end: '$',
keywords: {'ncalls': 1, 'tottime': 10, 'cumtime': 10, 'filename': 1},
relevance: 10
},
{
className: 'summary',
begin: 'function calls', end: '$',
contains: [hljs.C_NUMBER_MODE],
relevance: 10
},
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
{
className: 'function',
begin: '\\(', end: '\\)$',
contains: [{
className: 'title',
begin: hljs.UNDERSCORE_IDENT_RE,
hljs.LANGUAGES['profile'] = function(hljs) {
return {
defaultMode: {
contains: [
hljs.C_NUMBER_MODE,
{
className: 'builtin',
begin: '{', end: '}$',
excludeBegin: true, excludeEnd: true,
contains: [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE],
relevance: 0
}],
relevance: 0
}
]
}
};
},
{
className: 'filename',
begin: '[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}', end: ':',
excludeEnd: true
},
{
className: 'header',
begin: '(ncalls|tottime|cumtime)', end: '$',
keywords: 'ncalls tottime|10 cumtime|10 filename',
relevance: 10
},
{
className: 'summary',
begin: 'function calls', end: '$',
contains: [hljs.C_NUMBER_MODE],
relevance: 10
},
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
{
className: 'function',
begin: '\\(', end: '\\)$',
contains: [{
className: 'title',
begin: hljs.UNDERSCORE_IDENT_RE,
relevance: 0
}],
relevance: 0
}
]
}
};
}(hljs);

View File

@@ -2,70 +2,83 @@
Language: Python
*/
hljs.LANGUAGES.python = function() {
var STR1 = {
className: 'string',
begin: '(u|b)?r?\'\'\'', end: '\'\'\'',
relevance: 10
};
var STR2 = {
className: 'string',
begin: '(u|b)?r?"""', end: '"""',
relevance: 10
};
var STR3 = {
className: 'string',
begin: '(u|r|ur|b|br)\'', end: '\'',
contains: [hljs.BACKSLASH_ESCAPE],
relevance: 10
};
var STR4 = {
className: 'string',
begin: '(u|r|ur|b|br)"', end: '"',
contains: [hljs.BACKSLASH_ESCAPE],
relevance: 10
};
hljs.LANGUAGES['python'] = function(hljs) {
var STRINGS = [
{
className: 'string',
begin: '(u|b)?r?\'\'\'', end: '\'\'\'',
relevance: 10
},
{
className: 'string',
begin: '(u|b)?r?"""', end: '"""',
relevance: 10
},
{
className: 'string',
begin: '(u|r|ur)\'', end: '\'',
contains: [hljs.BACKSLASH_ESCAPE],
relevance: 10
},
{
className: 'string',
begin: '(u|r|ur)"', end: '"',
contains: [hljs.BACKSLASH_ESCAPE],
relevance: 10
},
{
className: 'string',
begin: '(b|br)\'', end: '\'',
contains: [hljs.BACKSLASH_ESCAPE]
},
{
className: 'string',
begin: '(b|br)"', end: '"',
contains: [hljs.BACKSLASH_ESCAPE]
}
].concat([
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE
]);
var TITLE = {
className: 'title', begin: hljs.UNDERSCORE_IDENT_RE
};
var PARAMS = {
className: 'params',
begin: '\\(', end: '\\)',
contains: [STR1, STR2, STR3, STR4, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]
contains: ['self', hljs.C_NUMBER_MODE].concat(STRINGS)
};
var FUNC_CLASS_PROTO = {
beginWithKeyword: true, end: ':',
illegal: '[${=;\\n]',
contains: [TITLE, PARAMS],
relevance: 10
};
return {
defaultMode: {
keywords: {
'keyword': {'and': 1, 'elif': 1, 'is': 1, 'global': 1, 'as': 1, 'in': 1, 'if': 1, 'from': 1, 'raise': 1, 'for': 1, 'except': 1, 'finally': 1, 'print': 1, 'import': 1, 'pass': 1, 'return': 1, 'exec': 1, 'else': 1, 'break': 1, 'not': 1, 'with': 1, 'class': 1, 'assert': 1, 'yield': 1, 'try': 1, 'while': 1, 'continue': 1, 'del': 1, 'or': 1, 'def': 1, 'lambda': 1, 'nonlocal': 10},
'built_in': {'None': 1, 'True': 1, 'False': 1, 'Ellipsis': 1, 'NotImplemented': 1}
keyword:
'and elif is global as in if from raise for except finally print import pass return ' +
'exec else break not with class assert yield try while continue del or def lambda ' +
'nonlocal|10',
built_in:
'None True False Ellipsis NotImplemented'
},
illegal: '(</|->|\\?)',
contains: [
contains: STRINGS.concat([
hljs.HASH_COMMENT_MODE,
STR1, STR2, STR3, STR4, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE,
{
className: 'function',
begin: '\\bdef ', end: ':',
illegal: '$',
keywords: {'def': 1},
contains: [TITLE, PARAMS],
relevance: 10
},
{
className: 'class',
begin: '\\bclass ', end: ':',
illegal: '[${]',
keywords: {'class': 1},
contains: [TITLE, PARAMS],
relevance: 10
},
hljs.inherit(FUNC_CLASS_PROTO, {className: 'function', keywords: 'def'}),
hljs.inherit(FUNC_CLASS_PROTO, {className: 'class', keywords: 'class'}),
hljs.C_NUMBER_MODE,
{
className: 'decorator',
begin: '@', end: '$'
},
{
begin: '\\b(print|exec)\\(' // dont highlight keywords-turned-functions in Python 3
}
]
])
}
};
}();
}(hljs);

View File

@@ -0,0 +1,82 @@
/*
Language: R
Author: Joe Cheng <joe@rstudio.org>
*/
hljs.LANGUAGES['r'] = function(hljs) {
var IDENT_RE = '([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*';
return {
defaultMode: {
contains: [
hljs.HASH_COMMENT_MODE,
{
begin: IDENT_RE,
lexems: IDENT_RE,
keywords: {
keyword:
'function if in break next repeat else for return switch while try tryCatch|10 ' +
'stop warning require library attach detach source setMethod setGeneric ' +
'setGroupGeneric setClass ...|10',
literal:
'NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 ' +
'NA_complex_|10'
},
relevance: 0
},
{
// hex value
className: 'number',
begin: "0[xX][0-9a-fA-F]+[Li]?\\b",
relevance: 0
},
{
// explicit integer
className: 'number',
begin: "\\d+(?:[eE][+\\-]?\\d*)?L\\b",
relevance: 0
},
{
// number with trailing decimal
className: 'number',
begin: "\\d+\\.(?!\\d)(?:i\\b)?",
relevance: 0
},
{
// number
className: 'number',
begin: "\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",
relevance: 0
},
{
// number with leading decimal
className: 'number',
begin: "\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",
relevance: 0
},
{
// escaped identifier
begin: '`',
end: '`',
relevance: 0
},
{
className: 'string',
begin: '"',
end: '"',
contains: [hljs.BACKSLASH_ESCAPE],
relevance: 0
},
{
className: 'string',
begin: "'",
end: "'",
contains: [hljs.BACKSLASH_ESCAPE],
relevance: 0
}
]
}
};
}(hljs);

View File

@@ -1,230 +0,0 @@
/*
Language: RenderMan
Description: RenderMan Languages RIB and RSL
Author: Konstantin Evdokimenko <qewerty@gmail.com>
Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
*/
hljs.LANGUAGES.rib = {
defaultMode: {
keywords: {
'keyword': {
'ArchiveRecord': 1,
'AreaLightSource': 1,
'Atmosphere': 1,
'Attribute': 1,
'AttributeBegin': 1,
'AttributeEnd': 1,
'Basis': 1,
'Begin': 1,
'Blobby': 1,
'Bound': 1,
'Clipping': 1,
'ClippingPlane': 1,
'Color': 1,
'ColorSamples': 1,
'ConcatTransform': 1,
'Cone': 1,
'CoordinateSystem': 1,
'CoordSysTransform': 1,
'CropWindow': 1,
'Curves': 1,
'Cylinder': 1,
'DepthOfField': 1,
'Detail': 1,
'DetailRange': 1,
'Disk': 1,
'Displacement': 1,
'Display': 1,
'End': 1,
'ErrorHandler': 1,
'Exposure': 1,
'Exterior': 1,
'Format': 1,
'FrameAspectRatio': 1,
'FrameBegin': 1,
'FrameEnd': 1,
'GeneralPolygon': 1,
'GeometricApproximation': 1,
'Geometry': 1,
'Hider': 1,
'Hyperboloid': 1,
'Identity': 1,
'Illuminate': 1,
'Imager': 1,
'Interior': 1,
'LightSource': 1,
'MakeCubeFaceEnvironment': 1,
'MakeLatLongEnvironment': 1,
'MakeShadow': 1,
'MakeTexture': 1,
'Matte': 1,
'MotionBegin': 1,
'MotionEnd': 1,
'NuPatch': 1,
'ObjectBegin': 1,
'ObjectEnd': 1,
'ObjectInstance': 1,
'Opacity': 1,
'Option': 1,
'Orientation': 1,
'Paraboloid': 1,
'Patch': 1,
'PatchMesh': 1,
'Perspective': 1,
'PixelFilter': 1,
'PixelSamples': 1,
'PixelVariance': 1,
'Points': 1,
'PointsGeneralPolygons': 1,
'PointsPolygons': 1,
'Polygon': 1,
'Procedural': 1,
'Projection': 1,
'Quantize': 1,
'ReadArchive': 1,
'RelativeDetail': 1,
'ReverseOrientation': 1,
'Rotate': 1,
'Scale': 1,
'ScreenWindow': 1,
'ShadingInterpolation': 1,
'ShadingRate': 1,
'Shutter': 1,
'Sides': 1,
'Skew': 1,
'SolidBegin': 1,
'SolidEnd': 1,
'Sphere': 1,
'SubdivisionMesh': 1,
'Surface': 1,
'TextureCoordinates': 1,
'Torus': 1,
'Transform': 1,
'TransformBegin': 1,
'TransformEnd': 1,
'TransformPoints': 1,
'Translate': 1,
'TrimCurve': 1,
'WorldBegin': 1,
'WorldEnd': 1
}
},
illegal: '</',
contains: [
hljs.HASH_COMMENT_MODE,
hljs.C_NUMBER_MODE,
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE
]
}
};
hljs.LANGUAGES.rsl = {
defaultMode: {
keywords: {
'keyword': {'float': 1, 'color': 1, 'point': 1, 'normal': 1, 'vector': 1,
'matrix': 1, 'while': 1, 'for': 1, 'if': 1, 'do': 1,
'return': 1, 'else': 1, 'break': 1, 'extern': 1, 'continue': 1},
'built_in': {
'abs': 1,
'acos': 1,
'ambient': 1,
'area': 1,
'asin': 1,
'atan': 1,
'atmosphere': 1,
'attribute': 1,
'calculatenormal': 1,
'ceil': 1,
'cellnoise': 1,
'clamp': 1,
'comp': 1,
'concat': 1,
'cos': 1,
'degrees': 1,
'depth': 1,
'Deriv': 1,
'diffuse': 1,
'distance': 1,
'Du': 1,
'Dv': 1,
'environment': 1,
'exp': 1,
'faceforward': 1,
'filterstep': 1,
'floor': 1,
'format': 1,
'fresnel': 1,
'incident': 1,
'length': 1,
'lightsource': 1,
'log': 1,
'match': 1,
'max': 1,
'min': 1,
'mod': 1,
'noise': 1,
'normalize': 1,
'ntransform': 1,
'opposite': 1,
'option': 1,
'phong': 1,
'pnoise': 1,
'pow': 1,
'printf': 1,
'ptlined': 1,
'radians': 1,
'random': 1,
'reflect': 1,
'refract': 1,
'renderinfo': 1,
'round': 1,
'setcomp': 1,
'setxcomp': 1,
'setycomp': 1,
'setzcomp': 1,
'shadow': 1,
'sign': 1,
'sin': 1,
'smoothstep': 1,
'specular': 1,
'specularbrdf': 1,
'spline': 1,
'sqrt': 1,
'step': 1,
'tan': 1,
'texture': 1,
'textureinfo': 1,
'trace': 1,
'transform': 1,
'vtransform': 1,
'xcomp': 1,
'ycomp': 1,
'zcomp': 1
}
},
illegal: '</',
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
hljs.QUOTE_STRING_MODE,
hljs.APOS_STRING_MODE,
hljs.C_NUMBER_MODE,
{
className: 'preprocessor',
begin: '#', end: '$'
},
{
className: 'shader',
begin: 'surface |displacement |light |volume |imager ', end: '\\(',
keywords: {'surface': 1, 'displacement': 1, 'light': 1, 'volume': 1, 'imager': 1}
},
{
className: 'shading',
begin: 'illuminate|illuminance|gather', end: '\\(',
keywords: {'illuminate': 1, 'illuminance': 1, 'gather': 1}
}
]
}
};

View File

@@ -0,0 +1,34 @@
/*
Language: RenderMan RIB
Author: Konstantin Evdokimenko <qewerty@gmail.com>
Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
*/
hljs.LANGUAGES['rib'] = function(hljs) {
return {
defaultMode: {
keywords:
'ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis ' +
'Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone ' +
'CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail ' +
'DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format ' +
'FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry ' +
'Hider Hyperboloid Identity Illuminate Imager Interior LightSource ' +
'MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte ' +
'MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option ' +
'Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples ' +
'PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection ' +
'Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ' +
'ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere ' +
'SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd ' +
'TransformPoints Translate TrimCurve WorldBegin WorldEnd',
illegal: '</',
contains: [
hljs.HASH_COMMENT_MODE,
hljs.C_NUMBER_MODE,
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE
]
}
};
}(hljs);

View File

@@ -0,0 +1,46 @@
/*
Language: RenderMan RSL
Author: Konstantin Evdokimenko <qewerty@gmail.com>
Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
*/
hljs.LANGUAGES['rsl'] = function(hljs) {
return {
defaultMode: {
keywords: {
keyword:
'float color point normal vector matrix while for if do return else break extern continue',
built_in:
'abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise ' +
'clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp ' +
'faceforward filterstep floor format fresnel incident length lightsource log match ' +
'max min mod noise normalize ntransform opposite option phong pnoise pow printf ' +
'ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp ' +
'setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan ' +
'texture textureinfo trace transform vtransform xcomp ycomp zcomp'
},
illegal: '</',
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
hljs.QUOTE_STRING_MODE,
hljs.APOS_STRING_MODE,
hljs.C_NUMBER_MODE,
{
className: 'preprocessor',
begin: '#', end: '$'
},
{
className: 'shader',
beginWithKeyword: true, end: '\\(',
keywords: 'surface displacement light volume imager'
},
{
className: 'shading',
beginWithKeyword: true, end: '\\(',
keywords: 'illuminate illuminance gather'
}
]
}
};
}(hljs);

View File

@@ -4,32 +4,36 @@ Author: Anton Kovalyov <anton@kovalyov.net>
Contributors: Peter Leonov <gojpeg@yandex.ru>, Vasily Polovnyov <vast@whiteants.net>, Loren Segal <lsegal@soen.ca>
*/
hljs.LANGUAGES.ruby = function(){
hljs.LANGUAGES['ruby'] = function(hljs) {
var RUBY_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?';
var RUBY_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
var RUBY_KEYWORDS = {
'keyword': {'and': 1, 'false': 1, 'then': 1, 'defined': 1, 'module': 1, 'in': 1, 'return': 1, 'redo': 1, 'if': 1, 'BEGIN': 1, 'retry': 1, 'end': 1, 'for': 1, 'true': 1, 'self': 1, 'when': 1, 'next': 1, 'until': 1, 'do': 1, 'begin': 1, 'unless': 1, 'END': 1, 'rescue': 1, 'nil': 1, 'else': 1, 'break': 1, 'undef': 1, 'not': 1, 'super': 1, 'class': 1, 'case': 1, 'require': 1, 'yield': 1, 'alias': 1, 'while': 1, 'ensure': 1, 'elsif': 1, 'or': 1, 'def': 1},
'keymethods': {'__id__': 1, '__send__': 1, 'abort': 1, 'abs': 1, 'all?': 1, 'allocate': 1, 'ancestors': 1, 'any?': 1, 'arity': 1, 'assoc': 1, 'at': 1, 'at_exit': 1, 'autoload': 1, 'autoload?': 1, 'between?': 1, 'binding': 1, 'binmode': 1, 'block_given?': 1, 'call': 1, 'callcc': 1, 'caller': 1, 'capitalize': 1, 'capitalize!': 1, 'casecmp': 1, 'catch': 1, 'ceil': 1, 'center': 1, 'chomp': 1, 'chomp!': 1, 'chop': 1, 'chop!': 1, 'chr': 1, 'class': 1, 'class_eval': 1, 'class_variable_defined?': 1, 'class_variables': 1, 'clear': 1, 'clone': 1, 'close': 1, 'close_read': 1, 'close_write': 1, 'closed?': 1, 'coerce': 1, 'collect': 1, 'collect!': 1, 'compact': 1, 'compact!': 1, 'concat': 1, 'const_defined?': 1, 'const_get': 1, 'const_missing': 1, 'const_set': 1, 'constants': 1, 'count': 1, 'crypt': 1, 'default': 1, 'default_proc': 1, 'delete': 1, 'delete!': 1, 'delete_at': 1, 'delete_if': 1, 'detect': 1, 'display': 1, 'div': 1, 'divmod': 1, 'downcase': 1, 'downcase!': 1, 'downto': 1, 'dump': 1, 'dup': 1, 'each': 1, 'each_byte': 1, 'each_index': 1, 'each_key': 1, 'each_line': 1, 'each_pair': 1, 'each_value': 1, 'each_with_index': 1, 'empty?': 1, 'entries': 1, 'eof': 1, 'eof?': 1, 'eql?': 1, 'equal?': 1, 'eval': 1, 'exec': 1, 'exit': 1, 'exit!': 1, 'extend': 1, 'fail': 1, 'fcntl': 1, 'fetch': 1, 'fileno': 1, 'fill': 1, 'find': 1, 'find_all': 1, 'first': 1, 'flatten': 1, 'flatten!': 1, 'floor': 1, 'flush': 1, 'for_fd': 1, 'foreach': 1, 'fork': 1, 'format': 1, 'freeze': 1, 'frozen?': 1, 'fsync': 1, 'getc': 1, 'gets': 1, 'global_variables': 1, 'grep': 1, 'gsub': 1, 'gsub!': 1, 'has_key?': 1, 'has_value?': 1, 'hash': 1, 'hex': 1, 'id': 1, 'include': 1, 'include?': 1, 'included_modules': 1, 'index': 1, 'indexes': 1, 'indices': 1, 'induced_from': 1, 'inject': 1, 'insert': 1, 'inspect': 1, 'instance_eval': 1, 'instance_method': 1, 'instance_methods': 1, 'instance_of?': 1, 'instance_variable_defined?': 1, 'instance_variable_get': 1, 'instance_variable_set': 1, 'instance_variables': 1, 'integer?': 1, 'intern': 1, 'invert': 1, 'ioctl': 1, 'is_a?': 1, 'isatty': 1, 'iterator?': 1, 'join': 1, 'key?': 1, 'keys': 1, 'kind_of?': 1, 'lambda': 1, 'last': 1, 'length': 1, 'lineno': 1, 'ljust': 1, 'load': 1, 'local_variables': 1, 'loop': 1, 'lstrip': 1, 'lstrip!': 1, 'map': 1, 'map!': 1, 'match': 1, 'max': 1, 'member?': 1, 'merge': 1, 'merge!': 1, 'method': 1, 'method_defined?': 1, 'method_missing': 1, 'methods': 1, 'min': 1, 'module_eval': 1, 'modulo': 1, 'name': 1, 'nesting': 1, 'new': 1, 'next': 1, 'next!': 1, 'nil?': 1, 'nitems': 1, 'nonzero?': 1, 'object_id': 1, 'oct': 1, 'open': 1, 'pack': 1, 'partition': 1, 'pid': 1, 'pipe': 1, 'pop': 1, 'popen': 1, 'pos': 1, 'prec': 1, 'prec_f': 1, 'prec_i': 1, 'print': 1, 'printf': 1, 'private_class_method': 1, 'private_instance_methods': 1, 'private_method_defined?': 1, 'private_methods': 1, 'proc': 1, 'protected_instance_methods': 1, 'protected_method_defined?': 1, 'protected_methods': 1, 'public_class_method': 1, 'public_instance_methods': 1, 'public_method_defined?': 1, 'public_methods': 1, 'push': 1, 'putc': 1, 'puts': 1, 'quo': 1, 'raise': 1, 'rand': 1, 'rassoc': 1, 'read': 1, 'read_nonblock': 1, 'readchar': 1, 'readline': 1, 'readlines': 1, 'readpartial': 1, 'rehash': 1, 'reject': 1, 'reject!': 1, 'remainder': 1, 'reopen': 1, 'replace': 1, 'require': 1, 'respond_to?': 1, 'reverse': 1, 'reverse!': 1, 'reverse_each': 1, 'rewind': 1, 'rindex': 1, 'rjust': 1, 'round': 1, 'rstrip': 1, 'rstrip!': 1, 'scan': 1, 'seek': 1, 'select': 1, 'send': 1, 'set_trace_func': 1, 'shift': 1, 'singleton_method_added': 1, 'singleton_methods': 1, 'size': 1, 'sleep': 1, 'slice': 1, 'slice!': 1, 'sort': 1, 'sort!': 1, 'sort_by': 1, 'split': 1, 'sprintf': 1, 'squeeze': 1, 'squeeze!': 1, 'srand': 1, 'stat': 1, 'step': 1, 'store': 1, 'strip': 1, 'strip!': 1, 'sub': 1, 'sub!': 1, 'succ': 1, 'succ!': 1, 'sum': 1, 'superclass': 1, 'swapcase': 1, 'swapcase!': 1, 'sync': 1, 'syscall': 1, 'sysopen': 1, 'sysread': 1, 'sysseek': 1, 'system': 1, 'syswrite': 1, 'taint': 1, 'tainted?': 1, 'tell': 1, 'test': 1, 'throw': 1, 'times': 1, 'to_a': 1, 'to_ary': 1, 'to_f': 1, 'to_hash': 1, 'to_i': 1, 'to_int': 1, 'to_io': 1, 'to_proc': 1, 'to_s': 1, 'to_str': 1, 'to_sym': 1, 'tr': 1, 'tr!': 1, 'tr_s': 1, 'tr_s!': 1, 'trace_var': 1, 'transpose': 1, 'trap': 1, 'truncate': 1, 'tty?': 1, 'type': 1, 'ungetc': 1, 'uniq': 1, 'uniq!': 1, 'unpack': 1, 'unshift': 1, 'untaint': 1, 'untrace_var': 1, 'upcase': 1, 'upcase!': 1, 'update': 1, 'upto': 1, 'value?': 1, 'values': 1, 'values_at': 1, 'warn': 1, 'write': 1, 'write_nonblock': 1, 'zero?': 1, 'zip': 1}
keyword:
'and false then defined module in return redo if BEGIN retry end for true self when ' +
'next until do begin unless END rescue nil else break undef not super class case ' +
'require yield alias while ensure elsif or include'
};
var YARDOCTAG = {
className: 'yardoctag',
begin: '@[A-Za-z]+'
};
var COMMENT1 = {
className: 'comment',
begin: '#', end: '$',
contains: [YARDOCTAG]
};
var COMMENT2 = {
className: 'comment',
begin: '^\\=begin', end: '^\\=end',
contains: [YARDOCTAG],
relevance: 10
};
var COMMENT3 = {
className: 'comment',
begin: '^__END__', end: '\\n$'
};
var COMMENTS = [
{
className: 'comment',
begin: '#', end: '$',
contains: [YARDOCTAG]
},
{
className: 'comment',
begin: '^\\=begin', end: '^\\=end',
contains: [YARDOCTAG],
relevance: 10
},
{
className: 'comment',
begin: '^__END__', end: '\\n$'
}
];
var SUBST = {
className: 'subst',
begin: '#\\{', end: '}',
@@ -37,71 +41,69 @@ hljs.LANGUAGES.ruby = function(){
keywords: RUBY_KEYWORDS
};
var STR_CONTAINS = [hljs.BACKSLASH_ESCAPE, SUBST];
var STR1 = {
className: 'string',
begin: '\'', end: '\'',
contains: STR_CONTAINS,
relevance: 0
};
var STR2 = {
className: 'string',
begin: '"', end: '"',
contains: STR_CONTAINS,
relevance: 0
};
var STR3 = {
className: 'string',
begin: '%[qw]?\\(', end: '\\)',
contains: STR_CONTAINS,
relevance: 10
};
var STR4 = {
className: 'string',
begin: '%[qw]?\\[', end: '\\]',
contains: STR_CONTAINS,
relevance: 10
};
var STR5 = {
className: 'string',
begin: '%[qw]?{', end: '}',
contains: STR_CONTAINS,
relevance: 10
};
var STR6 = {
className: 'string',
begin: '%[qw]?<', end: '>',
contains: STR_CONTAINS,
relevance: 10
};
var STR7 = {
className: 'string',
begin: '%[qw]?/', end: '/',
contains: STR_CONTAINS,
relevance: 10
};
var STR8 = {
className: 'string',
begin: '%[qw]?%', end: '%',
contains: STR_CONTAINS,
relevance: 10
};
var STR9 = {
className: 'string',
begin: '%[qw]?-', end: '-',
contains: STR_CONTAINS,
relevance: 10
};
var STR10 = {
className: 'string',
begin: '%[qw]?\\|', end: '\\|',
contains: STR_CONTAINS,
relevance: 10
};
var STRINGS = [
{
className: 'string',
begin: '\'', end: '\'',
contains: STR_CONTAINS,
relevance: 0
},
{
className: 'string',
begin: '"', end: '"',
contains: STR_CONTAINS,
relevance: 0
},
{
className: 'string',
begin: '%[qw]?\\(', end: '\\)',
contains: STR_CONTAINS
},
{
className: 'string',
begin: '%[qw]?\\[', end: '\\]',
contains: STR_CONTAINS
},
{
className: 'string',
begin: '%[qw]?{', end: '}',
contains: STR_CONTAINS
},
{
className: 'string',
begin: '%[qw]?<', end: '>',
contains: STR_CONTAINS,
relevance: 10
},
{
className: 'string',
begin: '%[qw]?/', end: '/',
contains: STR_CONTAINS,
relevance: 10
},
{
className: 'string',
begin: '%[qw]?%', end: '%',
contains: STR_CONTAINS,
relevance: 10
},
{
className: 'string',
begin: '%[qw]?-', end: '-',
contains: STR_CONTAINS,
relevance: 10
},
{
className: 'string',
begin: '%[qw]?\\|', end: '\\|',
contains: STR_CONTAINS,
relevance: 10
}
];
var FUNCTION = {
className: 'function',
begin: '\\bdef\\s+', end: ' |$|;',
lexems: RUBY_IDENT_RE,
keywords: RUBY_KEYWORDS,
beginWithKeyword: true, end: ' |$|;',
keywords: 'def',
contains: [
{
className: 'title',
@@ -114,25 +116,15 @@ hljs.LANGUAGES.ruby = function(){
begin: '\\(', end: '\\)',
lexems: RUBY_IDENT_RE,
keywords: RUBY_KEYWORDS
},
COMMENT1, COMMENT2, COMMENT3
]
};
var IDENTIFIER = {
className: 'identifier',
begin: RUBY_IDENT_RE,
lexems: RUBY_IDENT_RE,
keywords: RUBY_KEYWORDS,
relevance: 0
}
].concat(COMMENTS)
};
var RUBY_DEFAULT_CONTAINS = [
COMMENT1, COMMENT2, COMMENT3,
STR1, STR2, STR3, STR4, STR5, STR6, STR7, STR8, STR9, STR10,
var RUBY_DEFAULT_CONTAINS = COMMENTS.concat(STRINGS.concat([
{
className: 'class',
begin: '\\b(class|module)\\b', end: '$|;',
keywords: {'class': 1, 'module': 1},
beginWithKeyword: true, end: '$|;',
keywords: 'class module',
contains: [
{
className: 'title',
@@ -146,20 +138,19 @@ hljs.LANGUAGES.ruby = function(){
className: 'parent',
begin: '(' + hljs.IDENT_RE + '::)?' + hljs.IDENT_RE
}]
},
COMMENT1, COMMENT2, COMMENT3
]
}
].concat(COMMENTS)
},
FUNCTION,
{
className: 'constant',
begin: '(::)?([A-Z]\\w*(::)?)+',
begin: '(::)?(\\b[A-Z]\\w*(::)?)+',
relevance: 0
},
{
className: 'symbol',
begin: ':',
contains: [STR1, STR2, STR3, STR4, STR5, STR6, STR7, STR8, STR9, STR10, IDENTIFIER],
contains: STRINGS.concat([{begin: RUBY_IDENT_RE}]),
relevance: 0
},
{
@@ -175,21 +166,19 @@ hljs.LANGUAGES.ruby = function(){
className: 'variable',
begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))'
},
IDENTIFIER,
{ // regexp container
begin: '(' + hljs.RE_STARTERS_RE + ')\\s*',
contains: [
COMMENT1, COMMENT2, COMMENT3,
contains: COMMENTS.concat([
{
className: 'regexp',
begin: '/', end: '/[a-z]*',
illegal: '\\n',
contains: [hljs.BACKSLASH_ESCAPE]
}
],
]),
relevance: 0
}
];
]));
SUBST.contains = RUBY_DEFAULT_CONTAINS;
FUNCTION.contains[1].contains = RUBY_DEFAULT_CONTAINS;
@@ -200,4 +189,4 @@ hljs.LANGUAGES.ruby = function(){
contains: RUBY_DEFAULT_CONTAINS
}
};
}();
}(hljs);

View File

@@ -0,0 +1,62 @@
/*
Language: Rust
Author: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
*/
hljs.LANGUAGES['rust'] = function(hljs) {
var TITLE = {
className: 'title',
begin: hljs.UNDERSCORE_IDENT_RE
};
var QUOTE_STRING = {
className: 'string',
begin: '"', end: '"',
contains: [hljs.BACKSLASH_ESCAPE],
relevance: 0
};
var NUMBER = {
className: 'number',
begin: '\\b(0[xb][A-Za-z0-9_]+|[0-9_]+(\\.[0-9_]+)?([uif](8|16|32|64)?)?)',
relevance: 0
};
var KEYWORDS =
'alt any as assert be bind block bool break char check claim const cont dir do else enum ' +
'export f32 f64 fail false float fn for i16 i32 i64 i8 if iface impl import in int let ' +
'log mod mutable native note of prove pure resource ret self str syntax true type u16 u32 ' +
'u64 u8 uint unchecked unsafe use vec while';
return {
defaultMode: {
keywords: KEYWORDS,
illegal: '</',
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
QUOTE_STRING,
hljs.APOS_STRING_MODE,
NUMBER,
{
className: 'function',
beginWithKeyword: true, end: '(\\(|<)',
keywords: 'fn',
contains: [TITLE]
},
{
className: 'preprocessor',
begin: '#\\[', end: '\\]'
},
{
beginWithKeyword: true, end: '(=|<)',
keywords: 'type',
contains: [TITLE],
illegal: '\\S'
},
{
beginWithKeyword: true, end: '({|<)',
keywords: 'iface enum',
contains: [TITLE],
illegal: '\\S'
}
]
}
};
}(hljs);

View File

@@ -3,7 +3,7 @@ Language: Scala
Author: Jan Berkel <jan.berkel@gmail.com>
*/
hljs.LANGUAGES.scala = function() {
hljs.LANGUAGES['scala'] = function(hljs) {
var ANNOTATION = {
className: 'annotation', begin: '@[A-Za-z]+'
};
@@ -14,7 +14,10 @@ hljs.LANGUAGES.scala = function() {
};
return {
defaultMode: {
keywords: { 'type': 1, 'yield': 1, 'lazy': 1, 'override': 1, 'def': 1, 'with': 1, 'val':1, 'var': 1, 'false': 1, 'true': 1, 'sealed': 1, 'abstract': 1, 'private': 1, 'trait': 1, 'object': 1, 'null': 1, 'if': 1, 'for': 1, 'while': 1, 'throw': 1, 'finally': 1, 'protected': 1, 'extends': 1, 'import': 1, 'final': 1, 'return': 1, 'else': 1, 'break': 1, 'new': 1, 'catch': 1, 'super': 1, 'class': 1, 'case': 1,'package': 1, 'default': 1, 'try': 1, 'this': 1, 'match': 1, 'continue': 1, 'throws': 1},
keywords:
'type yield lazy override def with val var false true sealed abstract private trait ' +
'object null if for while throw finally protected extends import final return else ' +
'break new catch super class case package default try this match continue throws',
contains: [
{
className: 'javadoc',
@@ -29,13 +32,13 @@ hljs.LANGUAGES.scala = function() {
hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, STRING,
{
className: 'class',
begin: '((case )?class |object |trait )', end: '({|$)',
begin: '((case )?class |object |trait )', end: '({|$)', // beginWithKeyword won't work because a single "case" shouldn't start this mode
illegal: ':',
keywords: {'case' : 1, 'class': 1, 'trait': 1, 'object': 1},
keywords: 'case class trait object',
contains: [
{
begin: '(extends|with)',
keywords: {'extends': 1, 'with': 1},
beginWithKeyword: true,
keywords: 'extends with',
relevance: 10
},
{
@@ -57,4 +60,4 @@ hljs.LANGUAGES.scala = function() {
]
}
};
}();
}(hljs);

View File

@@ -3,7 +3,7 @@ Language: Smalltalk
Author: Vladimir Gubarkov <xonixx@gmail.com>
*/
hljs.LANGUAGES.smalltalk = function() {
hljs.LANGUAGES['smalltalk'] = function(hljs) {
var VAR_IDENT_RE = '[a-z][a-zA-Z0-9_]*';
var CHAR = {
className: 'char',
@@ -15,7 +15,7 @@ hljs.LANGUAGES.smalltalk = function() {
};
return {
defaultMode: {
keywords: {'self': 1, 'super': 1, 'nil': 1, 'true': 1, 'false': 1, 'thisContext': 1}, // only 6
keywords: 'self super nil true false thisContext', // only 6
contains: [
{
className: 'comment',
@@ -52,4 +52,4 @@ hljs.LANGUAGES.smalltalk = function() {
]
}
};
}();
}(hljs);

View File

@@ -2,89 +2,65 @@
Language: SQL
*/
hljs.LANGUAGES.sql = {
case_insensitive: true,
defaultMode: {
illegal: '[^\\s]',
contains: [
{
className: 'operator',
begin: '(begin|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma)\\b', end: ';|$',
keywords: {
'keyword': {
'all': 1, 'partial': 1, 'global': 1, 'month': 1,
'current_timestamp': 1, 'using': 1, 'go': 1, 'revoke': 1,
'smallint': 1, 'indicator': 1, 'end-exec': 1, 'disconnect': 1,
'zone': 1, 'with': 1, 'character': 1, 'assertion': 1, 'to': 1,
'add': 1, 'current_user': 1, 'usage': 1, 'input': 1, 'local': 1,
'alter': 1, 'match': 1, 'collate': 1, 'real': 1, 'then': 1,
'rollback': 1, 'get': 1, 'read': 1, 'timestamp': 1,
'session_user': 1, 'not': 1, 'integer': 1, 'bit': 1, 'unique': 1,
'day': 1, 'minute': 1, 'desc': 1, 'insert': 1, 'execute': 1,
'like': 1, 'ilike': 2, 'level': 1, 'decimal': 1, 'drop': 1,
'continue': 1, 'isolation': 1, 'found': 1, 'where': 1,
'constraints': 1, 'domain': 1, 'right': 1, 'national': 1, 'some': 1,
'module': 1, 'transaction': 1, 'relative': 1, 'second': 1,
'connect': 1, 'escape': 1, 'close': 1, 'system_user': 1, 'for': 1,
'deferred': 1, 'section': 1, 'cast': 1, 'current': 1, 'sqlstate': 1,
'allocate': 1, 'intersect': 1, 'deallocate': 1, 'numeric': 1,
'public': 1, 'preserve': 1, 'full': 1, 'goto': 1, 'initially': 1,
'asc': 1, 'no': 1, 'key': 1, 'output': 1, 'collation': 1, 'group': 1,
'by': 1, 'union': 1, 'session': 1, 'both': 1, 'last': 1,
'language': 1, 'constraint': 1, 'column': 1, 'of': 1, 'space': 1,
'foreign': 1, 'deferrable': 1, 'prior': 1, 'connection': 1,
'unknown': 1, 'action': 1, 'commit': 1, 'view': 1, 'or': 1,
'first': 1, 'into': 1, 'float': 1, 'year': 1, 'primary': 1,
'cascaded': 1, 'except': 1, 'restrict': 1, 'set': 1, 'references': 1,
'names': 1, 'table': 1, 'outer': 1, 'open': 1, 'select': 1,
'size': 1, 'are': 1, 'rows': 1, 'from': 1, 'prepare': 1,
'distinct': 1, 'leading': 1, 'create': 1, 'only': 1, 'next': 1,
'inner': 1, 'authorization': 1, 'schema': 1, 'corresponding': 1,
'option': 1, 'declare': 1, 'precision': 1, 'immediate': 1, 'else': 1,
'timezone_minute': 1, 'external': 1, 'varying': 1, 'translation': 1,
'true': 1, 'case': 1, 'exception': 1, 'join': 1, 'hour': 1,
'default': 1, 'double': 1, 'scroll': 1, 'value': 1, 'cursor': 1,
'descriptor': 1, 'values': 1, 'dec': 1, 'fetch': 1, 'procedure': 1,
'delete': 1, 'and': 1, 'false': 1, 'int': 1, 'is': 1, 'describe': 1,
'char': 1, 'as': 1, 'at': 1, 'in': 1, 'varchar': 1, 'null': 1,
'trailing': 1, 'any': 1, 'absolute': 1, 'current_time': 1, 'end': 1,
'grant': 1, 'privileges': 1, 'when': 1, 'cross': 1, 'check': 1,
'write': 1, 'current_date': 1, 'pad': 1, 'begin': 1, 'temporary': 1,
'exec': 1, 'time': 1, 'update': 1, 'catalog': 1, 'user': 1, 'sql': 1,
'date': 1, 'on': 1, 'identity': 1, 'timezone_hour': 1, 'natural': 1,
'whenever': 1, 'interval': 1, 'work': 1, 'order': 1, 'cascade': 1,
'diagnostics': 1, 'nchar': 1, 'having': 1, 'left': 1, 'call': 1,
'do': 1, 'handler': 1, 'load': 1, 'replace': 1, 'truncate': 1,
'start': 1, 'lock': 1, 'show': 1, 'pragma': 1},
'aggregate': {'count': 1, 'sum': 1, 'min': 1, 'max': 1, 'avg': 1}
hljs.LANGUAGES['sql'] = function(hljs) {
return {
case_insensitive: true,
defaultMode: {
illegal: '[^\\s]',
contains: [
{
className: 'operator',
begin: '(begin|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant)\\b', end: ';', endsWithParent: true,
keywords: {
keyword: 'all partial global month current_timestamp using go revoke smallint ' +
'indicator end-exec disconnect zone with character assertion to add current_user ' +
'usage input local alter match collate real then rollback get read timestamp ' +
'session_user not integer bit unique day minute desc insert execute like ilike|2 ' +
'level decimal drop continue isolation found where constraints domain right ' +
'national some module transaction relative second connect escape close system_user ' +
'for deferred section cast current sqlstate allocate intersect deallocate numeric ' +
'public preserve full goto initially asc no key output collation group by union ' +
'session both last language constraint column of space foreign deferrable prior ' +
'connection unknown action commit view or first into float year primary cascaded ' +
'except restrict set references names table outer open select size are rows from ' +
'prepare distinct leading create only next inner authorization schema ' +
'corresponding option declare precision immediate else timezone_minute external ' +
'varying translation true case exception join hour default double scroll value ' +
'cursor descriptor values dec fetch procedure delete and false int is describe ' +
'char as at in varchar null trailing any absolute current_time end grant ' +
'privileges when cross check write current_date pad begin temporary exec time ' +
'update catalog user sql date on identity timezone_hour natural whenever interval ' +
'work order cascade diagnostics nchar having left call do handler load replace ' +
'truncate start lock show pragma',
aggregate: 'count sum min max avg'
},
contains: [
{
className: 'string',
begin: '\'', end: '\'',
contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}],
relevance: 0
},
{
className: 'string',
begin: '"', end: '"',
contains: [hljs.BACKSLASH_ESCAPE, {begin: '""'}],
relevance: 0
},
{
className: 'string',
begin: '`', end: '`',
contains: [hljs.BACKSLASH_ESCAPE]
},
hljs.C_NUMBER_MODE
]
},
contains: [
{
className: 'string',
begin: '\'', end: '\'',
contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}],
relevance: 0
},
{
className: 'string',
begin: '"', end: '"',
contains: [hljs.BACKSLASH_ESCAPE, {begin: '""'}],
relevance: 0
},
{
className: 'string',
begin: '`', end: '`',
contains: [hljs.BACKSLASH_ESCAPE]
},
hljs.C_NUMBER_MODE,
{begin: '\\n'}
]
},
hljs.C_BLOCK_COMMENT_MODE,
{
className: 'comment',
begin: '--', end: '$'
}
]
}
};
hljs.C_BLOCK_COMMENT_MODE,
{
className: 'comment',
begin: '--', end: '$'
}
]
}
};
}(hljs);

View File

@@ -4,16 +4,14 @@ Author: Vladimir Moskva <vladmos@gmail.com>
Website: http://fulc.ru/
*/
hljs.LANGUAGES.tex = function() {
hljs.LANGUAGES['tex'] = function(hljs) {
var COMMAND1 = {
className: 'command',
begin: '\\\\[a-zA-Zа-яА-я]+[\\*]?',
relevance: 10
begin: '\\\\[a-zA-Zа-яА-я]+[\\*]?'
};
var COMMAND2 = {
className: 'command',
begin: '\\\\[^a-zA-Zа-яА-я0-9]',
relevance: 0
begin: '\\\\[^a-zA-Zа-яА-я0-9]'
};
var SPECIAL = {
className: 'special',
@@ -59,4 +57,4 @@ hljs.LANGUAGES.tex = function() {
]
}
};
}();
}(hljs);

View File

@@ -4,72 +4,66 @@ Author: Antono Vasiljev <antono.vasiljev@gmail.com>
Description: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.
*/
hljs.LANGUAGES.vala = {
defaultMode: {
keywords: {
keyword: {
// Value types
'char': 1, 'uchar': 1, 'unichar': 1,
'int': 1, 'uint': 1, 'long': 1, 'ulong': 1,
'short': 1, 'ushort': 1,
'int8': 1, 'int16': 1, 'int32': 1, 'int64': 1,
'uint8': 1, 'uint16': 1, 'uint32': 1, 'uint64': 1,
'float': 1, 'double': 1, 'bool': 1, 'struct': 1, 'enum': 1,
'string': 1, 'void': 1,
// Reference types
'weak': 5, 'unowned': 5, 'owned': 5,
// Modifiers
'async': 5, 'signal': 5, 'static': 1, 'abstract': 1, 'interface': 1, 'override': 1,
// Control Structures
'while': 1, 'do': 1, 'for': 1, 'foreach': 1, 'else': 1, 'switch': 1,
'case': 1, 'break': 1, 'default': 1, 'return': 1, 'try': 1, 'catch': 1,
// Visibility
'public': 1, 'private': 1, 'protected': 1, 'internal': 1,
// Other
'using': 1, 'new': 1, 'this': 1, 'get': 1, 'set': 1, 'const': 1,
'stdout': 1, 'stdin': 1, 'stderr': 1, 'var': 1,
// Builtins
'DBus': 2, 'GLib': 2, 'CCode': 10, 'Gee': 10, 'Object': 1
hljs.LANGUAGES['vala'] = function(hljs) {
return {
defaultMode: {
keywords: {
keyword:
// Value types
'char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 ' +
'uint16 uint32 uint64 float double bool struct enum string void ' +
// Reference types
'weak unowned owned ' +
// Modifiers
'async signal static abstract interface override ' +
// Control Structures
'while do for foreach else switch case break default return try catch ' +
// Visibility
'public private protected internal ' +
// Other
'using new this get set const stdout stdin stderr var',
built_in:
'DBus GLib CCode Gee Object',
literal:
'false true null'
},
literal: { 'false': 1, 'true': 1, 'null': 1 }
},
contains: [
{
className: 'class',
begin: '(class |interface |delegate |namespace )', end: '{',
keywords: {'class': 1, 'interface': 1},
contains: [
{
begin: '(implements|extends)', end: hljs.IMMEDIATE_RE,
keywords: {'extends': 1, 'implements': 1},
relevance: 1
},
{
className: 'title',
begin: hljs.UNDERSCORE_IDENT_RE, end: hljs.IMMEDIATE_RE
}
]
},
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
{
className: 'string',
begin: '"""', end: '"""',
relevance: 5
},
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
hljs.C_NUMBER_MODE,
{
className: 'preprocessor',
begin: '^#', end: '$',
relevance: 2
},
{
className: 'constant',
begin: ' [A-Z_]+ ', end: hljs.IMMEDIATE_RE,
relevance: 0
}
]
}
};
contains: [
{
className: 'class',
beginWithKeyword: true, end: '{',
keywords: 'class interface delegate namespace',
contains: [
{
beginWithKeyword: true,
keywords: 'extends implements'
},
{
className: 'title',
begin: hljs.UNDERSCORE_IDENT_RE
}
]
},
hljs.C_LINE_COMMENT_MODE,
hljs.C_BLOCK_COMMENT_MODE,
{
className: 'string',
begin: '"""', end: '"""',
relevance: 5
},
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
hljs.C_NUMBER_MODE,
{
className: 'preprocessor',
begin: '^#', end: '$',
relevance: 2
},
{
className: 'constant',
begin: ' [A-Z_]+ ',
relevance: 0
}
]
}
};
}(hljs);

View File

@@ -4,27 +4,45 @@ Author: Nikita Ledyaev <lenikita@yandex.ru>
Contributors: Michal Gabrukiewicz <mgabru@gmail.com>
*/
hljs.LANGUAGES.vbscript = {
case_insensitive: true,
defaultMode: {
keywords: {
'keyword': {'call' : 1,'class' : 1,'const' : 1,'dim' : 1,'do' : 1,'loop' : 1,'erase' : 1,'execute' : 1,'executeglobal' : 1,'exit' : 1,'for' : 1,'each' : 1,'next' : 1,'function' : 1,'if' : 1,'then' : 1,'else' : 1,'on' : 1, 'error' : 1,'option' : 1, 'explicit' : 1, 'new': 1, 'private' : 1,'property' : 1,'let' : 1,'get' : 1,'public' : 1,'randomize' : 1,'redim' : 1,'rem' : 1,'select' : 1,'case' : 1,'set' : 1,'stop' : 1,'sub' : 1,'while' : 1,'wend' : 1,'with' : 1, 'end' : 1, 'to' : 1, 'elseif': 1, 'is': 1, 'or': 1, 'xor': 1, 'and': 1, 'not': 1, 'class_initialize': 1, 'class_terminate': 1, 'default': 1, 'preserve': 1, 'in': 1, 'me': 1, 'byval': 1, 'byref': 1, 'step': 1, 'resume': 1, 'goto': 1},
'built_in': {'lcase': 1, 'month': 1, 'vartype': 1, 'instrrev': 1, 'ubound': 1, 'setlocale': 1, 'getobject': 1, 'rgb': 1, 'getref': 1, 'string': 1, 'weekdayname': 1, 'rnd': 1, 'dateadd': 1, 'monthname': 1, 'now': 1, 'day': 1, 'minute': 1, 'isarray': 1, 'cbool': 1, 'round': 1, 'formatcurrency': 1, 'conversions': 1, 'csng': 1, 'timevalue': 1, 'second': 1, 'year': 1, 'space': 1, 'abs': 1, 'clng': 1, 'timeserial': 1, 'fixs': 1, 'len': 1, 'asc': 1, 'isempty': 1, 'maths': 1, 'dateserial': 1, 'atn': 1, 'timer': 1, 'isobject': 1, 'filter': 1, 'weekday': 1, 'datevalue': 1, 'ccur': 1, 'isdate': 1, 'instr': 1, 'datediff': 1, 'formatdatetime': 1, 'replace': 1, 'isnull': 1, 'right': 1, 'sgn': 1, 'array': 1, 'snumeric': 1, 'log': 1, 'cdbl': 1, 'hex': 1, 'chr': 1, 'lbound': 1, 'msgbox': 1, 'ucase': 1, 'getlocale': 1, 'cos': 1, 'cdate': 1, 'cbyte': 1, 'rtrim': 1, 'join': 1, 'hour': 1, 'oct': 1, 'typename': 1, 'trim': 1, 'strcomp': 1, 'int': 1, 'createobject': 1, 'loadpicture': 1, 'tan': 1, 'formatnumber': 1, 'mid': 1, 'scriptenginebuildversion': 1, 'scriptengine': 1, 'split': 1, 'scriptengineminorversion': 1, 'cint': 1, 'sin': 1, 'datepart': 1, 'ltrim': 1, 'sqr': 1, 'scriptenginemajorversion': 1, 'time': 1, 'derived': 1, 'eval': 1, 'date': 1, 'formatpercent': 1, 'exp': 1, 'inputbox': 1, 'left': 1, 'ascw': 1, 'chrw': 1, 'regexp': 1, 'server': 1, 'response': 1, 'request': 1, 'cstr': 1, 'err': 1},
'literal': {'true': 1, 'false': 1, 'null': 1, 'nothing': 1, 'empty': 1}
},
contains: [
{ // can't use standard QUOTE_STRING_MODE since it's compiled with its own escape and doesn't use the local one
className: 'string',
begin: '"', end: '"',
illegal: '\\n',
contains: [{begin: '""'}],
relevance: 0
hljs.LANGUAGES['vbscript'] = function(hljs) {
return {
case_insensitive: true,
defaultMode: {
keywords: {
keyword:
'call class const dim do loop erase execute executeglobal exit for each next function ' +
'if then else on error option explicit new private property let get public randomize ' +
'redim rem select case set stop sub while wend with end to elseif is or xor and not ' +
'class_initialize class_terminate default preserve in me byval byref step resume goto',
built_in:
'lcase month vartype instrrev ubound setlocale getobject rgb getref string ' +
'weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency ' +
'conversions csng timevalue second year space abs clng timeserial fixs len asc ' +
'isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate ' +
'instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex ' +
'chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim ' +
'strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion ' +
'scriptengine split scriptengineminorversion cint sin datepart ltrim sqr ' +
'scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw ' +
'chrw regexp server response request cstr err',
literal:
'true false null nothing empty'
},
{
className: 'comment',
begin: '\'', end: '$'
},
hljs.C_NUMBER_MODE
]
}
};
illegal: '//',
contains: [
{ // cant use standard QUOTE_STRING_MODE since its compiled with its own escape and doesnt use the local one
className: 'string',
begin: '"', end: '"',
illegal: '\\n',
contains: [{begin: '""'}],
relevance: 0
},
{
className: 'comment',
begin: '\'', end: '$'
},
hljs.C_NUMBER_MODE
]
}
};
}(hljs);

View File

@@ -1,30 +1,51 @@
/*
Language: VHDL
Author: Igor Kalnitsky <igor@kalnitsky.org>
Contributors: Daniel C.K. Kho <daniel.kho@gmail.com>
Description: VHDL is a hardware description language used in electronic design automation to describe digital and mixed-signal systems.
Author: Igor Kalnitsky <igor.kalnitsky@gmail.com>
Website: http://kalnitsky.org.ua/
*/
hljs.LANGUAGES.vhdl = {
case_insensitive: true,
defaultMode: {
keywords: {
'keyword': { 'abs': 1, 'access': 1, 'after': 1, 'alias': 1, 'all': 1, 'and': 1, 'architecture': 2, 'array': 1, 'assert': 1, 'attribute': 1, 'begin': 1, 'block': 1, 'body': 1, 'buffer': 1, 'bus': 1, 'case': 1, 'component': 2, 'configuration': 1, 'constant': 1, 'disconnect': 2, 'downto': 2, 'else': 1, 'elsif': 1, 'end': 1, 'entity': 2, 'exit': 1, 'file': 1, 'for': 1, 'function': 1, 'generate': 2, 'generic': 2, 'group': 1, 'guarded': 2, 'if': 0, 'impure': 2, 'in': 1, 'inertial': 1, 'inout': 1, 'is': 1, 'label': 1, 'library': 1, 'linkage': 1, 'literal': 1, 'loop': 1, 'map': 1, 'mod': 1, 'nand': 1, 'new': 1, 'next': 1, 'nor': 1, 'not': 1, 'null': 1, 'of': 1, 'on': 1, 'open': 1, 'or': 1, 'others': 1, 'out': 1, 'package': 1, 'port': 2, 'postponed': 1, 'procedure': 1, 'process': 1, 'pure': 2, 'range': 1, 'record': 1, 'register': 1, 'reject': 1, 'return': 1, 'rol': 1, 'ror': 1, 'select': 1, 'severity': 1, 'signal': 1, 'shared': 1, 'sla': 1, 'sli': 1, 'sra': 1, 'srl': 1, 'subtype': 2, 'then': 1, 'to': 1, 'transport': 1, 'type': 1, 'units': 1, 'until': 1, 'use': 1, 'variable': 1, 'wait': 1, 'when': 1, 'while': 1, 'with': 1, 'xnor': 1, 'xor': 1},
'type': { 'boolean': 1, 'bit': 1, 'character': 1, 'severity_level': 2, 'integer': 1, 'time': 1, 'delay_length': 2, 'natural': 1, 'positive': 1, 'string': 1, 'bit_vector': 2, 'file_open_kind': 2, 'file_open_status': 2, 'std_ulogic': 2, 'std_ulogic_vector': 2, 'std_logic': 2, 'std_logic_vector': 2 }
},
contains: [
{
className: 'comment',
begin: '--', end: '$'
hljs.LANGUAGES['vhdl'] = function(hljs) {
return {
case_insensitive: true,
defaultMode: {
keywords: {
keyword:
'abs access after alias all and architecture array assert attribute begin block ' +
'body buffer bus case component configuration constant context cover disconnect ' +
'downto default else elsif end entity exit fairness file for force function generate ' +
'generic group guarded if impure in inertial inout is label library linkage literal ' +
'loop map mod nand new next nor not null of on open or others out package port ' +
'postponed procedure process property protected pure range record register reject ' +
'release rem report restrict restrict_guarantee return rol ror select sequence ' +
'severity shared signal sla sll sra srl strong subtype then to transport type ' +
'unaffected units until use variable vmode vprop vunit wait when while with xnor xor',
typename:
'boolean bit character severity_level integer time delay_length natural positive ' +
'string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector ' +
'std_logic std_logic_vector unsigned signed boolean_vector integer_vector ' +
'real_vector time_vector'
},
hljs.QUOTE_STRING_MODE,
hljs.C_NUMBER_MODE,
{
className: 'literal',
begin: '\'(U|X|0|1|Z|W|L|H|-)', end: '\'',
contains: [hljs.BACKSLASH_ESCAPE],
relevance: 5
}
]
}
};
illegal: '{',
contains: [
hljs.C_BLOCK_COMMENT_MODE, // VHDL-2008 block commenting.
{
className: 'comment',
begin: '--', end: '$'
},
hljs.QUOTE_STRING_MODE,
hljs.C_NUMBER_MODE,
{
className: 'literal',
begin: '\'(U|X|0|1|Z|W|L|H|-)\'',
contains: [hljs.BACKSLASH_ESCAPE]
},
{
className: 'attribute',
begin: '\'[A-Za-z](_?[A-Za-z0-9])*',
contains: [hljs.BACKSLASH_ESCAPE]
}
]
} // defaultMode
} // return;
}(hljs);

View File

@@ -2,7 +2,7 @@
Language: HTML, XML
*/
hljs.LANGUAGES.xml = function(){
hljs.LANGUAGES['xml'] = function(hljs) {
var XML_IDENT_RE = '[A-Za-z0-9\\._:-]+';
var TAG_INTERNALS = {
endsWithParent: true,
@@ -62,28 +62,32 @@ hljs.LANGUAGES.xml = function(){
},
{
className: 'tag',
begin: '<style', end: '>',
keywords: {'title': {'style': 1}},
/*
The lookahead pattern (?=...) ensures that 'begin' only matches
'<style' as a single word, followed by a whitespace or an
ending braket. The '$' is needed for the lexem to be recognized
by hljs.subMode() that tests lexems outside the stream.
*/
begin: '<style(?=\\s|>|$)', end: '>',
keywords: {title: 'style'},
contains: [TAG_INTERNALS],
starts: {
className: 'css',
end: '</style>', returnEnd: true,
subLanguage: 'css'
}
},
{
className: 'tag',
begin: '<script', end: '>',
keywords: {'title': {'script': 1}},
// See the comment in the <style tag about the lookahead pattern
begin: '<script(?=\\s|>|$)', end: '>',
keywords: {title: 'script'},
contains: [TAG_INTERNALS],
starts: {
className: 'javascript',
end: '</script>', returnEnd: true,
subLanguage: 'javascript'
}
},
{
className: 'vbscript',
begin: '<%', end: '%>',
subLanguage: 'vbscript'
},
@@ -100,4 +104,4 @@ hljs.LANGUAGES.xml = function(){
]
}
};
}();
}(hljs);