Vendored from upstream, pinned by commit (see debian/extra/README.source): - gitstatus, gitopen, fontconfig, open_ext, select_colorscheme, smoothcaret, nerdicons (font mapping patched to DATADIR, Ships the Symbols Nerd Font Mono TTF, SIL OFL 1.1) - lite-xl-lsp (complete LSP client; idle until a language server is configured) plus the lite-xl-widgets library it requires - 104 language syntax plugins (none duplicate the nine bundled in core) settings GUI left out upstream is broken: it requires a libraries.widget.fonts widget that does not exist in lite-xl-widgets at any revision. Co-developed-with: ZCode (Z.ai)
539 lines
14 KiB
Lua
539 lines
14 KiB
Lua
-- mod-version:3
|
|
-- Support for RISC-V assembly
|
|
-- Note: kinda conflicts with x86 asm, must uninstall it or use force-syntax plugin
|
|
-- https://github.com/cheyao
|
|
local syntax = require "core.syntax"
|
|
|
|
syntax.add {
|
|
name = "RISC-V Assembly",
|
|
files = { "%.asm$", "%.[sS]$" },
|
|
comment = "#",
|
|
patterns = {
|
|
{ pattern = "#.*\n", type = "comment" },
|
|
{ pattern = { '"', '"', '\\' }, type = "string" },
|
|
{ pattern = { "'", "'", '\\' }, type = "string" },
|
|
{ pattern = "0[bB][0-1]+%W", type = "number" },
|
|
{ pattern = "0[xX]%x+", type = "number" },
|
|
{ pattern = "%%+[%a_][%w_]*", type = "function" },
|
|
{ pattern = "[%a%._][%w%._]*:%W", type = "function" },
|
|
{ pattern = "[^%p%a]%-?%d[%d%.]*", type = "number" },
|
|
{ pattern = "[%+%-=/%*%^%%<>!~|&%$]", type = "operator" },
|
|
{ pattern = "[%a_][%w_]*", type = "symbol" },
|
|
{ pattern = "%.%a+", type = "normal" }
|
|
},
|
|
symbols = {
|
|
-- Integer Registers
|
|
["x0"] = "literal",
|
|
["x1"] = "literal",
|
|
["x2"] = "literal",
|
|
["x3"] = "literal",
|
|
["x4"] = "literal",
|
|
["x5"] = "literal",
|
|
["x6"] = "literal",
|
|
["x7"] = "literal",
|
|
["x8"] = "literal",
|
|
["x9"] = "literal",
|
|
["x10"] = "literal",
|
|
["x11"] = "literal",
|
|
["x12"] = "literal",
|
|
["x13"] = "literal",
|
|
["x14"] = "literal",
|
|
["x15"] = "literal",
|
|
["x16"] = "literal",
|
|
["x17"] = "literal",
|
|
["x18"] = "literal",
|
|
["x19"] = "literal",
|
|
["x20"] = "literal",
|
|
["x21"] = "literal",
|
|
["x22"] = "literal",
|
|
["x23"] = "literal",
|
|
["x24"] = "literal",
|
|
["x25"] = "literal",
|
|
["x26"] = "literal",
|
|
["x27"] = "literal",
|
|
["x28"] = "literal",
|
|
["x29"] = "literal",
|
|
["x30"] = "literal",
|
|
["x31"] = "literal",
|
|
["zero"] = "literal",
|
|
["ra"] = "literal",
|
|
["sp"] = "literal",
|
|
["gp"] = "literal",
|
|
["tp"] = "literal",
|
|
["t0"] = "literal",
|
|
["t1"] = "literal",
|
|
["t2"] = "literal",
|
|
["fp"] = "literal",
|
|
["s0"] = "literal",
|
|
["s1"] = "literal",
|
|
["a0"] = "literal",
|
|
["a1"] = "literal",
|
|
["a2"] = "literal",
|
|
["a3"] = "literal",
|
|
["a4"] = "literal",
|
|
["a5"] = "literal",
|
|
["a6"] = "literal",
|
|
["a7"] = "literal",
|
|
["s2"] = "literal",
|
|
["s3"] = "literal",
|
|
["s4"] = "literal",
|
|
["s5"] = "literal",
|
|
["s6"] = "literal",
|
|
["s7"] = "literal",
|
|
["s8"] = "literal",
|
|
["s9"] = "literal",
|
|
["s10"] = "literal",
|
|
["s11"] = "literal",
|
|
["t3"] = "literal",
|
|
["t4"] = "literal",
|
|
["t5"] = "literal",
|
|
["t6"] = "literal",
|
|
["pc"] = "literal",
|
|
-- Floating-point Registers
|
|
["f0"] = "literal",
|
|
["f1"] = "literal",
|
|
["f2"] = "literal",
|
|
["f3"] = "literal",
|
|
["f4"] = "literal",
|
|
["f5"] = "literal",
|
|
["f6"] = "literal",
|
|
["f7"] = "literal",
|
|
["f8"] = "literal",
|
|
["f9"] = "literal",
|
|
["f10"] = "literal",
|
|
["f11"] = "literal",
|
|
["f12"] = "literal",
|
|
["f13"] = "literal",
|
|
["f14"] = "literal",
|
|
["f15"] = "literal",
|
|
["f16"] = "literal",
|
|
["f17"] = "literal",
|
|
["f18"] = "literal",
|
|
["f19"] = "literal",
|
|
["f20"] = "literal",
|
|
["f21"] = "literal",
|
|
["f22"] = "literal",
|
|
["f23"] = "literal",
|
|
["f24"] = "literal",
|
|
["f25"] = "literal",
|
|
["f26"] = "literal",
|
|
["f27"] = "literal",
|
|
["f28"] = "literal",
|
|
["f29"] = "literal",
|
|
["f30"] = "literal",
|
|
["f31"] = "literal",
|
|
|
|
["ft0"] = "literal",
|
|
["ft1"] = "literal",
|
|
["ft2"] = "literal",
|
|
["ft3"] = "literal",
|
|
["ft4"] = "literal",
|
|
["ft5"] = "literal",
|
|
["ft6"] = "literal",
|
|
["ft7"] = "literal",
|
|
|
|
["fs0"] = "literal",
|
|
["fs1"] = "literal",
|
|
|
|
["fa0"] = "literal",
|
|
["fa1"] = "literal",
|
|
["fa2"] = "literal",
|
|
["fa3"] = "literal",
|
|
["fa4"] = "literal",
|
|
["fa5"] = "literal",
|
|
["fa6"] = "literal",
|
|
["fa7"] = "literal",
|
|
|
|
["fa2"] = "literal",
|
|
["fa3"] = "literal",
|
|
["fa4"] = "literal",
|
|
["fa5"] = "literal",
|
|
["fa6"] = "literal",
|
|
["fa7"] = "literal",
|
|
["fa8"] = "literal",
|
|
["fa9"] = "literal",
|
|
["fa10"] = "literal",
|
|
["fa11"] = "literal",
|
|
|
|
["ft8"] = "literal",
|
|
["ft9"] = "literal",
|
|
["ft10"] = "literal",
|
|
["ft11"] = "literal",
|
|
|
|
-- Vector Registers
|
|
["v0"] = "literal",
|
|
["v1"] = "literal",
|
|
["v2"] = "literal",
|
|
["v3"] = "literal",
|
|
["v4"] = "literal",
|
|
["v5"] = "literal",
|
|
["v6"] = "literal",
|
|
["v7"] = "literal",
|
|
["v8"] = "literal",
|
|
["v9"] = "literal",
|
|
["v10"] = "literal",
|
|
["v11"] = "literal",
|
|
["v12"] = "literal",
|
|
["v13"] = "literal",
|
|
["v14"] = "literal",
|
|
["v15"] = "literal",
|
|
["v16"] = "literal",
|
|
["v17"] = "literal",
|
|
["v18"] = "literal",
|
|
["v19"] = "literal",
|
|
["v20"] = "literal",
|
|
["v21"] = "literal",
|
|
["v22"] = "literal",
|
|
["v23"] = "literal",
|
|
["v24"] = "literal",
|
|
["v25"] = "literal",
|
|
["v26"] = "literal",
|
|
["v27"] = "literal",
|
|
["v28"] = "literal",
|
|
["v29"] = "literal",
|
|
["v30"] = "literal",
|
|
["v31"] = "literal",
|
|
|
|
["vl"] = "literal",
|
|
["vtype"] = "literal",
|
|
["vzrm"] = "literal",
|
|
["vxsat"] = "literal",
|
|
|
|
-- RV32I instructions
|
|
["lui"] = "keyword",
|
|
["auipc"] = "keyword",
|
|
["jal"] = "keyword",
|
|
["jalr"] = "keyword",
|
|
["beq"] = "keyword",
|
|
["bne"] = "keyword",
|
|
["blt"] = "keyword",
|
|
["bge"] = "keyword",
|
|
["bltu"] = "keyword",
|
|
["bgeu"] = "keyword",
|
|
["lb"] = "keyword",
|
|
["lh"] = "keyword",
|
|
["lw"] = "keyword",
|
|
["lbu"] = "keyword",
|
|
["lhu"] = "keyword",
|
|
["sb"] = "keyword",
|
|
["sh"] = "keyword",
|
|
["sw"] = "keyword",
|
|
["addi"] = "keyword",
|
|
["slti"] = "keyword",
|
|
["sltiu"] = "keyword",
|
|
["xori"] = "keyword",
|
|
["ori"] = "keyword",
|
|
["andi"] = "keyword",
|
|
["slli"] = "keyword",
|
|
["srli"] = "keyword",
|
|
["srai"] = "keyword",
|
|
["add"] = "keyword",
|
|
["sub"] = "keyword",
|
|
["sll"] = "keyword",
|
|
["slt"] = "keyword",
|
|
["sltu"] = "keyword",
|
|
["xor"] = "keyword",
|
|
["srl"] = "keyword",
|
|
["sra"] = "keyword",
|
|
["or"] = "keyword",
|
|
["and"] = "keyword",
|
|
["fence"] = "keyword",
|
|
["fence.tso"] = "keyword",
|
|
["pause"] = "keyword",
|
|
["ecall"] = "keyword",
|
|
["ebreak"] = "keyword",
|
|
|
|
-- RV64I instructions
|
|
["lwu"] = "keyword",
|
|
["ld"] = "keyword",
|
|
["sd"] = "keyword",
|
|
["slli"] = "keyword",
|
|
["srli"] = "keyword",
|
|
["srai"] = "keyword",
|
|
["addiw"] = "keyword",
|
|
["slliw"] = "keyword",
|
|
["srliw"] = "keyword",
|
|
["sraiw"] = "keyword",
|
|
["addw"] = "keyword",
|
|
["subw"] = "keyword",
|
|
["sllw"] = "keyword",
|
|
["srlw"] = "keyword",
|
|
["sraw"] = "keyword",
|
|
|
|
-- Zifencei instructions
|
|
["fence.i"] = "keyword",
|
|
|
|
-- Zicsr instructions
|
|
["csrrw"] = "keyword",
|
|
["csrrs"] = "keyword",
|
|
["csrrc"] = "keyword",
|
|
["csrrwi"] = "keyword",
|
|
["csrrsi"] = "keyword",
|
|
["csrrci"] = "keyword",
|
|
|
|
-- RV32M instructions
|
|
["mul"] = "keyword",
|
|
["mulh"] = "keyword",
|
|
["mulhsu"] = "keyword",
|
|
["mulhu"] = "keyword",
|
|
["div"] = "keyword",
|
|
["divu"] = "keyword",
|
|
["rem"] = "keyword",
|
|
["remu"] = "keyword",
|
|
|
|
-- RV64M instructions
|
|
["mulw"] = "keyword",
|
|
["divw"] = "keyword",
|
|
["divuw"] = "keyword",
|
|
["remw"] = "keyword",
|
|
["remuw"] = "keyword",
|
|
|
|
-- RV32A instructions
|
|
["lr.w"] = "keyword",
|
|
["sc.w"] = "keyword",
|
|
["amoswap.w"] = "keyword",
|
|
["amoadd.w"] = "keyword",
|
|
["amoxor.w"] = "keyword",
|
|
["amoand.w"] = "keyword",
|
|
["amoor.w"] = "keyword",
|
|
["amomin.w"] = "keyword",
|
|
["amomax.w"] = "keyword",
|
|
["amominu.w"] = "keyword",
|
|
["amomaxu.w"] = "keyword",
|
|
|
|
-- RV64A instructions
|
|
["lr.d"] = "keyword",
|
|
["sc.d"] = "keyword",
|
|
["amoswap.d"] = "keyword",
|
|
["amoadd.d"] = "keyword",
|
|
["amoxor.d"] = "keyword",
|
|
["amoand.d"] = "keyword",
|
|
["amoor.d"] = "keyword",
|
|
["amomin.d"] = "keyword",
|
|
["amomax.d"] = "keyword",
|
|
["amominu.d"] = "keyword",
|
|
["amomaxu.d"] = "keyword",
|
|
|
|
-- RV32F instructions
|
|
["flw"] = "keyword",
|
|
["fsw"] = "keyword",
|
|
["fmadd.s"] = "keyword",
|
|
["fmsub.s"] = "keyword",
|
|
["fnmsub.s"] = "keyword",
|
|
["fnmadd.s"] = "keyword",
|
|
["fadd.s"] = "keyword",
|
|
["fsub.s"] = "keyword",
|
|
["fmul.s"] = "keyword",
|
|
["fdiv.s"] = "keyword",
|
|
["fsqrt.s"] = "keyword",
|
|
["fsgnj.s"] = "keyword",
|
|
["fsgnjn.s"] = "keyword",
|
|
["fsgnjx.s"] = "keyword",
|
|
["fmin.s"] = "keyword",
|
|
["fmax.s"] = "keyword",
|
|
["fcvt.w.s"] = "keyword",
|
|
["fcvt.wu.s"] = "keyword",
|
|
["fmv.x.w"] = "keyword",
|
|
["feq.s"] = "keyword",
|
|
["flt.s"] = "keyword",
|
|
["fle.s"] = "keyword",
|
|
["fclass.s"] = "keyword",
|
|
["fcvt.s.w"] = "keyword",
|
|
["fcvt.s.wu"] = "keyword",
|
|
["fmv.w.x"] = "keyword",
|
|
|
|
-- RV64F instructions
|
|
["fcvt.l.s"] = "keyword",
|
|
["fcvt.lu.s"] = "keyword",
|
|
["fcvt.s.l"] = "keyword",
|
|
["fcvt.s.lu"] = "keyword",
|
|
|
|
-- RV32D instructions
|
|
["fld"] = "keyword",
|
|
["fsd"] = "keyword",
|
|
["fmadd.d"] = "keyword",
|
|
["fmsub.d"] = "keyword",
|
|
["fnmsub.d"] = "keyword",
|
|
["fnmadd.d"] = "keyword",
|
|
["fadd.d"] = "keyword",
|
|
["fsub.d"] = "keyword",
|
|
["fmul.d"] = "keyword",
|
|
["fdiv.d"] = "keyword",
|
|
["fsqrt.d"] = "keyword",
|
|
["fsgnj.d"] = "keyword",
|
|
["fsgnjn.d"] = "keyword",
|
|
["fsgnjx.d"] = "keyword",
|
|
["fmin.d"] = "keyword",
|
|
["fmax.d"] = "keyword",
|
|
["fcvt.s.d"] = "keyword",
|
|
["fcvt.d.s"] = "keyword",
|
|
["feq.d"] = "keyword",
|
|
["flt.d"] = "keyword",
|
|
["fle.d"] = "keyword",
|
|
["fclass.d"] = "keyword",
|
|
["fcvt.w.d"] = "keyword",
|
|
["fcvt.wu.d"] = "keyword",
|
|
["fcvt.d.w"] = "keyword",
|
|
["fcvt.d.wu"] = "keyword",
|
|
|
|
-- RV64D instructions
|
|
["fcvt.l.d"] = "keyword",
|
|
["fcvt.lu.d"] = "keyword",
|
|
["fmv.x.d"] = "keyword",
|
|
["fcvt.d.l"] = "keyword",
|
|
["fcvt.d.lu"] = "keyword",
|
|
["fmv.d.x"] = "keyword",
|
|
|
|
-- RV32Q instructions
|
|
["flq"] = "keyword",
|
|
["fsq"] = "keyword",
|
|
["fmadd.q"] = "keyword",
|
|
["fmsub.q"] = "keyword",
|
|
["fnmsub.q"] = "keyword",
|
|
["fnmadd.q"] = "keyword",
|
|
["fadd.q"] = "keyword",
|
|
["fsub.q"] = "keyword",
|
|
["fmul.q"] = "keyword",
|
|
["fdiv.q"] = "keyword",
|
|
["fsqrt.q"] = "keyword",
|
|
["fsgnj.q"] = "keyword",
|
|
["fsgnjn.q"] = "keyword",
|
|
["fsgnjx.q"] = "keyword",
|
|
["fmin.q"] = "keyword",
|
|
["fmax.q"] = "keyword",
|
|
["fcvt.s.q"] = "keyword",
|
|
["fcvt.q.s"] = "keyword",
|
|
["fcvt.d.q"] = "keyword",
|
|
["fcvt.q.d"] = "keyword",
|
|
["feq.q"] = "keyword",
|
|
["flt.q"] = "keyword",
|
|
["fle.q"] = "keyword",
|
|
["fclass.q"] = "keyword",
|
|
["fcvt.w.q"] = "keyword",
|
|
["fcvt.wu.q"] = "keyword",
|
|
["fcvt.q.w"] = "keyword",
|
|
["fcvt.q.wu"] = "keyword",
|
|
|
|
-- RV64Q instructions
|
|
["fcvt.l.q"] = "keyword",
|
|
["fcvt.lu.q"] = "keyword",
|
|
["fcvt.q.l"] = "keyword",
|
|
["fcvt.q.lu"] = "keyword",
|
|
|
|
-- RV32Zfh instructions
|
|
["flh"] = "keyword",
|
|
["fsh"] = "keyword",
|
|
["fmadd.h"] = "keyword",
|
|
["fmsub.h"] = "keyword",
|
|
["fnmsub.h"] = "keyword",
|
|
["fnmadd.h"] = "keyword",
|
|
["fadd.h"] = "keyword",
|
|
["fsub.h"] = "keyword",
|
|
["fmul.h"] = "keyword",
|
|
["fdiv.h"] = "keyword",
|
|
["fsqrt.h"] = "keyword",
|
|
["fsgnj.h"] = "keyword",
|
|
["fsgnjn.h"] = "keyword",
|
|
["fsgnjx.h"] = "keyword",
|
|
["fmin.h"] = "keyword",
|
|
["fmax.h"] = "keyword",
|
|
["fcvt.s.h"] = "keyword",
|
|
["fcvt.h.s"] = "keyword",
|
|
["fcvt.d.h"] = "keyword",
|
|
["fcvt.h.d"] = "keyword",
|
|
["fcvt.q.h"] = "keyword",
|
|
["fcvt.h.q"] = "keyword",
|
|
["feq.h"] = "keyword",
|
|
["flt.h"] = "keyword",
|
|
["fle.h"] = "keyword",
|
|
["fclass.h"] = "keyword",
|
|
["fcvt.w.h"] = "keyword",
|
|
["fcvt.wu.h"] = "keyword",
|
|
["fmv.x.h"] = "keyword",
|
|
["fcvt.h.w"] = "keyword",
|
|
["fcvt.h.wu"] = "keyword",
|
|
["fmv.h.x"] = "keyword",
|
|
|
|
-- RV64Zfh instructions
|
|
["fcvt.l.h"] = "keyword",
|
|
["fcvt.lu.h"] = "keyword",
|
|
["fcvt.h.l"] = "keyword",
|
|
["fcvt.h.lu"] = "keyword",
|
|
|
|
-- Pesudo-instructions
|
|
["nop"] = "keyword",
|
|
["li"] = "keyword",
|
|
["mv"] = "keyword",
|
|
["not"] = "keyword",
|
|
["neg"] = "keyword",
|
|
["negw"] = "keyword",
|
|
["sext.w"] = "keyword",
|
|
["seqz"] = "keyword",
|
|
["snez"] = "keyword",
|
|
["sltz"] = "keyword",
|
|
["sgtz"] = "keyword",
|
|
["fmv.s"] = "keyword",
|
|
["fabs.s"] = "keyword",
|
|
["fneg.s"] = "keyword",
|
|
["fmv.d"] = "keyword",
|
|
["fabs.d"] = "keyword",
|
|
["fneg.d"] = "keyword",
|
|
["beqz"] = "keyword",
|
|
["bnez"] = "keyword",
|
|
["blez"] = "keyword",
|
|
["bgez"] = "keyword",
|
|
["bltz"] = "keyword",
|
|
["bgtz"] = "keyword",
|
|
["bgt"] = "keyword",
|
|
["ble"] = "keyword",
|
|
["bgtu"] = "keyword",
|
|
["bleu"] = "keyword",
|
|
["j"] = "keyword",
|
|
["jr"] = "keyword",
|
|
["ret"] = "keyword",
|
|
["call"] = "keyword",
|
|
["tail"] = "keyword",
|
|
|
|
-- Other
|
|
[".2byte"] = "keyword2",
|
|
[".4byte"] = "keyword2",
|
|
[".8byte"] = "keyword2",
|
|
[".half"] = "keyword2",
|
|
[".word"] = "keyword2",
|
|
[".dword"] = "keyword2",
|
|
[".byte"] = "keyword2",
|
|
[".dtpreldword"] = "keyword2",
|
|
[".dtprelword"] = "keyword2",
|
|
[".sleb128"] = "keyword2",
|
|
[".uleb128"] = "keyword2",
|
|
[".asciz"] = "keyword2",
|
|
[".string"] = "keyword2",
|
|
[".incbin"] = "keyword2",
|
|
[".zero"] = "keyword2",
|
|
|
|
[".align"] = "keyword2",
|
|
[".balign"] = "keyword2",
|
|
[".p2align"] = "keyword2",
|
|
|
|
[".globl"] = "keyword2",
|
|
[".local"] = "keyword2",
|
|
[".equ"] = "keyword2",
|
|
|
|
[".text"] = "keyword2",
|
|
[".data"] = "keyword2",
|
|
[".rodata"] = "keyword2",
|
|
[".bss"] = "keyword2",
|
|
[".comm"] = "keyword2",
|
|
[".common"] = "keyword2",
|
|
[".section"] = "keyword2",
|
|
|
|
[".option"] = "keyword2",
|
|
[".macro"] = "keyword2",
|
|
[".endm"] = "keyword2",
|
|
[".file"] = "keyword2",
|
|
[".ident"] = "keyword2",
|
|
[".size"] = "keyword2",
|
|
[".type"] = "keyword2",
|
|
},
|
|
}
|