-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathrgbds.vim
125 lines (111 loc) · 3.26 KB
/
rgbds.vim
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
" Vim syntax file
syn case ignore
" asm opcodes
syn keyword rgbInstruction adc add and bit call ccf cp cpl
syn keyword rgbInstruction daa dec di ei ex halt inc jp jr ld ldd ldi ldh
syn keyword rgbInstruction ldio nop or pop push res ret reti rl rla rlc rlca
syn keyword rgbInstruction rr rra rrc rrca rst sbc scf set sla sra srl stop
syn keyword rgbInstruction sub swap xor
" section types
syn keyword rgbType CODE DATA BSS HOME VRAM HRAM
syn keyword rgbType ALIGNED_CODE ALIGNED_DATA ALIGNED_HOME
" labels
syn match rgbLabel "[a-z_][a-z0-9_]*:"
" Any other stuff
syn match rgbIdentifier "[a-z_][a-z0-9_]*"
" RGBDS commands
syn keyword rgbPreProc DB
syn keyword rgbPreProc DW
syn keyword rgbPreProc DS
syn keyword rgbPreProc EQU
syn keyword rgbPreProc EQUS
syn keyword rgbPreProc IMPORT
syn keyword rgbPreProc EXPORT
syn keyword rgbPreProc GLOBAL
syn keyword rgbPreProc XREF
syn keyword rgbPreProc XDEF
syn keyword rgbPreProc DIV
syn keyword rgbPreProc MUL
syn keyword rgbPreProc SIN
syn keyword rgbPreProc COS
syn keyword rgbPreProc TAN
syn keyword rgbPreProc ASIN
syn keyword rgbPreProc ACOS
syn keyword rgbPreProc ATAN
syn keyword rgbPreProc ATAN2
syn keyword rgbPreProc FAIL
syn keyword rgbPreProc WARN
syn keyword rgbPreCondit IF
syn keyword rgbPreCondit ELSE
syn keyword rgbPreCondit ENDC
syn keyword rgbPreProc INCBIN
syn keyword rgbPreProc INCLUDE
syn keyword rgbMacro MACRO
syn keyword rgbMacro ENDM
syn keyword rgbPreProc BANK
syn keyword rgbPreProc DEF
syn keyword rgbPreProc OPT
syn keyword rgbPreProc POPO
syn keyword rgbPreProc PUSHO
syn keyword rgbPreProc POPS
syn keyword rgbPreProc PUSHS
syn keyword rgbPreProc PRINTT
syn keyword rgbPreProc PRINTV
syn keyword rgbPreProc PRINTF
syn keyword rgbPreProc PURGE
syn keyword rgbPreProc REPT
syn keyword rgbPreProc ENDR
syn keyword rgbPreProc RSSET
syn keyword rgbPreProc RERESET
syn keyword rgbPreProc RB
syn keyword rgbPreProc RW
syn keyword rgbPreProc SECTION
" prefer to have it highlighted as instruction
" syn keyword rgbPreProc SET
syn keyword rgbPreProc SHIFT
" strings
syn match rgbString "\".*\""
" 'foo' is not a string
" Numbers
syn match rgbNumber "[0-9]\+"
syn match rgbNumber "\$[0-9a-fA-F]\+"
syn match rgbNumber "%[0-1]\+"
syn match rgbNumber "0[xXhH][0-9a-fA-F]\+"
syn match rgbNumber "0[bB][0-1]*"
syn match rgbNumber "0[oO\@qQ][0-7]\+"
syn match rgbNumber "0[dD][0-9]\+"
" predefined symbols
syn match rgbPresym "_PI"
syn match rgbPresym "_RS"
syn match rgbPresym "_NARG"
syn match rgbPresym "__LINE__"
syn match rgbPresym "__FILE__"
syn match rgbPresym "__DATE__"
syn match rgbPresym "__TIME__"
" comments
syn match rgbComment ";.*"
syn case match
" Define the default highlighting.
if version >= 508 || !exists("did_rgb_syntax_inits")
if version < 508
let did_rgb_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink rgbSection Special
HiLink rgbLabel Label
HiLink rgbComment Comment
HiLink rgbInstruction Statement
HiLink rgbInclude Include
HiLink rgbPreCondit PreCondit
HiLink rgbMacro Macro
HiLink rgbNumber Number
HiLink rgbPreProc PreProc
HiLink rgbString String
HiLink rgbType Type
HiLink rgbIdentifier Identifier
HiLink rgbPresym Constant
delcommand HiLink
endif
let b:current_syntax = "rgb"