Skip to content

Commit c84526d

Browse files
soderochrisbra
authored andcommitted
runtime(amiga): revamp syntax highlighting and add new maintainer
closes: #19825 Signed-off-by: Ola Söder <rolfkopman@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
1 parent be7ef8a commit c84526d

2 files changed

Lines changed: 292 additions & 77 deletions

File tree

.github/MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,7 @@ runtime/syntax/shared/hgcommitDiff.vim @vegerot
472472
runtime/syntax/abaqus.vim @costerwi
473473
runtime/syntax/abnf.vim @A4-Tacks
474474
runtime/syntax/aidl.vim @dpelle
475+
runtime/syntax/amiga.vim @sodero
475476
runtime/syntax/ant.vim @dkearns
476477
runtime/syntax/antlr4.vim @jiangyinzuo
477478
runtime/syntax/arduino.vim @johshoff

runtime/syntax/amiga.vim

Lines changed: 291 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,303 @@
11
" Vim syntax file
2-
" Language: AmigaDos
3-
" Maintainer: This runtime file is looking for a new maintainer.
4-
" Former Maintainer: Charles E. Campbell
5-
" Last Change: Aug 31, 2016
6-
" Version: 10
7-
" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_AMIGA
8-
9-
" quit when a syntax file was already loaded
2+
" Language: AmigaDOS
3+
" Maintainer: Ola Söder <rolfkopman@gmail.com>
4+
" First Author: Charles E. Campbell
5+
" Last Change: 2026 Mar 25
6+
" Version: 11
7+
108
if exists("b:current_syntax")
11-
finish
9+
finish
1210
endif
1311

1412
syn case ignore
1513

16-
" Amiga Devices
17-
syn match amiDev "\(par\|ser\|prt\|con\|nil\):"
18-
19-
" Amiga aliases and paths
20-
syn match amiAlias "\<[a-zA-Z][a-zA-Z0-9]\+:"
21-
syn match amiAlias "\<[a-zA-Z][a-zA-Z0-9]\+:[a-zA-Z0-9/]*/"
22-
23-
" strings
24-
syn region amiString start=+"+ end=+"+ oneline contains=@Spell
25-
26-
" numbers
27-
syn match amiNumber "\<\d\+\>"
28-
29-
" Logic flow
30-
syn region amiFlow matchgroup=Statement start="if" matchgroup=Statement end="endif" contains=ALL
31-
syn keyword amiFlow skip endskip
32-
syn match amiError "else\|endif"
33-
syn keyword amiElse contained else
34-
35-
syn keyword amiTest contained not warn error fail eq gt ge val exists
36-
37-
" echo exception
38-
syn region amiEcho matchgroup=Statement start="\<echo\>" end="$" oneline contains=amiComment
39-
syn region amiEcho matchgroup=Statement start="^\.[bB][rR][aA]" end="$" oneline
40-
syn region amiEcho matchgroup=Statement start="^\.[kK][eE][tT]" end="$" oneline
41-
42-
" commands
43-
syn keyword amiKey addbuffers copy fault join pointer setdate
44-
syn keyword amiKey addmonitor cpu filenote keyshow printer setenv
45-
syn keyword amiKey alias date fixfonts lab printergfx setfont
46-
syn keyword amiKey ask delete fkey list printfiles setmap
47-
syn keyword amiKey assign dir font loadwb prompt setpatch
48-
syn keyword amiKey autopoint diskchange format lock protect sort
49-
syn keyword amiKey avail diskcopy get magtape quit stack
50-
syn keyword amiKey binddrivers diskdoctor getenv makedir relabel status
51-
syn keyword amiKey bindmonitor display graphicdump makelink remrad time
52-
syn keyword amiKey blanker iconedit more rename type
53-
syn keyword amiKey break ed icontrol mount resident unalias
54-
syn keyword amiKey calculator edit iconx newcli run unset
55-
syn keyword amiKey cd endcli ihelp newshell say unsetenv
56-
syn keyword amiKey changetaskpri endshell info nocapslock screenmode version
57-
syn keyword amiKey clock eval initprinter nofastmem search wait
58-
syn keyword amiKey cmd exchange input overscan serial wbpattern
59-
syn keyword amiKey colors execute install palette set which
60-
syn keyword amiKey conclip failat iprefs path setclock why
61-
62-
" comments
63-
syn cluster amiCommentGroup contains=amiTodo,@Spell
64-
syn case ignore
65-
syn keyword amiTodo contained todo
66-
syn case match
67-
syn match amiComment ";.*$" contains=amiCommentGroup
14+
" Directives
15+
syn match amiDirective "^\.\(key\|k\)\>.*$" contains=amiTemplate
16+
syn match amiDirective "^\.\(bra\|ket\|dot\|dollar\|dol\|def\|default\)\>.*$"
6817

