mirror of https://github.com/mindoc-org/mindoc.git
132 lines
2.5 KiB
JavaScript
132 lines
2.5 KiB
JavaScript
|
/*
|
||
|
Language: Device Tree
|
||
|
Description: *.dts files used in the Linux kernel
|
||
|
Author: Martin Braun <martin.braun@ettus.com>, Moritz Fischer <moritz.fischer@ettus.com>
|
||
|
Category: config
|
||
|
*/
|
||
|
|
||
|
function(hljs) {
|
||
|
var STRINGS = {
|
||
|
className: 'string',
|
||
|
variants: [
|
||
|
hljs.inherit(hljs.QUOTE_STRING_MODE, { begin: '((u8?|U)|L)?"' }),
|
||
|
{
|
||
|
begin: '(u8?|U)?R"', end: '"',
|
||
|
contains: [hljs.BACKSLASH_ESCAPE]
|
||
|
},
|
||
|
{
|
||
|
begin: '\'\\\\?.', end: '\'',
|
||
|
illegal: '.'
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
|
||
|
var NUMBERS = {
|
||
|
className: 'number',
|
||
|
variants: [
|
||
|
{ begin: '\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)' },
|
||
|
{ begin: hljs.C_NUMBER_RE }
|
||
|
],
|
||
|
relevance: 0
|
||
|
};
|
||
|
|
||
|
var PREPROCESSOR = {
|
||
|
className: 'meta',
|
||
|
begin: '#', end: '$',
|
||
|
keywords: {'meta-keyword': 'if else elif endif define undef ifdef ifndef'},
|
||
|
contains: [
|
||
|
{
|
||
|
begin: /\\\n/, relevance: 0
|
||
|
},
|
||
|
{
|
||
|
beginKeywords: 'include', end: '$',
|
||
|
keywords: {'meta-keyword': 'include'},
|
||
|
contains: [
|
||
|
hljs.inherit(STRINGS, {className: 'meta-string'}),
|
||
|
{
|
||
|
className: 'meta-string',
|
||
|
begin: '<', end: '>',
|
||
|
illegal: '\\n'
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
STRINGS,
|
||
|
hljs.C_LINE_COMMENT_MODE,
|
||
|
hljs.C_BLOCK_COMMENT_MODE
|
||
|
]
|
||
|
};
|
||
|
|
||
|
var DTS_REFERENCE = {
|
||
|
className: 'variable',
|
||
|
begin: '\\&[a-z\\d_]*\\b'
|
||
|
};
|
||
|
|
||
|
var DTS_KEYWORD = {
|
||
|
className: 'meta-keyword',
|
||
|
begin: '/[a-z][a-z\\d-]*/'
|
||
|
};
|
||
|
|
||
|
var DTS_LABEL = {
|
||
|
className: 'symbol',
|
||
|
begin: '^\\s*[a-zA-Z_][a-zA-Z\\d_]*:'
|
||
|
};
|
||
|
|
||
|
var DTS_CELL_PROPERTY = {
|
||
|
className: 'params',
|
||
|
begin: '<',
|
||
|
end: '>',
|
||
|
contains: [
|
||
|
NUMBERS,
|
||
|
DTS_REFERENCE
|
||
|
]
|
||
|
};
|
||
|
|
||
|
var DTS_NODE = {
|
||
|
className: 'class',
|
||
|
begin: /[a-zA-Z_][a-zA-Z\d_@]*\s{/,
|
||
|
end: /[{;=]/,
|
||
|
returnBegin: true,
|
||
|
excludeEnd: true
|
||
|
};
|
||
|
|
||
|
var DTS_ROOT_NODE = {
|
||
|
className: 'class',
|
||
|
begin: '/\\s*{',
|
||
|
end: '};',
|
||
|
relevance: 10,
|
||
|
contains: [
|
||
|
DTS_REFERENCE,
|
||
|
DTS_KEYWORD,
|
||
|
DTS_LABEL,
|
||
|
DTS_NODE,
|
||
|
DTS_CELL_PROPERTY,
|
||
|
hljs.C_LINE_COMMENT_MODE,
|
||
|
hljs.C_BLOCK_COMMENT_MODE,
|
||
|
NUMBERS,
|
||
|
STRINGS
|
||
|
]
|
||
|
};
|
||
|
|
||
|
return {
|
||
|
keywords: "",
|
||
|
contains: [
|
||
|
DTS_ROOT_NODE,
|
||
|
DTS_REFERENCE,
|
||
|
DTS_KEYWORD,
|
||
|
DTS_LABEL,
|
||
|
DTS_NODE,
|
||
|
DTS_CELL_PROPERTY,
|
||
|
hljs.C_LINE_COMMENT_MODE,
|
||
|
hljs.C_BLOCK_COMMENT_MODE,
|
||
|
NUMBERS,
|
||
|
STRINGS,
|
||
|
PREPROCESSOR,
|
||
|
{
|
||
|
begin: hljs.IDENT_RE + '::',
|
||
|
keywords: ""
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
}
|
||
|
|