mirror of https://github.com/helix-editor/helix
Add llvm-mir highlighting (#1398)
* Add injection regex for more languages To support embedding them in other languages like markdown. * Add llvm-mir highlighting LLVM Machine IR is dumped as yaml files that can embed LLVM IR and Machine IR. To support this, add a llvm-mir-yaml language that uses the yaml parser, but uses different injections to highlight IR and MIR. * Update submodule with fixed multiline comments Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>pull/1435/head
parent
7c9d3682db
commit
641255ccc8
@ -0,0 +1 @@
|
||||
Subproject commit 06fabca19454b2dc00c1b211a7cb7ad0bc2585f1
|
@ -0,0 +1 @@
|
||||
; inherits: yaml
|
@ -0,0 +1,3 @@
|
||||
indent = [
|
||||
"block_mapping_pair",
|
||||
]
|
@ -0,0 +1,9 @@
|
||||
; inherits: yaml
|
||||
|
||||
((document (block_node (block_scalar) @injection.content))
|
||||
(#set! injection.language "llvm"))
|
||||
|
||||
((document (block_node (block_mapping (block_mapping_pair
|
||||
key: (flow_node (plain_scalar (string_scalar))) ; "body"
|
||||
value: (block_node (block_scalar) @injection.content)))))
|
||||
(#set! injection.language "mir"))
|
@ -0,0 +1,136 @@
|
||||
[
|
||||
(label)
|
||||
(bb_ref)
|
||||
] @label
|
||||
|
||||
[
|
||||
(comment)
|
||||
(multiline_comment)
|
||||
] @comment
|
||||
|
||||
[
|
||||
"("
|
||||
")"
|
||||
"["
|
||||
"]"
|
||||
"{"
|
||||
"}"
|
||||
"<"
|
||||
">"
|
||||
] @punctuation.bracket
|
||||
|
||||
[
|
||||
","
|
||||
":"
|
||||
"|"
|
||||
"*"
|
||||
] @punctuation.delimiter
|
||||
|
||||
[
|
||||
"="
|
||||
"x"
|
||||
] @operator
|
||||
|
||||
[
|
||||
"true"
|
||||
"false"
|
||||
] @constant.builtin.boolean
|
||||
|
||||
[
|
||||
"null"
|
||||
"_"
|
||||
"unknown-address"
|
||||
] @constant.builtin
|
||||
|
||||
[
|
||||
(stack_object)
|
||||
(constant_pool_index)
|
||||
(jump_table_index)
|
||||
(var)
|
||||
(physical_register)
|
||||
(ir_block)
|
||||
(external_symbol)
|
||||
(global_var)
|
||||
(ir_local_var)
|
||||
(metadata_ref)
|
||||
(mnemonic)
|
||||
] @variable
|
||||
|
||||
(low_level_type) @type
|
||||
|
||||
[
|
||||
(immediate_type)
|
||||
(primitive_type)
|
||||
] @type.builtin
|
||||
|
||||
(number) @constant.numeric.integer
|
||||
(float) @constant.numeric.float
|
||||
(string) @string
|
||||
|
||||
(instruction name: _ @keyword.operator)
|
||||
|
||||
[
|
||||
"successors"
|
||||
"liveins"
|
||||
"pre-instr-symbol"
|
||||
"post-instr-symbol"
|
||||
"heap-alloc-marker"
|
||||
"debug-instr-number"
|
||||
"debug-location"
|
||||
"mcsymbol"
|
||||
"tied-def"
|
||||
"target-flags"
|
||||
"CustomRegMask"
|
||||
"same_value"
|
||||
"def_cfa_register"
|
||||
"restore"
|
||||
"undefined"
|
||||
"offset"
|
||||
"rel_offset"
|
||||
"def_cfa"
|
||||
"llvm_def_aspace_cfa"
|
||||
"register"
|
||||
"escape"
|
||||
"remember_state"
|
||||
"restore_state"
|
||||
"window_save"
|
||||
"negate_ra_sign_state"
|
||||
"intpred"
|
||||
"floatpred"
|
||||
"shufflemask"
|
||||
"liveout"
|
||||
"target-index"
|
||||
"blockaddress"
|
||||
"intrinsic"
|
||||
"load"
|
||||
"store"
|
||||
"unknown-size"
|
||||
"on"
|
||||
"from"
|
||||
"into"
|
||||
"align"
|
||||
"basealign"
|
||||
"addrspace"
|
||||
"call-entry"
|
||||
"custom"
|
||||
"constant-pool"
|
||||
"stack"
|
||||
"got"
|
||||
"jump-table"
|
||||
"syncscope"
|
||||
"address-taken"
|
||||
"landing-pad"
|
||||
"inlineasm-br-indirect-target"
|
||||
"ehfunclet-entry"
|
||||
"bbsections"
|
||||
|
||||
(intpred)
|
||||
(floatpred)
|
||||
(memory_operand_flag)
|
||||
(atomic_ordering)
|
||||
(register_flag)
|
||||
(instruction_flag)
|
||||
(float_keyword)
|
||||
] @keyword
|
||||
|
||||
(ERROR) @error
|
@ -0,0 +1,7 @@
|
||||
indent = [
|
||||
"basic_block",
|
||||
]
|
||||
|
||||
outdent = [
|
||||
"label",
|
||||
]
|
@ -0,0 +1,2 @@
|
||||
([ (comment) (multiline_comment)] @injection.content
|
||||
(#set! injection.language "comment"))
|
@ -0,0 +1,3 @@
|
||||
(basic_block) @function.around
|
||||
|
||||
(argument) @parameter.inside
|
@ -0,0 +1,2 @@
|
||||
((comment) @injection.content
|
||||
(#set! injection.language "comment"))
|
Loading…
Reference in New Issue