highlightjs-snbt
Version:
Minecraft SNBT (Stringified NamedBinary Tags) highlighting for highlight.js
57 lines (56 loc) • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;
const snbt_1 = require("./lib/snbt");
function default_1() {
const ATTRIBUTE = {
className: "attr",
begin: /("(?:\\"|[^"])*"|'(?:\\'|[^"])*'|[a-zA-Z_.0-9+\-]+)(?=\s*:)/,
relevance: 1.01,
};
const PUNCTUATION = {
match: /([{}()\[\],:;])/,
className: "punctuation",
relevance: 0,
};
const QUOTED_STRING = {
className: "string",
begin: /("(?:\\"|[^"])*"|'(?:\\'|[^"])*')/,
relevance: 0,
};
const UNQUOTED_STRING = {
className: "string",
begin: /([a-zA-Z_.0-9+\-]*)/,
relevance: 0,
};
const ARRAY_TYPE = {
className: "keyword",
begin: /(?<=\[\s*)([BIL])(?=\s*;)/,
relevance: 0,
};
const LITERALS = [
"true",
"false",
"bool",
"uuid",
];
const LITERALS_MODE = {
scope: "literal",
beginKeywords: LITERALS.join(" "),
};
return {
name: "snbt",
keywords: {
literal: LITERALS,
},
contains: [
ATTRIBUTE,
PUNCTUATION,
snbt_1.NUMERIC,
QUOTED_STRING,
LITERALS_MODE,
ARRAY_TYPE,
UNQUOTED_STRING,
],
};
}