vim: add support for mach-registers, graph instructions, etc

This commit is contained in:
2026-01-11 14:51:09 +00:00
parent fc61b188e3
commit 3253c4cac9

View File

@@ -5,41 +5,51 @@ endif
let s:save_cpo = &cpoptions let s:save_cpo = &cpoptions
set cpoptions&vim set cpoptions&vim
setlocal iskeyword+=- setlocal iskeyword+=-
setlocal shiftwidth=4
setlocal tabstop=4
syn keyword mieUnspecifiedKeyword to step iter-args syn keyword mieUnspecifiedKeyword
\ to step iter-args get set
\ case then default
syn keyword mieInstructionFlag syn keyword mieInstructionFlag
\ eq gt ge lt le \ eq gt ge lt le
syn match mieRegister "%[0-9]\>" syn match mieRegister "%[0-9]\>"
syn match mieRegister "%[1-9][0-9]\+\>" syn match mieRegister "%[1-9][0-9]\+\>"
syn match mieRegister "%[A-Za-z_\-\.][A-Za-z0-9_\-\.]*\>" syn match mieRegister "%[A-Za-z_\-\.][A-Za-z0-9_\-\.]*\>"
syn match mieMachineRegister "$[0-9]\>"
syn match mieMachineRegister "$[1-9][0-9]\+\>"
syn match mieMachineRegister "$[A-Za-z_\-\.][A-Za-z0-9_\-\.]*\>"
syn match mieIdentifier /@\(\w\+\)\(\.\(\w\+\)\)*\>/ syn match mieIdentifier /@\(\w\+\)\(\.\(\w\+\)\)*\>/
syn match mieIdentifier /@\.\(\w\+\)\(\.\(\w\+\)\)*\>/ syn match mieIdentifier /@\.\(\w\+\)\(\.\(\w\+\)\)*\>/
syn match mieBlockIdentifier /\^\(\w\+\)\(\.\(\w\+\)\)*/ syn match mieBlockIdentifier /\^\(\w\+\)\(\.\(\w\+\)\)*/
syn match mieBlockLabel /\^\(\w\+\)\(\.\(\w\+\)\)*\:/ syn match mieBlockLabel /\^\(\w\+\)\(\.\(\w\+\)\)*\:/
syn keyword mieBuiltinType void index syn keyword mieBuiltinType void
syn keyword mieBuiltinType f16 f32 f64 f80 f128
" Use syn match for type names that are ALSO dialect names, to ensure that " Use syn match for type names that are ALSO dialect names, to ensure that
" dialect operations are still matched as such. " dialect operations are still matched as such.
syn match mieBuiltinType /\<memref\>/ syn match mieBuiltinType /\<memref\>/
syn match mieBuiltinType "i[0-9]\>" syn match mieBuiltinType /\<ptr\>/
syn match mieBuiltinType "i[1-9][0-9]\+\>" syn match mieBuiltinType /\<index\>/
syn match mieBuiltinType "\<[if][0-9]\>"
syn match mieBuiltinType "\<[if][1-9][0-9]\+\>"
syn match mieDialectType /#[A-Za-z][A-Za-z0-9\-]*\(\.[A-Za-z][A-Za-z0-9\-]*\)\+/ syn match mieDialectType /#[A-Za-z][A-Za-z0-9\-]*\(\.[A-Za-z][A-Za-z0-9\-]*\)\+/
syn match mieInstruction /\*[A-Za-z][A-Za-z0-9\-]*\(\.[A-Za-z][A-Za-z0-9\-]*\)\+\([>\*]\)\@!\>/
syn match mieGenericOperation /\~[A-Za-z][A-Za-z0-9\-]*\(\.[A-Za-z][A-Za-z0-9\-]*\)\+\([>\*]\)\@!\>/
syn match mieGraphOperation /+[A-Za-z][A-Za-z0-9\-]*\(\.[A-Za-z][A-Za-z0-9\-]*\)\+\([>\*]\)\@!\>/
syn match mieCustomOperation /\<[A-Za-z][A-Za-z0-9\-]*\(\.[A-Za-z][A-Za-z0-9\-]*\)\+\>/ syn match mieCustomOperation /\<[A-Za-z][A-Za-z0-9\-]*\(\.[A-Za-z][A-Za-z0-9\-]*\)\+\>/
syn match mieGenericOperation /\*[A-Za-z][A-Za-z0-9\-]*\(\.[A-Za-z][A-Za-z0-9\-]*\)\+\([>\*]\)\@!\>/
syn match mieAttributeName /\<[A-Za-z][A-Za-z0-9\-_\.]*\(\s*=\)\@=\>/ syn match mieAttributeName /\<[A-Za-z][A-Za-z0-9\-_\.]*\(\s*=\)\@=\>/
syn region mieString start=+"+ end=+"\%(u8\)\=+ end=+$+ extend syn region mieString start=+"+ end=+"\%(u8\)\=+ end=+$+ extend
syn match mieFloat /[0-9]\+\.[0-9]\+/ syn match mieFloat /\<[0-9]\+\.[0-9]\+/
syn match mieFloat /-[0-9]\+\.[0-9]\+/ syn match mieFloat /\<-[0-9]\+\.[0-9]\+/
syn match mieFloat /+[0-9]\+\.[0-9]\+/ syn match mieFloat /\<+[0-9]\+\.[0-9]\+/
syn match mieInteger /[0-9]\+\(\.\)\@!\>/ syn match mieInteger /\<[0-9]\+\(\.\)\@!\>/
syn match mieInteger /-[0-9]\+\(\.\)\@!\>/ syn match mieInteger /\<-[0-9]\+\(\.\)\@!\>/
syn match mieInteger /0x[:xdigit:]\+\>/ syn match mieInteger /\<0x[:xdigit:]\+\>/
syn match mieInteger /-0x[:xdigit:]\+\>/ syn match mieInteger /\<-0x[:xdigit:]\+\>/
syn match mieIntegerDimension /[0-9]\+x/ syn match mieIntegerDimension /[0-9]\+x/
syn match mieIntegerDimension /0x[:xdigit:]\+x/ syn match mieIntegerDimension /0x[:xdigit:]\+x/
@@ -55,12 +65,9 @@ syn match mieBraces "[{}]" display
syn match mieAngleBrackets "[<>]" display syn match mieAngleBrackets "[<>]" display
syn match mieOperator "[=:]" display syn match mieOperator "[=:]" display
syn match mieOperator "->" display syn match mieOperator "->" display
syn match ivyPropertySymbol "\$" display
" The default highlighting. " The default highlighting.
hi def link mieUnspecifiedKeyword Keyword hi def link mieUnspecifiedKeyword Keyword
hi def link ivyPropertySymbol Statement
hi def link mieInteger Number hi def link mieInteger Number
hi def link mieFloat Number hi def link mieFloat Number
@@ -72,12 +79,15 @@ hi def link mieAngleBrackets StorageClass
hi def link mieDialectType Type hi def link mieDialectType Type
hi def link mieGenericOperation @function.builtin hi def link mieGenericOperation @function.builtin
hi def link mieGraphOperation Statement
hi def link mieCustomOperation Function hi def link mieCustomOperation Function
hi def link mieInstruction @attribute
hi def link mieInstructionFlag StorageClass hi def link mieInstructionFlag StorageClass
hi def link mieIdentifier Identifier hi def link mieIdentifier Identifier
hi def link mieBlockIdentifier Label hi def link mieBlockIdentifier Label
hi def link mieBlockLabel Label hi def link mieBlockLabel Label
hi def link mieRegister @variable hi def link mieRegister @variable.parameter
hi def link mieMachineRegister @variable.builtin
hi def link mieString String hi def link mieString String
hi def link mieBuiltinType @type.builtin hi def link mieBuiltinType @type.builtin