69-
" sync
70-
syn sync lines=50
18+
" Template arguments
19+
syn match amiTemplate contained "/[AKSNMF]\>"
7120

72-
" Define the default highlighting.
73-
if !exists("skip_amiga_syntax_inits")
21+
" Strings
22+
syn region amiString start=+"+ end=+"+ oneline contains=amiEscape,amiVar,amiSubst,@Spell
23+
24+
" Escape sequences
25+
syn match amiEscape contained "\*[nNeE"*]"
26+
27+
" Numbers
28+
syn match amiNumber "\<\d\+\>"
29+
30+
" Variables
31+
syn match amiVar "\$[a-zA-Z_][a-zA-Z0-9_]*"
32+
syn match amiVar "\$\$"
33+
34+
" Parameters
35+
syn region amiSubst start="<\a" end=">" oneline contains=amiVar
36+
syn match amiSubst "<\$\$>"
37+
38+
" Devices / assigns / paths
39+
syn match amiPath "\<[a-zA-Z][a-zA-Z0-9]*:[^ \t]*"
40+
41+
" Redirection
42+
syn match amiOperator ">>"
43+
syn match amiOperator "[<>|]"
7444

75-
hi def link amiAlias Type
76-
hi def link amiComment Comment
77-
hi def link amiDev Type
78-
hi def link amiEcho String
79-
hi def link amiElse Statement
80-
hi def link amiError Error
81-
hi def link amiKey Statement
82-
hi def link amiNumber Number
83-
hi def link amiString String
84-
hi def link amiTest Special
45+
" Control flow
46+
syn region amiIfBlock matchgroup=amiConditional start="\<IF\>" matchgroup=amiConditional end="\<ENDIF\>" contains=ALLBUT,amiIfError
47+
syn keyword amiIfError ELSE ENDIF
48+
syn keyword amiElse contained ELSE
49+
syn keyword amiConditional SKIP ENDSKIP
50+
syn keyword amiLabel LAB
51+
syn keyword amiRepeat FOREACH
8552

