management/front/dkha-web-sz-main/node_modules/highlight.js/lib/languages/capnproto.js

65 lines
1.6 KiB
JavaScript
Raw Normal View History

2024-01-16 21:26:16 +08:00
/*
Language: Capn Proto
Author: Oleg Efimov <efimovov@gmail.com>
Description: Capn Proto message definition format
Website: https://capnproto.org/capnp-tool.html
Category: protocols
*/
/** @type LanguageFn */
function capnproto(hljs) {
2023-12-18 13:12:25 +08:00
return {
2024-01-16 21:26:16 +08:00
name: 'Capn Proto',
2023-12-18 13:12:25 +08:00
aliases: ['capnp'],
keywords: {
keyword:
'struct enum interface union group import using const annotation extends in of on as with from fixed',
built_in:
'Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 ' +
'Text Data AnyPointer AnyStruct Capability List',
literal:
'true false'
},
contains: [
hljs.QUOTE_STRING_MODE,
hljs.NUMBER_MODE,
hljs.HASH_COMMENT_MODE,
{
className: 'meta',
begin: /@0x[\w\d]{16};/,
illegal: /\n/
},
{
className: 'symbol',
begin: /@\d+\b/
},
{
className: 'class',
2024-01-16 21:26:16 +08:00
beginKeywords: 'struct enum',
end: /\{/,
2023-12-18 13:12:25 +08:00
illegal: /\n/,
2024-01-16 21:26:16 +08:00
contains: [hljs.inherit(hljs.TITLE_MODE, {
starts: {
endsWithParent: true,
excludeEnd: true
} // hack: eating everything after the first title
})]
2023-12-18 13:12:25 +08:00
},
{
className: 'class',
2024-01-16 21:26:16 +08:00
beginKeywords: 'interface',
end: /\{/,
2023-12-18 13:12:25 +08:00
illegal: /\n/,
2024-01-16 21:26:16 +08:00
contains: [hljs.inherit(hljs.TITLE_MODE, {
starts: {
endsWithParent: true,
excludeEnd: true
} // hack: eating everything after the first title
})]
2023-12-18 13:12:25 +08:00
}
]
};
2024-01-16 21:26:16 +08:00
}
module.exports = capnproto;