Файл: error-kitty/node_modules/highlight.js/lib/languages/elixir.js
Строк: 83
<?php
module.exports = function(hljs) {
var ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*(\!|\?)?';
var ELIXIR_METHOD_RE = '[a-zA-Z_]\w*[!?=]?|[-+~]\@|<<|>>|=~|===?|<=>|[<>]=?|\*\*|[-/+%^&*~`|]|\[\]=?';
var ELIXIR_KEYWORDS =
'and false then defined module in return redo retry end for true self when ' +
'next until do begin unless nil break not case cond alias while ensure or ' +
'include use alias fn quote';
var SUBST = {
className: 'subst',
begin: '#\{', end: '}',
lexemes: ELIXIR_IDENT_RE,
keywords: ELIXIR_KEYWORDS
};
var STRING = {
className: 'string',
contains: [hljs.BACKSLASH_ESCAPE, SUBST],
variants: [
{
begin: /'/, end: /'/
},
{
begin: /"/, end: /"/
}
]
};
var PARAMS = {
endsWithParent: true, returnEnd: true,
lexemes: ELIXIR_IDENT_RE,
keywords: ELIXIR_KEYWORDS,
relevance: 0
};
var FUNCTION = {
className: 'function',
beginKeywords: 'def defmacro', end: /bdob/,
contains: [
hljs.inherit(hljs.TITLE_MODE, {
begin: ELIXIR_METHOD_RE,
starts: PARAMS
})
]
};
var CLASS = hljs.inherit(FUNCTION, {
className: 'class',
beginKeywords: 'defmodule defrecord', end: /bdob|$|;/
})
var ELIXIR_DEFAULT_CONTAINS = [
STRING,
hljs.HASH_COMMENT_MODE,
CLASS,
FUNCTION,
{
className: 'constant',
begin: '(\b[A-Z_]\w*(.)?)+',
relevance: 0
},
{
className: 'symbol',
begin: ':',
contains: [STRING, {begin: ELIXIR_METHOD_RE}],
relevance: 0
},
{
className: 'symbol',
begin: ELIXIR_IDENT_RE + ':',
relevance: 0
},
{
className: 'number',
begin: '(\b0[0-7_]+)|(\b0x[0-9a-fA-F_]+)|(\b[1-9][0-9_]*(\.[0-9_]+)?)|[0_]\b',
relevance: 0
},
{
className: 'variable',
begin: '(\$\W)|((\$|\@\@?)(\w+))'
},
{
begin: '->'
},
{ // regexp container
begin: '(' + hljs.RE_STARTERS_RE + ')\s*',
contains: [
hljs.HASH_COMMENT_MODE,
{
className: 'regexp',
illegal: '\n',
contains: [hljs.BACKSLASH_ESCAPE, SUBST],
variants: [
{
begin: '/', end: '/[a-z]*'
},
{
begin: '%r\[', end: '\][a-z]*'
}
]
}
],
relevance: 0
}
];
SUBST.contains = ELIXIR_DEFAULT_CONTAINS;
PARAMS.contains = ELIXIR_DEFAULT_CONTAINS;
return {
lexemes: ELIXIR_IDENT_RE,
keywords: ELIXIR_KEYWORDS,
contains: ELIXIR_DEFAULT_CONTAINS
};
};
?>