53+
" Conditions
54+
syn keyword amiCondition contained NOT WARN ERROR FAIL EQ GT GE VAL EXISTS
55+
56+
" Echo
57+
syn region amiEcho matchgroup=amiCommand start="\<echo\>" end="$" oneline contains=amiComment,amiVar,amiSubst,amiBacktick,amiEscape
58+
59+
" Commands
60+
syn keyword amiCommand ADDAUDIOMODES
61+
syn keyword amiCommand ADDBUFFERS
62+
syn keyword amiCommand ADDDATATYPES
63+
syn keyword amiCommand ADDMONITOR
64+
syn keyword amiCommand ADDNETINTERFACE
65+
syn keyword amiCommand ADDNETROUTE
66+
syn keyword amiCommand ALIAS
67+
syn keyword amiCommand APPLISTINFO
68+
syn keyword amiCommand ARP
69+
syn keyword amiCommand ASK
70+
syn keyword amiCommand ASSIGN
71+
syn keyword amiCommand AVAIL
72+
syn keyword amiCommand BINDDRIVERS
73+
syn keyword amiCommand BINDMONITOR
74+
syn keyword amiCommand BREAK
75+
syn keyword amiCommand BUILDMAPTABLE
76+
syn keyword amiCommand CACHESTAT
77+
syn keyword amiCommand CD
78+
syn keyword amiCommand CHANGETASKPRI
79+
syn keyword amiCommand CHARSETCONVERT
80+
syn keyword amiCommand CLIP
81+
syn keyword amiCommand CLOCK
82+
syn keyword amiCommand CMD
83+
syn keyword amiCommand CONCLIP
84+
syn keyword amiCommand CONFIGURENETINTERFACE
85+
syn keyword amiCommand COPY
86+
syn keyword amiCommand COUNTLINES
87+
syn keyword amiCommand CPU
88+
syn keyword amiCommand CROSSDOS
89+
syn keyword amiCommand CUT
90+
syn keyword amiCommand DATE
91+
syn keyword amiCommand DELETE
92+
syn keyword amiCommand DELETENETROUTE
93+
syn keyword amiCommand DIR
94+
syn keyword amiCommand DISKCHANGE
95+
syn keyword amiCommand DISKCOPY
96+
syn keyword amiCommand DISKDOCTOR
97+
syn keyword amiCommand DISMOUNT
98+
syn keyword amiCommand ENDCLI
99+
syn keyword amiCommand ENDSHELL
100+
syn keyword amiCommand EVAL
101+
syn keyword amiCommand EXECUTE
102+
syn keyword amiCommand FAILAT
103+
syn keyword amiCommand FAULT
104+
syn keyword amiCommand FDTOOL
105+
syn keyword amiCommand FILENOTE
106+
syn keyword amiCommand FILESIZE
107+
syn keyword amiCommand FORMAT
108+
syn keyword amiCommand GET
109+
syn keyword amiCommand GETENV
110+
syn keyword amiCommand GETNETSTATUS
111+
syn keyword amiCommand GROUP
112+
syn keyword amiCommand HELP
113+
syn keyword amiCommand HI
114+
syn keyword amiCommand HISTORY
115+
syn keyword amiCommand IHELP
116+
syn keyword amiCommand INFO
117+
syn keyword amiCommand INITPRINTER
118+
syn keyword amiCommand INPUT
119+
syn keyword amiCommand INSTALL
120+
syn keyword amiCommand INTELLIFONT
121+
syn keyword amiCommand IPMON
122+
syn keyword amiCommand IPNAT
123+
syn keyword amiCommand JOIN
124+
syn keyword amiCommand KDEBUG
125+
syn keyword amiCommand LAB
126+
syn keyword amiCommand LIST
127+
syn keyword amiCommand LOADMONDRVS
128+
syn keyword amiCommand LOADRESOURCE
129+
syn keyword amiCommand LOADWB
130+
syn keyword amiCommand LOCALE
131+
syn keyword amiCommand LOCK
132+
syn keyword amiCommand MAKEDIR
133+
syn keyword amiCommand MAKELINK
134+
syn keyword amiCommand MEMSTAT
135+
syn keyword amiCommand MORE
136+
syn keyword amiCommand MOUNT
137+
syn keyword amiCommand MOUNTINFO
138+
syn keyword amiCommand MOVE
139+
syn keyword amiCommand NETLOGVIEWER
140+
syn keyword amiCommand NETSHUTDOWN
141+
syn keyword amiCommand NEWCLI
142+
syn keyword amiCommand NEWSHELL
143+
syn keyword amiCommand OWNER
144+
syn keyword amiCommand PATH
145+
syn keyword amiCommand PATHPART
146+
syn keyword amiCommand PIPE
147+
syn keyword amiCommand POINTER
148+
syn keyword amiCommand POOLSTAT
149+
syn keyword amiCommand POPCD
150+
syn keyword amiCommand PREPCARD
151+
syn keyword amiCommand PROMPT
152+
syn keyword amiCommand PROTECT
153+
syn keyword amiCommand PUSHCD
154+
syn keyword amiCommand QUIT
155+
syn keyword amiCommand REBOOT
156+
syn keyword amiCommand RELABEL
157+
syn keyword amiCommand RELOADAPPLIST
158+
syn keyword amiCommand REMOVENETINTERFACE
159+
syn keyword amiCommand REMRAD
160+
syn keyword amiCommand RENAME
161+
syn keyword amiCommand REQUESTCHOICE
162+
syn keyword amiCommand REQUESTFILE
163+
syn keyword amiCommand REQUESTSTRING
164+
syn keyword amiCommand RESIDENT
165+
syn keyword amiCommand ROADSHOWCONTROL
166+
syn keyword amiCommand RUN
167+
syn keyword amiCommand RX
168+
syn keyword amiCommand RXC
169+
syn keyword amiCommand RXLIB
170+
syn keyword amiCommand RXSET
171+
syn keyword amiCommand SAY
172+
syn keyword amiCommand SEARCH
173+
syn keyword amiCommand SET
174+
syn keyword amiCommand SETCLOCK
175+
syn keyword amiCommand SETDATE
176+
syn keyword amiCommand SETDOSDEBUG
177+
syn keyword amiCommand SETENV
178+
syn keyword amiCommand SETFONT
179+
syn keyword amiCommand SETFONTCHARSET
180+
syn keyword amiCommand SETKEYBOARD
181+
syn keyword amiCommand SETMAP
182+
syn keyword amiCommand SETPATCH
183+
syn keyword amiCommand SHOW68LOADS
184+
syn keyword amiCommand SHOWAPPLIST
185+
syn keyword amiCommand SHOWNETSTATUS
186+
syn keyword amiCommand SMARTCTL
187+
syn keyword amiCommand SORT
188+
syn keyword amiCommand SOUNDPLAYER
189+
syn keyword amiCommand STACK
190+
syn keyword amiCommand STATUS
191+
syn keyword amiCommand SWAPCD
192+
syn keyword amiCommand TYPE
193+
syn keyword amiCommand UNALIAS
194+
syn keyword amiCommand UNSET
195+
syn keyword amiCommand UNSETENV
196+
syn keyword amiCommand UPTIME
197+
syn keyword amiCommand URLOPEN
198+
syn keyword amiCommand VERSION
199+
syn keyword amiCommand WAIT
200+
syn keyword amiCommand WAITFORPORT
201+
syn keyword amiCommand WBRUN
202+
syn keyword amiCommand WBSTARTUPCTRL
203+
syn keyword amiCommand WHICH
204+
syn keyword amiCommand WHY
205+
206+
" Options
207+
syn keyword amiOption ADD
208+
syn keyword amiOption ALL
209+
syn keyword amiOption APPEND
210+
syn keyword amiOption BACK
211+
syn keyword amiOption BODY
212+
syn keyword amiOption BUF
213+
syn keyword amiOption BUFFER
214+
syn keyword amiOption CASE
215+
syn keyword amiOption CHARSET
216+
syn keyword amiOption CHECK
217+
syn keyword amiOption CLEAR
218+
syn keyword amiOption CLONE
219+
syn keyword amiOption COPYLINKS
220+
syn keyword amiOption DATES
221+
syn keyword amiOption DEBUG
222+
syn keyword amiOption DEVICE
223+
syn keyword amiOption DIRS
224+
syn keyword amiOption DRIVE
225+
syn keyword amiOption FILE
226+
syn keyword amiOption FILES
227+
syn keyword amiOption FOLLOWLINKS
228+
syn keyword amiOption FORCE
229+
syn keyword amiOption FROM
230+
syn keyword amiOption FULL
231+
syn keyword amiOption HARD
232+
syn keyword amiOption INTERACTIVE
233+
syn keyword amiOption LFORMAT
234+
syn keyword amiOption LOAD
235+
syn keyword amiOption LOCK
236+
syn keyword amiOption MULTI
237+
syn keyword amiOption NAME
238+
syn keyword amiOption NEGATIVE
239+
syn keyword amiOption NOHEAD
240+
syn keyword amiOption NONUM
241+
syn keyword amiOption NOREPLACE
242+
syn keyword amiOption NOREQ
243+
syn keyword amiOption NUMERIC
244+
syn keyword amiOption OFF
245+
syn keyword amiOption ON
246+
syn keyword amiOption PATTERN
247+
syn keyword amiOption POSITIVE
248+
syn keyword amiOption PREPEND
249+
syn keyword amiOption PUBSCREEN
250+
syn keyword amiOption QUICK
251+
syn keyword amiOption QUIET
252+
syn keyword amiOption REMOVE
253+
syn keyword amiOption REPLACE
254+
syn keyword amiOption RESET
255+
syn keyword amiOption SAVE
256+
syn keyword amiOption SHOW
257+
syn keyword amiOption SINCE
258+
syn keyword amiOption SOFT
259+
syn keyword amiOption SORT
260+
syn keyword amiOption SUB
261+
syn keyword amiOption TIMEOUT
262+
syn keyword amiOption TITLE
263+
syn keyword amiOption TO
264+
syn keyword amiOption UNLOCK
265+
syn keyword amiOption UPTO
266+
syn keyword amiOption VERBOSE
267+
syn keyword amiOption WITH
268+
269+
" Comments
270+
syn match amiComment ";.*$" contains=amiTodo,@Spell
271+
syn match amiComment "^\.\s.*$" contains=amiTodo,@Spell
272+
syn match amiComment "^\.$"
273+
274+
" Miscellaneous
275+
syn keyword amiTodo contained TODO FIXME XXX NOTE
276+
syn region amiBacktick start="`" end="`" oneline
277+
278+
" Define the default highlighting.
279+
if !exists("skip_amiga_syntax_inits")
280+
hi def link amiBacktick Special
281+
hi def link amiCommand Statement
282+
hi def link amiComment Comment
283+
hi def link amiCondition Special
284+
hi def link amiConditional Conditional
285+
hi def link amiDirective PreProc
286+
hi def link amiEcho String
287+
hi def link amiElse Conditional
288+
hi def link amiEscape SpecialChar
289+
hi def link amiIfError Error
290+
hi def link amiLabel Label
291+
hi def link amiNumber Number
292+
hi def link amiOperator Operator
293+
hi def link amiOption Identifier
294+
hi def link amiPath Type
295+
hi def link amiRepeat Repeat
296+
hi def link amiString String
297+
hi def link amiSubst Special
298+
hi def link amiTemplate Type
299+
hi def link amiTodo Todo
300+
hi def link amiVar Special
86301
endif
87-
let b:current_syntax = "amiga"
88302

89-
" vim:ts=15
303+
let b:current_syntax = "amiga"

0 commit comments

Comments
 (0)