Page MenuHomeSoftware Heritage

capnproto.js
No OneTemporary

capnproto.js

/*
Language: Cap’n Proto
Author: Oleg Efimov <efimovov@gmail.com>
Description: Cap’n Proto message definition format
Website: https://capnproto.org/capnp-tool.html
Category: protocols
*/
/** @type LanguageFn */
function capnproto(hljs) {
const KEYWORDS = [
"struct",
"enum",
"interface",
"union",
"group",
"import",
"using",
"const",
"annotation",
"extends",
"in",
"of",
"on",
"as",
"with",
"from",
"fixed"
];
const BUILT_INS = [
"Void",
"Bool",
"Int8",
"Int16",
"Int32",
"Int64",
"UInt8",
"UInt16",
"UInt32",
"UInt64",
"Float32",
"Float64",
"Text",
"Data",
"AnyPointer",
"AnyStruct",
"Capability",
"List"
];
const LITERALS = [
"true",
"false"
];
return {
name: 'Cap’n Proto',
aliases: ['capnp'],
keywords: {
keyword: KEYWORDS,
built_in: BUILT_INS,
literal: LITERALS
},
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',
beginKeywords: 'struct enum',
end: /\{/,
illegal: /\n/,
contains: [hljs.inherit(hljs.TITLE_MODE, {
starts: {
endsWithParent: true,
excludeEnd: true
} // hack: eating everything after the first title
})]
},
{
className: 'class',
beginKeywords: 'interface',
end: /\{/,
illegal: /\n/,
contains: [hljs.inherit(hljs.TITLE_MODE, {
starts: {
endsWithParent: true,
excludeEnd: true
} // hack: eating everything after the first title
})]
}
]
};
}
module.exports = capnproto;

File Metadata

Mime Type
text/plain
Expires
Fri, Jul 4, 1:05 PM (1 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3393300

Event Timeline