From 3253c4cac94194fabed46aafdd8b459cdb1d85a3 Mon Sep 17 00:00:00 2001 From: Max Wash Date: Sun, 11 Jan 2026 14:51:09 +0000 Subject: [PATCH] vim: add support for mach-registers, graph instructions, etc --- mie.vim/syntax/mie.vim | 44 ++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/mie.vim/syntax/mie.vim b/mie.vim/syntax/mie.vim index 8488018..861c9a7 100755 --- a/mie.vim/syntax/mie.vim +++ b/mie.vim/syntax/mie.vim @@ -5,41 +5,51 @@ endif let s:save_cpo = &cpoptions set cpoptions&vim 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 \ eq gt ge lt le syn match mieRegister "%[0-9]\>" syn match mieRegister "%[1-9][0-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 mieBlockIdentifier /\^\(\w\+\)\(\.\(\w\+\)\)*/ syn match mieBlockLabel /\^\(\w\+\)\(\.\(\w\+\)\)*\:/ -syn keyword mieBuiltinType void index -syn keyword mieBuiltinType f16 f32 f64 f80 f128 +syn keyword mieBuiltinType void " Use syn match for type names that are ALSO dialect names, to ensure that " dialect operations are still matched as such. syn match mieBuiltinType /\/ -syn match mieBuiltinType "i[0-9]\>" -syn match mieBuiltinType "i[1-9][0-9]\+\>" +syn match mieBuiltinType /\/ +syn match mieBuiltinType /\/ +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 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 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 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 /0x[:xdigit:]\+\>/ -syn match mieInteger /-0x[:xdigit:]\+\>/ +syn match mieInteger /\<[0-9]\+\(\.\)\@!\>/ +syn match mieInteger /\<-[0-9]\+\(\.\)\@!\>/ +syn match mieInteger /\<0x[:xdigit:]\+\>/ +syn match mieInteger /\<-0x[:xdigit:]\+\>/ syn match mieIntegerDimension /[0-9]\+x/ syn match mieIntegerDimension /0x[:xdigit:]\+x/ @@ -55,12 +65,9 @@ syn match mieBraces "[{}]" display syn match mieAngleBrackets "[<>]" display syn match mieOperator "[=:]" display syn match mieOperator "->" display -syn match ivyPropertySymbol "\$" display " The default highlighting. hi def link mieUnspecifiedKeyword Keyword -hi def link ivyPropertySymbol Statement - hi def link mieInteger Number hi def link mieFloat Number @@ -72,12 +79,15 @@ hi def link mieAngleBrackets StorageClass hi def link mieDialectType Type hi def link mieGenericOperation @function.builtin +hi def link mieGraphOperation Statement hi def link mieCustomOperation Function +hi def link mieInstruction @attribute hi def link mieInstructionFlag StorageClass hi def link mieIdentifier Identifier hi def link mieBlockIdentifier 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 mieBuiltinType @type.builtin