1
0
mirror of https://github.com/gryf/.vim.git synced 2025-12-17 11:30:29 +01:00

kickass syntax: Removed label highlight, turned on number highlight, small

fixes
This commit is contained in:
2012-07-22 11:04:45 +02:00
parent a76051c394
commit 232f01a92e

View File

@@ -1,8 +1,16 @@
" Vim syntax file
" Language: Assembler, KickAssembler
" Maintainer: Roman 'gryf' Dobosz <gryf_esm@o2.pl>
" 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 "\<adc\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<ahx\(\.\(izp\?y\|a\(bs\)\?y\)\)\?\>"
@@ -34,15 +47,15 @@ syn match kickAssMnemonic "\<and\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?
syn match kickAssMnemonic "\<arr\(\.imm\?\)\?\>"
syn match kickAssMnemonic "\<asl\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>"
syn match kickAssMnemonic "\<axs\(\.imm\?\)\?\>"
syn match kickAssJump "\<bcc\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bcs\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<beq\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bcc\(\.r\(el\)\?\)\?\>"
syn match kickAssJump "\<bcs\(\.r\(el\)\?\)\?\>"
syn match kickAssJump "\<beq\(\.r\(el\)\?\)\?\>"
syn match kickAssMnemonic "\<bit\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>"
syn match kickAssJump "\<bmi\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bne\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bpl\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bvc\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bvs\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bmi\(\.r\(el\)\?\)\?\>"
syn match kickAssJump "\<bne\(\.r\(el\)\?\)\?\>"
syn match kickAssJump "\<bpl\(\.r\(el\)\?\)\?\>"
syn match kickAssJump "\<bvc\(\.r\(el\)\?\)\?\>"
syn match kickAssJump "\<bvs\(\.r\(el\)\?\)\?\>"
syn match kickAssMnemonic "\<cmp\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<cpx\(\.\(imm\?\|zp\?\|a\(bs\)\?\)\)\?\>"
syn match kickAssMnemonic "\<cpy\(\.\(imm\?\|zp\?\|a\(bs\)\?\)\)\?\>"
@@ -51,8 +64,8 @@ syn match kickAssMnemonic "\<dec\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>"
syn match kickAssMnemonic "\<eor\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<inc\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>"
syn match kickAssMnemonic "\<isc\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssJump "\<jmp\(\.\(a\(bs\)\?\|i\(nd\)\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<jsr\(\.a\(bs\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<jmp\(\.\(a\(bs\)\?\|i\(nd\)\?\)\)\?\>"
syn match kickAssJump "\<jsr\(\.a\(bs\)\?\)\?\>"
syn match kickAssMnemonic "\<las\(\.a\(bs\)\?y\)\?\>"
syn match kickAssMnemonic "\<lax\(\.\(imm\?\|zp\?y\?\|izp\?[xy]\|a\(bs\)\?y\?\)\)\?\>"
syn match kickAssMnemonic "\<lda\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
@@ -78,7 +91,7 @@ syn match kickAssMnemonic "\<tas\(\.a\(bs\)\?y\)\?\>"
syn match kickAssMnemonic "\<xaa\(\.imm\?\)\?\>"
" DTV mnemonics
syn match kickAssJump "\<bra\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bra\(\.r\(el\)\?\)\?\>"
syn match kickAssMnemonic "\<sac\(\.imm\?\)\?\>"
syn match kickAssMnemonic "\<sir\(\.imm\?\)\?\>"
@@ -92,7 +105,7 @@ 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 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 "\.\<define\>"
syn match kickAssDirective "\.\<if\>"
syn keyword kickAssDirective else
syn match kickAssDirective "\.\<for\>"
syn match kickAssDirective "\.\<macro\>" nextgroup=kickAssDefName skipwhite
syn match kickAssDirective "\.\<function\>" nextgroup=kickAssDefName skipwhite
syn match kickAssDirective "\.\<macro\>"
syn match kickAssDirective "\.\<function\>"
syn match kickAssDirective "\.\<return\>"
syn match kickAssDirective "\.\<namespace\>" nextgroup=kickAssDefName skipwhite
syn match kickAssDirective "\.\<filenamespace\>" nextgroup=kickAssDefName skipwhite
syn match kickAssDirective "\.\<namespace\>"
syn match kickAssDirective "\.\<filenamespace\>"
" special macros
syn match kickAssMacroCall ":\<BasicUpstart2\?\>"
" PSID files
syn match kickAssFunction "\<LoadSid\>("he=e-1
syn match kickAssAttr "\.\<header\>"hs=s+1
syn match kickAssAttr "\.\<version\>"hs=s+1
syn match kickAssAttr "\.\<location\>"hs=s+1
syn match kickAssAttr "\.\<init\>"hs=s+1
syn match kickAssAttr "\.\<play\>"hs=s+1
syn match kickAssAttr "\.\<size\>"hs=s+1
syn match kickAssAttr "\.\<songs\>"hs=s+1
syn match kickAssAttr "\.\<startSong\>"hs=s+1
syn match kickAssAttr "\.\<name\>"hs=s+1
syn match kickAssAttr "\.\<author\>"hs=s+1
syn match kickAssAttr "\.\<copyright\>"hs=s+1
syn match kickAssAttr "\.\<speed\>"hs=s+1
syn match kickAssAttr "\.\<flags\>"hs=s+1
syn match kickAssAttr "\.\<startpage\>"hs=s+1
syn match kickAssAttr "\.\<pagelength\>"hs=s+1
syn match kickAssMethod "\.\<getData\>("he=e-1,hs=s+1
" string methods and functions
syn match kickAssMethod "\<string\>" display contained
syn match kickAssMethod "\<size\>" display contained
syn match kickAssMethod "\<charAt\>" display contained
syn match kickAssMethod "\<substring\>" display contained
syn match kickAssMethod "\<asBoolean\>" display contained
syn match kickAssMethod "\<asNumber\>" display contained
syn match kickAssMethod "\.\<string\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<size\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<charAt\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<substring\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<asBoolean\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<asNumber\>("he=e-1,hs=s+1
syn match kickAssFunction "\<toIntString\>("he=e-1
syn match kickAssFunction "\<toBinaryString\>("he=e-1
@@ -199,42 +227,42 @@ syn match kickAssFunction "\<toRadians\>("he=e-1
" List already defined: size
syn match kickAssFunction /\<List\>(/he=e-1
syn match kickAssMethod "\<get\>" display contained
syn match kickAssMethod "\<set\>" display contained
syn match kickAssMethod "\<add\>" display contained
syn match kickAssMethod "\<remove\>" display contained
syn match kickAssMethod "\<shuffle\>" display contained
syn match kickAssMethod "\<reverse\>" display contained
syn match kickAssMethod "\<sort\>" display contained
syn match kickAssMethod "\.\<get\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<set\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<add\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<remove\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<shuffle\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<reverse\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<sort\>("he=e-1,hs=s+1
" READY.
" Hash - already defined names: get, remove
syn match kickAssFunction /\<Hashtable\>(/he=e-1
syn match kickAssMethod "\<put\>" display contained
syn match kickAssMethod "\<keys\>" display contained
syn match kickAssMethod "\<containsKey\>" display contained
syn match kickAssMethod "\.\<put\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<keys\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<containsKey\>("he=e-1,hs=s+1
" Vector/Matrix - already defined: get, set
syn match kickAssFunction "\<Vector\>("he=e-1
syn match kickAssFunction "\<getX\>" display contained
syn match kickAssFunction "\<getY\>" display contained
syn match kickAssFunction "\<getZ\>" display contained
syn match kickAssFunction "\<\X\>" display contained
syn match kickAssMethod "\.\<getX\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<getY\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<getZ\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<\X\>("he=e-1,hs=s+1
syn match kickAssFunction "\<Matrix\>" display contained
syn match kickAssFunction "\<RotationMatrix\>" display contained
syn match kickAssFunction "\<ScaleMatrix\>" display contained
syn match kickAssFunction "\<PerspectiveMatrix\>" display contained
syn match kickAssFunction "\<MoveMatrix\>" display contained
syn match kickAssFunction "\<Matrix\>("he=e-1
syn match kickAssFunction "\<RotationMatrix\>("he=e-1
syn match kickAssFunction "\<ScaleMatrix\>("he=e-1
syn match kickAssFunction "\<PerspectiveMatrix\>("he=e-1
syn match kickAssFunction "\<MoveMatrix\>("he=e-1
" Structures - already defined names: get, set
syn match kickAssDirective "\.\<struct\>" nextgroup=kickAssDefName skipwhite
syn match kickAssMethod "\<getStructName\>" display contained
syn match kickAssMethod "\<getNoOfFields\>" display contained
syn match kickAssMethod "\<getFieldNames\>" display contained
syn match kickAssDirective "\.\<struct\>"
syn match kickAssMethod "\.\<getStructName\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<getNoOfFields\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<getFieldNames\>("he=e-1,hs=s+1
" pseudocommand
syn match kickAssDirective "\.\<pseudocommand\>" nextgroup=kickAssDefName skipwhite
syn match kickAssDirective "\.\<pseudocommand\>"
syn match kickAssFunction "\<CmdArgument\>("he=e-1
syn match kickAssFunction "\<getType\>("he=e-1
syn match kickAssFunction "\<getValue\>("he=e-1
@@ -246,8 +274,7 @@ syn match kickAssFunction "\<asmCommandSize\>("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 "\<LoadBinary\>("he=e-1
syn match kickAssMethod "\<getSize\>" display contained
syn match kickAssMethod "\.\<getSize\>("he=e-1,hs=s+1
syn match kickAssFunction "\<LoadBinary\>("he=e-1
" PSID files
syn match kickAssFunction "\<LoadSid\>("he=e-1
syn match kickAssAttr "\<header\>"
syn match kickAssAttr "\<version\>"
syn match kickAssAttr "\<location\>"
syn match kickAssAttr "\<init\>"
syn match kickAssAttr "\<play\>"
syn match kickAssAttr "\<size\>"
syn match kickAssAttr "\<songs\>"
syn match kickAssAttr "\<startSong\>"
syn match kickAssAttr "\<name\>"
syn match kickAssAttr "\<author\>"
syn match kickAssAttr "\<copyright\>"
syn match kickAssAttr "\<speed\>"
syn match kickAssAttr "\<flags\>"
syn match kickAssAttr "\<startpage\>"
syn match kickAssAttr "\<pagelength\>"
syn match kickAssMethod "\<getData\>" display contained
" Graphics files
syn match kickAssFunction "\<LoadPicture\>("he=e-1
syn match kickAssAttr "\<width\>"
syn match kickAssAttr "\<height\>"
syn match kickAssMethod "\<getPixel\>" display contained
syn match kickAssMethod "\<getSinglecolorByte\>" display contained
syn match kickAssMethod "\<getMulticolorByte\>" display contained
syn match kickAssAttr "\.\<width\>"hs=s+1
syn match kickAssAttr "\.\<height\>"hs=s+1
syn match kickAssMethod "\.\<getPixel\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<getSinglecolorByte\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<getMulticolorByte\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<getScreenRamSize\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<getScreenRam\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<getColorRamSize\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<getColorRam\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<getBitmapSize\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<getBitmap\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<getBackgroundColor\>("he=e-1,hs=s+1
" User defined files
syn match kickAssFunction "\<createFile\>("he=e-1
syn match kickAssMethod "\<writeln\>" display contained
syn match kickAssMethod "\.\<writeln\>("he=e-1,hs=s+1
" Testing
syn match kickAssDirective "\.\<kickAssert\>"
syn match kickAssDirective "\.\<kickAsserterror\>"
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"