1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 00:38:05 +08:00
2023-06-28 21:55:06 +08:00

354 lines
20 KiB
JavaScript

Volcanos(chat.ONSYNTAX, {
makefile: {prefix: {"#": code.COMMENT}, suffix: {":": code.COMMENT}, keyword: {
"ifeq": code.KEYWORD, "ifneq": code.KEYWORD, "else": code.KEYWORD, "endif": code.KEYWORD,
},
},
man: {
prefix: {
"NAME": code.KEYWORD,
"SYNOPSIS": code.KEYWORD,
"DESCRIPTION": code.KEYWORD,
"AUTHOR": code.KEYWORD,
"COPYRIGHT": code.KEYWORD,
"LIBRARY": code.KEYWORD,
"STANDARDS": code.KEYWORD,
"SEE ALSO": code.KEYWORD,
"HISTORY": code.KEYWORD,
"BUGS": code.KEYWORD,
},
},
vim: {prefix: {"\"": "comment"}, keyword: {
"source": code.KEYWORD,
"finish": code.KEYWORD,
"set": code.KEYWORD,
"let": code.KEYWORD,
"end": code.KEYWORD,
"if": code.KEYWORD,
"else": code.KEYWORD,
"elseif": code.KEYWORD,
"endif": code.KEYWORD,
"for": code.KEYWORD,
"in": code.KEYWORD,
"continue": code.KEYWORD,
"break": code.KEYWORD,
"endfor": code.KEYWORD,
"try": code.KEYWORD,
"catch": code.KEYWORD,
"finally": code.KEYWORD,
"endtry": code.KEYWORD,
"call": code.KEYWORD,
"function": code.KEYWORD,
"return": code.KEYWORD,
"endfunction": code.KEYWORD,
"autocmd": code.KEYWORD,
"command": code.KEYWORD,
"execute": code.KEYWORD,
"nnoremap": code.KEYWORD,
"cnoremap": code.KEYWORD,
"inoremap": code.KEYWORD,
"colorscheme": code.KEYWORD,
"highlight": code.KEYWORD,
"syntax": code.KEYWORD,
"has": code.FUNCTION,
"type": code.FUNCTION,
"empty": code.FUNCTION,
"exists": code.FUNCTION,
"executable": code.FUNCTION,
},
}, vimrc: {link: "vim"},
c: {
prefix: {
"//": code.COMMENT,
"/*": code.COMMENT,
"*": code.COMMENT,
"*/": code.COMMENT,
"#": code.KEYWORD,
},
regexp: {
"^u_\\w $": code.DATATYPE,
"^\\w+_t$": code.DATATYPE,
"^\\w+_pt$": code.DATATYPE,
"^[-]*\\d+$": code.CONSTANT,
"^[A-Z0-9_]+$": code.CONSTANT,
},
keyword: {
"#include": code.KEYWORD, "#error": code.KEYWORD, "#line": code.KEYWORD,
"#define": code.KEYWORD, "#undef": code.KEYWORD, "#ifndef": code.KEYWORD, "#ifdef": code.KEYWORD,
"#if": code.KEYWORD, "#elif": code.KEYWORD, "#else": code.KEYWORD, "#endif": code.KEYWORD,
"if": code.KEYWORD, "else": code.KEYWORD,
"for": code.KEYWORD, "while": code.KEYWORD, "do": code.KEYWORD, "break": code.KEYWORD, "continue": code.KEYWORD,
"switch": code.KEYWORD, "case": code.KEYWORD, "default": code.KEYWORD,
"return": code.KEYWORD, "goto": code.KEYWORD,
"void": code.DATATYPE, "char": code.DATATYPE, "int": code.DATATYPE, "float": code.DATATYPE, "double": code.DATATYPE,
"unsigned": code.DATATYPE, "signed": code.DATATYPE, "short": code.DATATYPE, "long": code.DATATYPE,
"struct": code.DATATYPE, "union": code.DATATYPE, "enum": code.DATATYPE,
"auto": code.DATATYPE, "register": code.DATATYPE, "volatile": code.DATATYPE, "const": code.DATATYPE,
"static": code.DATATYPE, "extern": code.DATATYPE, "typedef": code.DATATYPE,
"sizeof": code.FUNCTION, "defined": code.FUNCTION,
},
}, h: {link: "c"},
sh: {prefix: {"#": code.COMMENT}, suffix: {" {": code.COMMENT}, split: {operator: "{[($.,:;&<|>=)]}"}, regexp: {"[A-Z0-9_]+": code.CONSTANT, "ish_[A-Za-z0-9_]+": code.FUNCTION},
func: function(can, push, text) { if (can.base.endWith(text, "() {")) { var ls = can.core.Split(text, "\t (){"); push(ls[0]) } },
keyword: {
"source": code.KEYWORD, "return": code.KEYWORD, "exit": code.KEYWORD,
"require": code.KEYWORD, "request": code.KEYWORD,
"local": code.KEYWORD, "export": code.KEYWORD,
"if": code.KEYWORD, "then": code.KEYWORD, "elif": code.KEYWORD, "else": code.KEYWORD, "fi": code.KEYWORD,
"for": code.KEYWORD, "while": code.KEYWORD, "do": code.KEYWORD, "done": code.KEYWORD, "continue": code.KEYWORD, "break": code.KEYWORD,
"case": code.KEYWORD, "in": code.KEYWORD, "esac": code.KEYWORD,
"true": code.CONSTANT, "false": code.CONSTANT,
"history": code.FUNCTION, "alias": code.FUNCTION, "complete": code.FUNCTION, "compgen": code.FUNCTION, "bind": code.FUNCTION,
"printf": code.FUNCTION, "echo": code.FUNCTION, "eval": code.FUNCTION, "test": code.FUNCTION, "trap": code.FUNCTION, "shift": code.FUNCTION,
"cd": code.FUNCTION, "ls": code.FUNCTION, "rm": code.FUNCTION, "chmod": code.FUNCTION, "mkdir": code.FUNCTION, "mktemp": code.FUNCTION,
"curl": code.FUNCTION, "wget": code.FUNCTION, "apk": code.FUNCTION, "yum": code.FUNCTION,
"cat": code.FUNCTION, "head": code.FUNCTION, "tail": code.FUNCTION,
"grep": code.FUNCTION, "cut": code.FUNCTION, "sed": code.FUNCTION, "tr": code.FUNCTION,
"xargs": code.FUNCTION, "sudo": code.FUNCTION, "du": code.FUNCTION, "df": code.FUNCTION,
"/dev/null": code.CONSTANT, "/dev/stdout": code.CONSTANT, "/dev/stderr": code.CONSTANT,
},
}, configure: {link: "sh"},
shy: {prefix: {"#": code.COMMENT}, regexp: {"[A-Z_0-9]+": code.CONSTANT}, keyword: {"source": code.KEYWORD,
"title": code.KEYWORD, "navmenu": code.KEYWORD, "premenu": code.KEYWORD, "chapter": code.KEYWORD, "section": code.KEYWORD, "endmenu": code.KEYWORD,
"refer": code.KEYWORD, "brief": code.KEYWORD, "spark": code.KEYWORD, "shell": code.KEYWORD, "parse": code.KEYWORD,
"order": code.KEYWORD, "table": code.KEYWORD, "chart": code.KEYWORD, "label": code.KEYWORD, "chain": code.KEYWORD, "sequence": code.KEYWORD,
"field": code.KEYWORD, "image": code.KEYWORD, "video": code.KEYWORD, "audio": code.KEYWORD,
"style": code.KEYWORD,
"package": code.KEYWORD, "import": code.KEYWORD, "const": code.KEYWORD, "type": code.KEYWORD, "var": code.KEYWORD,
"if": code.KEYWORD, "else": code.KEYWORD,
"for": code.KEYWORD, "range": code.KEYWORD, "break": code.KEYWORD, "continue": code.KEYWORD,
"switch": code.KEYWORD, "case": code.KEYWORD, "default": code.KEYWORD,
"func": code.KEYWORD, "defer": code.KEYWORD, "return": code.KEYWORD,
"init": code.FUNCTION, "main": code.FUNCTION, "list": code.FUNCTION, "info": code.FUNCTION,
"map": code.DATATYPE, "struct": code.DATATYPE, "interface": code.DATATYPE, "string": code.DATATYPE, "int": code.DATATYPE,
"true": code.CONSTANT, "false": code.CONSTANT,
"kit": code.PACKAGE, "ice": code.PACKAGE, "m": code.OBJECT, "arg": code.OBJECT,
"event": code.OBJECT, "can": code.OBJECT, "msg": code.OBJECT, "target": code.OBJECT,
},
func: function(can, push, text, indent, opts) { var ls = can.core.Split(text, "\t ")
opts.chapter = opts.chapter||0
if (ls[0] == "chapter") { opts.chapter++, opts.section = 0, push(opts.chapter+lex.SP+ls[1]) }
if (ls[0] == "section") { opts.section++, push(opts.chapter+nfs.PT+opts.section+lex.SP+ls[1]) }
},
},
py: {prefix: {"#!": code.COMMENT, "# ": code.COMMENT}, keyword: {"import": code.KEYWORD, "from": code.KEYWORD, "return": code.KEYWORD, "print": code.FUNCTION}},
proto: {prefix: {"// ": code.COMMENT}, regexp: {"[A-Z_0-9]+": code.CONSTANT}, keyword: {
"syntax": code.KEYWORD, "package": code.KEYWORD, "option": code.FUNCTION,
"service": code.KEYWORD, "rpc": code.KEYWORD, "returns": code.KEYWORD,
"message": code.KEYWORD, "repeated": code.FUNCTION, "string": code.DATATYPE, "int64": code.DATATYPE,
}},
go: {prefix: {"// ": code.COMMENT}, regexp: {"[A-Z_0-9]+": code.CONSTANT}, keyword: {
"package": code.KEYWORD, "import": code.KEYWORD, "const": code.KEYWORD, "type": code.KEYWORD, "struct": code.KEYWORD, "interface": code.KEYWORD, "func": code.KEYWORD, "var": code.KEYWORD,
"if": code.KEYWORD, "else": code.KEYWORD,
"for": code.KEYWORD, "range": code.KEYWORD, "break": code.KEYWORD, "continue": code.KEYWORD,
"switch": code.KEYWORD, "case": code.KEYWORD, "default": code.KEYWORD, "fallthrough": code.KEYWORD,
"go": code.KEYWORD, "select": code.KEYWORD, "defer": code.KEYWORD, "return": code.KEYWORD,
"iota": code.CONSTANT, "true": code.CONSTANT, "false": code.CONSTANT, "nil": code.CONSTANT,
"int": code.DATATYPE, "int8": code.DATATYPE, "int16": code.DATATYPE, "int32": code.DATATYPE, "int64": code.DATATYPE,
"uint": code.DATATYPE, "uint8": code.DATATYPE, "uint16": code.DATATYPE, "uint32": code.DATATYPE, "uint64": code.DATATYPE,
"float32": code.DATATYPE, "float64": code.DATATYPE, "complex64": code.DATATYPE, "complex128": code.DATATYPE,
"rune": code.DATATYPE, "string": code.DATATYPE, "byte": code.DATATYPE, "uintptr": code.DATATYPE,
"bool": code.DATATYPE, "error": code.DATATYPE, "chan": code.DATATYPE, "map": code.DATATYPE,
"init": code.FUNCTION, "main": code.FUNCTION, "print": code.FUNCTION, "println": code.FUNCTION, "panic": code.FUNCTION, "recover": code.FUNCTION,
"new": code.FUNCTION, "make": code.FUNCTION, "len": code.FUNCTION, "cap": code.FUNCTION, "copy": code.FUNCTION, "append": code.FUNCTION, "delete": code.FUNCTION, "close": code.FUNCTION,
"complex": code.FUNCTION, "real": code.FUNCTION, "imag": code.FUNCTION,
"If": code.KEYWORD, "For": code.KEYWORD, "Switch": code.KEYWORD,
"kit": code.PACKAGE, "ice": code.PACKAGE, "m": code.OBJECT, "msg": code.OBJECT,
"Any": code.DATATYPE, "List": code.DATATYPE, "Map": code.DATATYPE, "Maps": code.DATATYPE, "Message": code.DATATYPE,
},
func: function(can, push, text, indent, opts) { var ls = can.core.Split(text, "\t *", "({:})")
function isKey() { return opts.block == "cmds" && ls[1] == ":" && ls[2] == "{" } function isEnd() { return ls[0] == "}" }
function prefix(key, pre) { return key.toLowerCase() == key? "- ": ("+ "+(pre? pre+nfs.PT: "")) }
if (indent == 0) { switch (ls[0]) {
case "package": opts.package = ls[1]; break
case "func": if (ls[1] == "(") { push(prefix(ls[5])+ls[2]+nfs.PT+ls[5]); break }
case "const":
case "var": if (ls[1] == "(") { break }
case "type": push(prefix(ls[1], opts.package)+ls[1]); break
} opts.stack = [ls[0]] } else if (indent == 4 && opts.stack[0] == "func") {
if (text.indexOf("MergeCommands(") > -1) { opts.block = "cmds" } else if (text.indexOf("}") == 0) { opts.block = "" }
} else if (indent == 8) {
if (isKey()) { push(prefix(ls[0], opts.package)+ls[0]), opts.cmds = opts.package+nfs.PT+ls[0] }
} else if (indent == 12) {
if (isKey()) { push("+ "+opts.cmds+lex.SP+ls[0]) }
}
},
}, mod: {prefix: {"//": code.COMMENT}, keyword: {"go": code.KEYWORD, "module": code.KEYWORD, "require": code.KEYWORD, "replace": code.KEYWORD}}, sum: {},
js: {prefix: {"// ": code.COMMENT}, regexp: {"[A-Z_0-9]+": code.CONSTANT}, keyword: {
"import": code.KEYWORD, "from": code.KEYWORD,
"var": code.KEYWORD, "function": code.KEYWORD, "typeof": code.KEYWORD, "const": code.KEYWORD, "new": code.KEYWORD, "delete": code.KEYWORD,
"if": code.KEYWORD, "else": code.KEYWORD,
"for": code.KEYWORD, "in": code.KEYWORD, "while": code.KEYWORD, "break": code.KEYWORD, "continue": code.KEYWORD,
"switch": code.KEYWORD, "case": code.KEYWORD, "default": code.KEYWORD,
"return": code.KEYWORD, "try": code.KEYWORD, "catch": code.KEYWORD, "debugger": code.KEYWORD,
"import": code.KEYWORD, "from": code.KEYWORD, "export": code.KEYWORD, "default": code.KEYWORD,
"async": code.KEYWORD, "await": code.KEYWORD,
"class": code.KEYWORD, "static": code.KEYWORD,
"let": code.KEYWORD,
"true": code.CONSTANT, "false": code.CONSTANT, "null": code.CONSTANT, "undefined": code.CONSTANT,
"Array": code.DATATYPE, "JSON": code.DATATYPE, "Date": code.DATATYPE, "Math": code.DATATYPE, "XMLHttpRequest": code.DATATYPE, "WebSocket": code.DATATYPE,
"window": code.OBJECT, "console": code.OBJECT, "navigator": code.OBJECT,
"location": code.OBJECT, "history": code.OBJECT, "document": code.OBJECT,
"arguments": code.OBJECT, "callee": code.OBJECT, "this": code.OBJECT,
"setTimeout": code.FUNCTION, "alert": code.FUNCTION, "confirm": code.FUNCTION,
"parseInt": code.FUNCTION, "parseFloat": code.FUNCTION, "encodeURIComponent": code.FUNCTION, "decodeURIComponent": code.FUNCTION,
"hasOwnProperty": code.FUNCTION, "isArray": code.FUNCTION, "forEach": code.FUNCTION, "apply": code.FUNCTION, "call": code.FUNCTION,
"length": code.FUNCTION, "split": code.FUNCTION, "trim": code.FUNCTION, "toLowerCase": code.FUNCTION, "indexOf": code.FUNCTION, "lastIndexOf": code.FUNCTION,
"concat": code.FUNCTION, "reverse": code.FUNCTION, "slice": code.FUNCTION, "join": code.FUNCTION, "sort": code.FUNCTION, "push": code.FUNCTION, "pop": code.FUNCTION,
"stringify": code.FUNCTION, "parse": code.FUNCTION,
"kit": code.PACKAGE, "ice": code.PACKAGE,
"can": code.OBJECT, "msg": code.OBJECT, "cb": code.FUNCTION, "target": code.OBJECT, "event": code.OBJECT,
"Volcanos": code.FUNCTION, "shy": code.FUNCTION, "cbs": code.FUNCTION,
"res": code.OBJECT, "sub": code.OBJECT, "sup": code.OBJECT,
},
complete: function(event, can, msg, target, pre, key) {
var ls = can.core.Split(can.core.Split(pre, "\t {(:,)}").pop(), nfs.PT), list = {can: can, msg: msg, target: target, event: event, window: window}
can.core.ItemKeys(key == ""? list: can.core.Value(list, ls)||can.core.Value(window, ls)||window, function(k, v) {
msg.Push(mdb.NAME, k).Push(mdb.TEXT, (v+"").split(lex.NL)[0])
})
},
func: function(can, push, text, indent, opts) { var ls = can.core.Split(text, "\t (,", nfs.DF)
if (indent == 0 && can.base.beginWith(text, "Volcanos")) {
var _block = can.base.trimPrefix(ls[1], "chat.").toLowerCase()
if (_block != opts.block) { push("") } opts.block = _block
if (text.indexOf(chat._INIT) > -1) { push(opts.block+nfs.PT+chat._INIT) }
} else if (indent == 0 && can.base.beginWith(text, "var ")) {
opts.block = ls[1]
} else if (indent == 4 && ls[1] == nfs.DF) {
ls[0] && push(opts.block+nfs.PT+ls[0])
}
},
}, json: {split: {operator: "{[:,]}"}, keyword: {
"true": code.CONSTANT, "false": code.CONSTANT,
}},
css: {prefix: {"// ": code.COMMENT, "/* ": code.COMMENT}, split: {operator: "{[(.,:;&>=)]}"},
func: function(can, push, text) { text.indexOf("/* ") == 0 && push(can.base.trimPrefix(can.base.trimSuffix(text, " */"), "/* ")) },
regexp: {
"[-0-9]+deg": code.CONSTANT,
"[-0-9]+rem": code.CONSTANT,
"[-0-9]+px": code.CONSTANT,
"[-0-9]+%": code.CONSTANT,
"[-0-9]+": code.CONSTANT,
"#[^ ;]+": code.CONSTANT,
},
keyword: {
"body": code.KEYWORD, "fieldset": code.KEYWORD, "legend": code.KEYWORD, "form": code.KEYWORD, "input": code.KEYWORD, "select": code.KEYWORD, "textarea": code.KEYWORD,
"table": code.KEYWORD, "thead": code.KEYWORD, "tbody": code.KEYWORD, "tr": code.KEYWORD, "th": code.KEYWORD, "td": code.KEYWORD,
"h1": code.KEYWORD, "h2": code.KEYWORD, "h3": code.KEYWORD,
"a": code.KEYWORD,
"p": code.KEYWORD,
"ul": code.KEYWORD, "li": code.KEYWORD,
"label": code.KEYWORD, "span": code.KEYWORD, "img": code.KEYWORD, "svg": code.KEYWORD, "div": code.KEYWORD,
"video": code.KEYWORD,
"hover": code.DATATYPE, "focus": code.DATATYPE, "not": code.DATATYPE, "type": code.FUNCTION, "name": code.FUNCTION,
"padding": code.FUNCTION, "padding-left": code.FUNCTION, "padding-top": code.FUNCTION,
"border": code.FUNCTION, "border-left": code.FUNCTION, "border-top": code.FUNCTION, "border-right": code.FUNCTION, "border-bottom": code.FUNCTION,
"margin": code.FUNCTION, "margin-left": code.FUNCTION, "margin-top": code.FUNCTION, "margin-right": code.FUNCTION, "margin-bottom": code.FUNCTION,
"display": code.FUNCTION, "visibility": code.FUNCTION, "overflow": code.FUNCTION, "position": code.FUNCTION, "z-index": code.FUNCTION, "box-sizing": code.FUNCTION, "border-box": code.CONSTANT,
"height": code.FUNCTION, "width": code.FUNCTION, "min-width": code.FUNCTION, "max-width": code.FUNCTION, "max-height": code.FUNCTION,
"left": code.FUNCTION, "top": code.FUNCTION, "right": code.FUNCTION, "bottom": code.FUNCTION,
"border-radius": code.FUNCTION, "outline": code.FUNCTION, "box-shadow": code.FUNCTION,
"justify-content": code.FUNCTION,
"solid": code.CONSTANT, "unset": code.CONSTANT,
"block": code.CONSTANT, "none": code.CONSTANT, "hidden": code.CONSTANT, "visible": code.CONSTANT, "auto": code.CONSTANT, "relative": code.CONSTANT, "absolute": code.CONSTANT, "sticky": code.CONSTANT, "fixed": code.CONSTANT,
"float": code.FUNCTION, "clear": code.FUNCTION, "both": code.CONSTANT,
"transition": code.FUNCTION, "transform": code.FUNCTION, "translate": code.FUNCTION, "rotate": code.FUNCTION,
"padding-bottom": code.FUNCTION,
"background": code.FUNCTION,
"background-size": code.FUNCTION,
"background-position": code.FUNCTION,
"background-color": code.FUNCTION, "color": code.FUNCTION, "caret-color": code.FUNCTION,
"font-family": code.FUNCTION, "font-style": code.FUNCTION, "font-weight": code.FUNCTION, "font-size": code.FUNCTION,
"line-height": code.FUNCTION, "text-align": code.FUNCTION, "tab-size": code.FUNCTION, "white-space": code.FUNCTION,
"monospace": code.CONSTANT, "italic": code.CONSTANT, "bold": code.CONSTANT, "center": code.CONSTANT,
"cursor": code.FUNCTION, "pointer": code.CONSTANT,
"stroke-width": code.FUNCTION, "stroke": code.FUNCTION, "fill": code.FUNCTION,
"dark": code.CONSTANT, "light": code.CONSTANT, "transparent": code.CONSTANT,
"black": code.CONSTANT, "white": code.CONSTANT, "blue": code.CONSTANT, "red": code.CONSTANT, "yellow": code.CONSTANT,
"green": code.CONSTANT,
"purple": code.CONSTANT,
"silver": code.CONSTANT,
"gray": code.CONSTANT,
"navy": code.CONSTANT,
"teal": code.CONSTANT,
"gold": code.CONSTANT,
"orange": code.CONSTANT,
"lavender": code.CONSTANT,
"chocolate": code.CONSTANT,
"dimgray": code.CONSTANT,
"brown": code.CONSTANT,
"snow": code.CONSTANT,
"skyblue": code.CONSTANT,
"aliceblue": code.CONSTANT,
"cadetblue": code.CONSTANT,
"cornflowerblue": code.CONSTANT,
"royalblue": code.CONSTANT,
"steelblue": code.CONSTANT,
"darkblue": code.CONSTANT,
"darkcyan": code.CONSTANT,
"darkgray": code.CONSTANT,
"darkgreen": code.CONSTANT,
"lightblue": code.CONSTANT,
"lightgray": code.CONSTANT,
"lightgreen": code.CONSTANT,
"cyan": code.CONSTANT,
"magenta": code.CONSTANT,
"word-break": code.FUNCTION,
"vertical-align": code.FUNCTION,
"calc": code.FUNCTION,
"url": code.FUNCTION,
"contexts": code.CONSTANT,
},
},
html: {split: {operator: "<=/>"},
keyword: {
"DOCTYPE": code.KEYWORD, "html": code.KEYWORD, "head": code.KEYWORD, "body": code.KEYWORD,
"meta": code.KEYWORD, "title": code.KEYWORD, "link": code.KEYWORD, "script": code.KEYWORD,
"src": code.FUNCTION, "href": code.FUNCTION, "rel": code.FUNCTION, "style": code.FUNCTION, "width": code.FUNCTION, "height": code.FUNCTION,
"button": code.KEYWORD,
"fieldset": code.KEYWORD, "legend": code.KEYWORD, "form": code.KEYWORD,
"h1": code.KEYWORD, "h2": code.KEYWORD, "h3": code.KEYWORD,
"p": code.KEYWORD, "a": code.KEYWORD, "br": code.KEYWORD, "hr": code.KEYWORD,
"label": code.KEYWORD, "span": code.KEYWORD, "img": code.KEYWORD, "svg": code.KEYWORD, "div": code.KEYWORD,
"table": code.KEYWORD, "thead": code.KEYWORD, "tbody": code.KEYWORD, "tfoot": code.KEYWORD,
"tr": code.KEYWORD, "th": code.KEYWORD, "td": code.KEYWORD, "ul": code.KEYWORD, "ol": code.KEYWORD, "li": code.KEYWORD,
"colgroup": code.KEYWORD, "col": code.KEYWORD, "colspan": code.FUNCTION, "rowspan": code.FUNCTION,
"video": code.KEYWORD, "audio": code.KEYWORD, "iframe": code.KEYWORD,
"pre": code.KEYWORD, "code": code.KEYWORD, "sub": code.KEYWORD, "sup": code.KEYWORD, "em": code.KEYWORD, "strong": code.KEYWORD, "i": code.KEYWORD, "b": code.KEYWORD, "u": code.KEYWORD,
"dl": code.KEYWORD, "dt": code.KEYWORD, "dd": code.KEYWORD,
"var": code.KEYWORD, "kbd": code.KEYWORD, "samp": code.KEYWORD, "time": code.KEYWORD,
"blockquote": code.KEYWORD, "q": code.KEYWORD, "cite": code.KEYWORD, "abbr": code.KEYWORD, "address": code.KEYWORD,
"header": code.KEYWORD, "nav": code.KEYWORD, "main": code.KEYWORD, "aside": code.KEYWORD, "footer": code.KEYWORD, "article": code.KEYWORD, "section": code.KEYWORD,
"source": code.KEYWORD, "muted": code.FUNCTION, "autoplay": code.FUNCTION, "loop": code.FUNCTION, "controls": code.FUNCTION,
"rect": code.KEYWORD, "circle": code.KEYWORD, "fill": code.FUNCTION, "x": code.FUNCTION, "y": code.FUNCTION, "r": code.FUNCTION,
},
},
})