From 232f01a92e4cef0ae1e452faf3d455f10ea6634e Mon Sep 17 00:00:00 2001 From: gryf Date: Sun, 22 Jul 2012 11:04:45 +0200 Subject: [PATCH] kickass syntax: Removed label highlight, turned on number highlight, small fixes --- syntax/kickass.vim | 213 ++++++++++++++++++++++----------------------- 1 file changed, 106 insertions(+), 107 deletions(-) diff --git a/syntax/kickass.vim b/syntax/kickass.vim index 9de0a0d..ac34e06 100644 --- a/syntax/kickass.vim +++ b/syntax/kickass.vim @@ -1,8 +1,16 @@ " Vim syntax file " Language: Assembler, KickAssembler " Maintainer: Roman 'gryf' Dobosz -" Last Change: 2012-07-05 -" Version: 1.0 +" Last Change: 2012-07-09 +" Version: 1.1 +" +" Changelog: +" 1.1 Since in assembly languages 'everything is a label' there pretty hard +" to distinguish labels from variables and structures, so I decided to +" remove highlighting labels at all. Instead numbers are highlighted, so that +" labels and defined variables are easily spotted in the code. +" +" 1.0 Initial release " " To install this file place it in ~/.vim/syntax (*nix/Mac) or in " $VIMRUNTIME/syntax on Windows and issue command: @@ -20,10 +28,15 @@ syn clear +" Macro names. +syn case ignore +syn match kickAssMacroCall ":[a-z_][a-z0-9_]*" +syn case match + " 6502 mnemonics -syn keyword kickAssMnemonic brk clc cld cli clv dex dey inx iny nop pha php pla -syn keyword kickAssMnemonic plp sec sed sei tax tay tsx txa txs tya -syn keyword kickAssJump rti rts nextgroup=kickAssLabels +syn keyword kickAssMnemonic brk clc cld cli clv dex dey inx iny nop pha php +syn keyword kickAssMnemonic pla plp sec sed sei tax tay tsx txa txs tya +syn keyword kickAssJump rti rts syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" @@ -34,15 +47,15 @@ syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" -syn match kickAssJump "\" nextgroup=kickAssLabels -syn match kickAssJump "\" nextgroup=kickAssLabels -syn match kickAssJump "\" nextgroup=kickAssLabels +syn match kickAssJump "\" +syn match kickAssJump "\" +syn match kickAssJump "\" syn match kickAssMnemonic "\" -syn match kickAssJump "\" nextgroup=kickAssLabels -syn match kickAssJump "\" nextgroup=kickAssLabels -syn match kickAssJump "\" nextgroup=kickAssLabels -syn match kickAssJump "\" nextgroup=kickAssLabels -syn match kickAssJump "\" nextgroup=kickAssLabels +syn match kickAssJump "\" +syn match kickAssJump "\" +syn match kickAssJump "\" +syn match kickAssJump "\" +syn match kickAssJump "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" @@ -51,8 +64,8 @@ syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" -syn match kickAssJump "\" nextgroup=kickAssLabels -syn match kickAssJump "\" nextgroup=kickAssLabels +syn match kickAssJump "\" +syn match kickAssJump "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" @@ -78,7 +91,7 @@ syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" " DTV mnemonics -syn match kickAssJump "\" nextgroup=kickAssLabels +syn match kickAssJump "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" @@ -90,9 +103,9 @@ syn region kickAssString start=+"+ skip=+\\"+ end=+"+ contains=@Spell oneline syn region kickAssString start=+'+ skip=+\\'+ end=+'+ contains=@Spell oneline " Comments -syn keyword kickAssTodo TODO FIXME XXX TBD NOTE WARNING BUG contained -syn match kickAssLineComment "\/\/.*" contains=@Spell,kickAssTodo -syn region kickAssComment start="/\*" end="\*/" contains=@Spell,kickAssTodo oneline +syn keyword kickAssTodo TODO FIXME XXX TBD NOTE WARNING BUG contained +syn match kickAssLineComment "\/\/.*" contains=@Spell,kickAssTodo +syn region kickAssComment start="/\*" end="\*/" contains=@Spell,kickAssTodo " Numbers syn match kickAssDecNumber "\<\d\+\>" @@ -100,10 +113,6 @@ syn match kickAssHexNumber "\$\x\+\>" syn match kickAssBinNumber "%[01]\+\>" syn match kickAssImmediate "#\$\x\+\>" syn match kickAssImmediate "#\d\+\>" -syn match kickAssImmediate "<\$\x\+\>" -syn match kickAssImmediate "<\d\+\>" -syn match kickAssImmediate ">\$\x\+\>" -syn match kickAssImmediate ">\d\+\>" syn match kickAssImmediate "#<\$\x\+\>" syn match kickAssImmediate "#<\d\+\>" syn match kickAssImmediate "#>\$\x\+\>" @@ -140,22 +149,41 @@ syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" syn keyword kickAssDirective else syn match kickAssDirective "\.\" -syn match kickAssDirective "\.\" nextgroup=kickAssDefName skipwhite -syn match kickAssDirective "\.\" nextgroup=kickAssDefName skipwhite +syn match kickAssDirective "\.\" +syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" -syn match kickAssDirective "\.\" nextgroup=kickAssDefName skipwhite -syn match kickAssDirective "\.\" nextgroup=kickAssDefName skipwhite +syn match kickAssDirective "\.\" +syn match kickAssDirective "\.\" " special macros syn match kickAssMacroCall ":\" +" PSID files +syn match kickAssFunction "\("he=e-1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 + " string methods and functions -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 @@ -199,46 +227,46 @@ syn match kickAssFunction "\("he=e-1 " List already defined: size syn match kickAssFunction /\(/he=e-1 -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 " READY. " Hash - already defined names: get, remove syn match kickAssFunction /\(/he=e-1 -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 " Vector/Matrix - already defined: get, set syn match kickAssFunction "\("he=e-1 -syn match kickAssFunction "\" display contained -syn match kickAssFunction "\" display contained -syn match kickAssFunction "\" display contained -syn match kickAssFunction "\<\X\>" display contained +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\<\X\>("he=e-1,hs=s+1 -syn match kickAssFunction "\" display contained -syn match kickAssFunction "\" display contained -syn match kickAssFunction "\" display contained -syn match kickAssFunction "\" display contained -syn match kickAssFunction "\" display contained +syn match kickAssFunction "\("he=e-1 +syn match kickAssFunction "\("he=e-1 +syn match kickAssFunction "\("he=e-1 +syn match kickAssFunction "\("he=e-1 +syn match kickAssFunction "\("he=e-1 " Structures - already defined names: get, set -syn match kickAssDirective "\.\" nextgroup=kickAssDefName skipwhite -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained +syn match kickAssDirective "\.\" +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 " pseudocommand -syn match kickAssDirective "\.\" nextgroup=kickAssDefName skipwhite +syn match kickAssDirective "\.\" syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 -syn keyword kickAssConstant AT_ABSOLUTE AT_ABSOLUTEX AT_ABSOLUTEY AT_IMMEDIATE +syn keyword kickAssConstant AT_ABSOLUTE AT_ABSOLUTEX AT_ABSOLUTEY AT_IMMEDIATE syn keyword kickAssConstant AT_INDIRECT AT_IZEROPAGEX AT_IZEROPAGEY AT_NONE " Opcode constants @@ -246,8 +274,7 @@ syn match kickAssFunction "\("he=e-1 syn keyword kickAssConstant RTS syn match kickAssConstant "\<[A-Z]\{3}2\?_\(IMM\|I\?ZP[XY]\?\|ABS[XY]\?\|IND\|REL\)\>" -" READY. -" Colour constants +" Constants syn keyword kickAssColor BLACK WHITE RED CYAN PURPLE GREEN BLUE YELLOW ORANGE syn keyword kickAssColor BROWN LIGHT_RED DARK_GRAY GRAY LIGHT_GREEN LIGHT_BLUE syn keyword kickAssColor LIGHT_GRAY DARK_GREY GREY LIGHT_GREY @@ -257,57 +284,32 @@ syn keyword kickAssConstant BD_C64FILE BF_BITMAP_SINGLECOLOR BF_KOALA BF_FLI " Binary import syn match kickAssFunction "\("he=e-1 -syn match kickAssMethod "\" display contained +syn match kickAssMethod "\.\("he=e-1,hs=s+1 syn match kickAssFunction "\("he=e-1 -" PSID files -syn match kickAssFunction "\("he=e-1 -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssMethod "\" display contained - " Graphics files syn match kickAssFunction "\("he=e-1 -syn match kickAssAttr "\" -syn match kickAssAttr "\" -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained -syn match kickAssMethod "\" display contained +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssAttr "\.\"hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 +syn match kickAssMethod "\.\("he=e-1,hs=s+1 " User defined files syn match kickAssFunction "\("he=e-1 -syn match kickAssMethod "\" display contained +syn match kickAssMethod "\.\("he=e-1,hs=s+1 " Testing syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" -syn region kickAssMethodCall start="[A-Za-z0-9_)]\." end="(" - \ contains=kickAssMethod oneline - -syn match kickAssDefName "[a-zA-Z_][a-zA-Z0-9_]*" display contained - -"Labels and macro names. All case insensitive -syn case ignore -syn match kickAssMacroCall ":[a-z_][a-z0-9_]*" -syn match kickAssLabels "^\!\?\<[a-z0-9_]*\>:" -syn match kickAssLabels "\s\!\<[a-z0-9_]*\>[-+]\?"hs=s+1 contained -syn match kickAssLabels "\s\<[a-z0-9_]*\>[-+]\?"hs=s+1 contained -syn case match - if !exists("did_kickasm_syntax_inits") let did_kickasm_syntax_inits = 1 @@ -315,7 +317,7 @@ if !exists("did_kickasm_syntax_inits") hi def link kickAssMnemonic Type hi def link kickAssIndex None - hi def link kickAssJump PreCondit + hi def link kickAssJump Conditional hi def link kickAssString String hi def link kickAssString String hi def link kickAssComment Comment @@ -325,19 +327,16 @@ if !exists("did_kickasm_syntax_inits") hi def link kickAssImportType Operator - hi def link kickAssDefName Function hi def link kickAssFunction Function hi def link kickAssMethod Function hi def link kickAssAttr Special hi def link kickAssColor Constant hi def link kickAssConstant Constant - hi def link kickAssImmediate None - hi def link kickAssHexNumber None - hi def link kickAssBinNumber None - hi def link kickAssDecNumber None - - hi def link kickAssLabels Label + hi def link kickAssImmediate Number + hi def link kickAssHexNumber Number + hi def link kickAssBinNumber Number + hi def link kickAssDecNumber Number endif let b:current_syntax = "kickasm"