Commit: runtime(amiga): revamp syntax highlighting and add new maintainer

1 view
Skip to first unread message

Christian Brabandt

unread,
Mar 26, 2026, 3:32:15 PM (15 hours ago) Mar 26
to vim...@googlegroups.com
runtime(amiga): revamp syntax highlighting and add new maintainer

Commit: https://github.com/vim/vim/commit/c84526dd296edbd1cc31e24e43fa2f5f5501d507
Author: Ola S枚der <rolfk...@gmail.com>
Date: Thu Mar 26 19:25:30 2026 +0000

runtime(amiga): revamp syntax highlighting and add new maintainer

closes: https://github.com/vim/vim/issues/19825

Signed-off-by: Ola S枚der <rolfk...@gmail.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS
index c82e04a7b..17458f2d2 100644
--- a/.github/MAINTAINERS
+++ b/.github/MAINTAINERS
@@ -472,6 +472,7 @@ runtime/syntax/shared/hgcommitDiff.vim @vegerot
runtime/syntax/abaqus.vim @costerwi
runtime/syntax/abnf.vim @A4-Tacks
runtime/syntax/aidl.vim @dpelle
+runtime/syntax/amiga.vim @sodero
runtime/syntax/ant.vim @dkearns
runtime/syntax/antlr4.vim @jiangyinzuo
runtime/syntax/arduino.vim @johshoff
diff --git a/runtime/syntax/amiga.vim b/runtime/syntax/amiga.vim
index 940219648..858c1a430 100644
--- a/runtime/syntax/amiga.vim
+++ b/runtime/syntax/amiga.vim
@@ -1,89 +1,303 @@
" Vim syntax file
-" Language: AmigaDos
-" Maintainer: This runtime file is looking for a new maintainer.
-" Former Maintainer: Charles E. Campbell
-" Last Change: Aug 31, 2016
-" Version: 10
-" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_AMIGA
-
-" quit when a syntax file was already loaded
+" Language: AmigaDOS
+" Maintainer: Ola S枚der <rolfk...@gmail.com>
+" First Author: Charles E. Campbell
+" Last Change: 2026 Mar 25
+" Version: 11
+
if exists("b:current_syntax")
- finish
+ finish
endif

syn case ignore

-" Amiga Devices
-syn match amiDev "\(par\|ser\|prt\|con\|nil\):"
-
-" Amiga aliases and paths
-syn match amiAlias "\<[a-zA-Z][a-zA-Z0-9]\+:"
-syn match amiAlias "\<[a-zA-Z][a-zA-Z0-9]\+:[a-zA-Z0-9/]*/"
-
-" strings
-syn region amiString start=+"+ end=+"+ oneline contains=@Spell
-
-" numbers
-syn match amiNumber "\<\d\+\>"
-
-" Logic flow
-syn region amiFlow matchgroup=Statement start="if" matchgroup=Statement end="endif" contains=ALL
-syn keyword amiFlow skip endskip
-syn match amiError "else\|endif"
-syn keyword amiElse contained else
-
-syn keyword amiTest contained not warn error fail eq gt ge val exists
-
-" echo exception
-syn region amiEcho matchgroup=Statement start="\<echo\>" end="$" oneline contains=amiComment
-syn region amiEcho matchgroup=Statement start="^\.[bB][rR][aA]" end="$" oneline
-syn region amiEcho matchgroup=Statement start="^\.[kK][eE][tT]" end="$" oneline
-
-" commands
-syn keyword amiKey addbuffers copy fault join pointer setdate
-syn keyword amiKey addmonitor cpu filenote keyshow printer setenv
-syn keyword amiKey alias date fixfonts lab printergfx setfont
-syn keyword amiKey ask delete fkey list printfiles setmap
-syn keyword amiKey assign dir font loadwb prompt setpatch
-syn keyword amiKey autopoint diskchange format lock protect sort
-syn keyword amiKey avail diskcopy get magtape quit stack
-syn keyword amiKey binddrivers diskdoctor getenv makedir relabel status
-syn keyword amiKey bindmonitor display graphicdump makelink remrad time
-syn keyword amiKey blanker iconedit more rename type
-syn keyword amiKey break ed icontrol mount resident unalias
-syn keyword amiKey calculator edit iconx newcli run unset
-syn keyword amiKey cd endcli ihelp newshell say unsetenv
-syn keyword amiKey changetaskpri endshell info nocapslock screenmode version
-syn keyword amiKey clock eval initprinter nofastmem search wait
-syn keyword amiKey cmd exchange input overscan serial wbpattern
-syn keyword amiKey colors execute install palette set which
-syn keyword amiKey conclip failat iprefs path setclock why
-
-" comments
-syn cluster amiCommentGroup contains=amiTodo,@Spell
-syn case ignore
-syn keyword amiTodo contained todo
-syn case match
-syn match amiComment ";.*$" contains=amiCommentGroup
+" Directives
+syn match amiDirective "^\.\(key\|k\)\>.*$" contains=amiTemplate
+syn match amiDirective "^\.\(bra\|ket\|dot\|dollar\|dol\|def\|default\)\>.*$"

-" sync
-syn sync lines=50
+" Template arguments
+syn match amiTemplate contained "/[AKSNMF]\>"

-" Define the default highlighting.
-if !exists("skip_amiga_syntax_inits")
+" Strings
+syn region amiString start=+"+ end=+"+ oneline contains=amiEscape,amiVar,amiSubst,@Spell
+
+" Escape sequences
+syn match amiEscape contained "\*[nNeE"*]"
+
+" Numbers
+syn match amiNumber "\<\d\+\>"
+
+" Variables
+syn match amiVar "\$[a-zA-Z_][a-zA-Z0-9_]*"
+syn match amiVar "\$\$"
+
+" Parameters
+syn region amiSubst start="< " end=">" oneline contains=amiVar
+syn match amiSubst "<\$\$>"
+
+" Devices / assigns / paths
+syn match amiPath "\<[a-zA-Z][a-zA-Z0-9]*:[^ ]*"
+
+" Redirection
+syn match amiOperator ">>"
+syn match amiOperator "[<>|]"

- hi def link amiAlias Type
- hi def link amiComment Comment
- hi def link amiDev Type
- hi def link amiEcho String
- hi def link amiElse Statement
- hi def link amiError Error
- hi def link amiKey Statement
- hi def link amiNumber Number
- hi def link amiString String
- hi def link amiTest Special
+" Control flow
+syn region amiIfBlock matchgroup=amiConditional start="\<IF\>" matchgroup=amiConditional end="\<ENDIF\>" contains=ALLBUT,amiIfError
+syn keyword amiIfError ELSE ENDIF
+syn keyword amiElse contained ELSE
+syn keyword amiConditional SKIP ENDSKIP
+syn keyword amiLabel LAB
+syn keyword amiRepeat FOREACH

+" Conditions
+syn keyword amiCondition contained NOT WARN ERROR FAIL EQ GT GE VAL EXISTS
+
+" Echo
+syn region amiEcho matchgroup=amiCommand start="\<echo\>" end="$" oneline contains=amiComment,amiVar,amiSubst,amiBacktick,amiEscape
+
+" Commands
+syn keyword amiCommand ADDAUDIOMODES
+syn keyword amiCommand ADDBUFFERS
+syn keyword amiCommand ADDDATATYPES
+syn keyword amiCommand ADDMONITOR
+syn keyword amiCommand ADDNETINTERFACE
+syn keyword amiCommand ADDNETROUTE
+syn keyword amiCommand ALIAS
+syn keyword amiCommand APPLISTINFO
+syn keyword amiCommand ARP
+syn keyword amiCommand ASK
+syn keyword amiCommand ASSIGN
+syn keyword amiCommand AVAIL
+syn keyword amiCommand BINDDRIVERS
+syn keyword amiCommand BINDMONITOR
+syn keyword amiCommand BREAK
+syn keyword amiCommand BUILDMAPTABLE
+syn keyword amiCommand CACHESTAT
+syn keyword amiCommand CD
+syn keyword amiCommand CHANGETASKPRI
+syn keyword amiCommand CHARSETCONVERT
+syn keyword amiCommand CLIP
+syn keyword amiCommand CLOCK
+syn keyword amiCommand CMD
+syn keyword amiCommand CONCLIP
+syn keyword amiCommand CONFIGURENETINTERFACE
+syn keyword amiCommand COPY
+syn keyword amiCommand COUNTLINES
+syn keyword amiCommand CPU
+syn keyword amiCommand CROSSDOS
+syn keyword amiCommand CUT
+syn keyword amiCommand DATE
+syn keyword amiCommand DELETE
+syn keyword amiCommand DELETENETROUTE
+syn keyword amiCommand DIR
+syn keyword amiCommand DISKCHANGE
+syn keyword amiCommand DISKCOPY
+syn keyword amiCommand DISKDOCTOR
+syn keyword amiCommand DISMOUNT
+syn keyword amiCommand ENDCLI
+syn keyword amiCommand ENDSHELL
+syn keyword amiCommand EVAL
+syn keyword amiCommand EXECUTE
+syn keyword amiCommand FAILAT
+syn keyword amiCommand FAULT
+syn keyword amiCommand FDTOOL
+syn keyword amiCommand FILENOTE
+syn keyword amiCommand FILESIZE
+syn keyword amiCommand FORMAT
+syn keyword amiCommand GET
+syn keyword amiCommand GETENV
+syn keyword amiCommand GETNETSTATUS
+syn keyword amiCommand GROUP
+syn keyword amiCommand HELP
+syn keyword amiCommand HI
+syn keyword amiCommand HISTORY
+syn keyword amiCommand IHELP
+syn keyword amiCommand INFO
+syn keyword amiCommand INITPRINTER
+syn keyword amiCommand INPUT
+syn keyword amiCommand INSTALL
+syn keyword amiCommand INTELLIFONT
+syn keyword amiCommand IPMON
+syn keyword amiCommand IPNAT
+syn keyword amiCommand JOIN
+syn keyword amiCommand KDEBUG
+syn keyword amiCommand LAB
+syn keyword amiCommand LIST
+syn keyword amiCommand LOADMONDRVS
+syn keyword amiCommand LOADRESOURCE
+syn keyword amiCommand LOADWB
+syn keyword amiCommand LOCALE
+syn keyword amiCommand LOCK
+syn keyword amiCommand MAKEDIR
+syn keyword amiCommand MAKELINK
+syn keyword amiCommand MEMSTAT
+syn keyword amiCommand MORE
+syn keyword amiCommand MOUNT
+syn keyword amiCommand MOUNTINFO
+syn keyword amiCommand MOVE
+syn keyword amiCommand NETLOGVIEWER
+syn keyword amiCommand NETSHUTDOWN
+syn keyword amiCommand NEWCLI
+syn keyword amiCommand NEWSHELL
+syn keyword amiCommand OWNER
+syn keyword amiCommand PATH
+syn keyword amiCommand PATHPART
+syn keyword amiCommand PIPE
+syn keyword amiCommand POINTER
+syn keyword amiCommand POOLSTAT
+syn keyword amiCommand POPCD
+syn keyword amiCommand PREPCARD
+syn keyword amiCommand PROMPT
+syn keyword amiCommand PROTECT
+syn keyword amiCommand PUSHCD
+syn keyword amiCommand QUIT
+syn keyword amiCommand REBOOT
+syn keyword amiCommand RELABEL
+syn keyword amiCommand RELOADAPPLIST
+syn keyword amiCommand REMOVENETINTERFACE
+syn keyword amiCommand REMRAD
+syn keyword amiCommand RENAME
+syn keyword amiCommand REQUESTCHOICE
+syn keyword amiCommand REQUESTFILE
+syn keyword amiCommand REQUESTSTRING
+syn keyword amiCommand RESIDENT
+syn keyword amiCommand ROADSHOWCONTROL
+syn keyword amiCommand RUN
+syn keyword amiCommand RX
+syn keyword amiCommand RXC
+syn keyword amiCommand RXLIB
+syn keyword amiCommand RXSET
+syn keyword amiCommand SAY
+syn keyword amiCommand SEARCH
+syn keyword amiCommand SET
+syn keyword amiCommand SETCLOCK
+syn keyword amiCommand SETDATE
+syn keyword amiCommand SETDOSDEBUG
+syn keyword amiCommand SETENV
+syn keyword amiCommand SETFONT
+syn keyword amiCommand SETFONTCHARSET
+syn keyword amiCommand SETKEYBOARD
+syn keyword amiCommand SETMAP
+syn keyword amiCommand SETPATCH
+syn keyword amiCommand SHOW68LOADS
+syn keyword amiCommand SHOWAPPLIST
+syn keyword amiCommand SHOWNETSTATUS
+syn keyword amiCommand SMARTCTL
+syn keyword amiCommand SORT
+syn keyword amiCommand SOUNDPLAYER
+syn keyword amiCommand STACK
+syn keyword amiCommand STATUS
+syn keyword amiCommand SWAPCD
+syn keyword amiCommand TYPE
+syn keyword amiCommand UNALIAS
+syn keyword amiCommand UNSET
+syn keyword amiCommand UNSETENV
+syn keyword amiCommand UPTIME
+syn keyword amiCommand URLOPEN
+syn keyword amiCommand VERSION
+syn keyword amiCommand WAIT
+syn keyword amiCommand WAITFORPORT
+syn keyword amiCommand WBRUN
+syn keyword amiCommand WBSTARTUPCTRL
+syn keyword amiCommand WHICH
+syn keyword amiCommand WHY
+
+" Options
+syn keyword amiOption ADD
+syn keyword amiOption ALL
+syn keyword amiOption APPEND
+syn keyword amiOption BACK
+syn keyword amiOption BODY
+syn keyword amiOption BUF
+syn keyword amiOption BUFFER
+syn keyword amiOption CASE
+syn keyword amiOption CHARSET
+syn keyword amiOption CHECK
+syn keyword amiOption CLEAR
+syn keyword amiOption CLONE
+syn keyword amiOption COPYLINKS
+syn keyword amiOption DATES
+syn keyword amiOption DEBUG
+syn keyword amiOption DEVICE
+syn keyword amiOption DIRS
+syn keyword amiOption DRIVE
+syn keyword amiOption FILE
+syn keyword amiOption FILES
+syn keyword amiOption FOLLOWLINKS
+syn keyword amiOption FORCE
+syn keyword amiOption FROM
+syn keyword amiOption FULL
+syn keyword amiOption HARD
+syn keyword amiOption INTERACTIVE
+syn keyword amiOption LFORMAT
+syn keyword amiOption LOAD
+syn keyword amiOption LOCK
+syn keyword amiOption MULTI
+syn keyword amiOption NAME
+syn keyword amiOption NEGATIVE
+syn keyword amiOption NOHEAD
+syn keyword amiOption NONUM
+syn keyword amiOption NOREPLACE
+syn keyword amiOption NOREQ
+syn keyword amiOption NUMERIC
+syn keyword amiOption OFF
+syn keyword amiOption ON
+syn keyword amiOption PATTERN
+syn keyword amiOption POSITIVE
+syn keyword amiOption PREPEND
+syn keyword amiOption PUBSCREEN
+syn keyword amiOption QUICK
+syn keyword amiOption QUIET
+syn keyword amiOption REMOVE
+syn keyword amiOption REPLACE
+syn keyword amiOption RESET
+syn keyword amiOption SAVE
+syn keyword amiOption SHOW
+syn keyword amiOption SINCE
+syn keyword amiOption SOFT
+syn keyword amiOption SORT
+syn keyword amiOption SUB
+syn keyword amiOption TIMEOUT
+syn keyword amiOption TITLE
+syn keyword amiOption TO
+syn keyword amiOption UNLOCK
+syn keyword amiOption UPTO
+syn keyword amiOption VERBOSE
+syn keyword amiOption WITH
+
+" Comments
+syn match amiComment ";.*$" contains=amiTodo,@Spell
+syn match amiComment "^\.\s.*$" contains=amiTodo,@Spell
+syn match amiComment "^\.$"
+
+" Miscellaneous
+syn keyword amiTodo contained TODO FIXME XXX NOTE
+syn region amiBacktick start="`" end="`" oneline
+
+" Define the default highlighting.
+if !exists("skip_amiga_syntax_inits")
+ hi def link amiBacktick Special
+ hi def link amiCommand Statement
+ hi def link amiComment Comment
+ hi def link amiCondition Special
+ hi def link amiConditional Conditional
+ hi def link amiDirective PreProc
+ hi def link amiEcho String
+ hi def link amiElse Conditional
+ hi def link amiEscape SpecialChar
+ hi def link amiIfError Error
+ hi def link amiLabel Label
+ hi def link amiNumber Number
+ hi def link amiOperator Operator
+ hi def link amiOption Identifier
+ hi def link amiPath Type
+ hi def link amiRepeat Repeat
+ hi def link amiString String
+ hi def link amiSubst Special
+ hi def link amiTemplate Type
+ hi def link amiTodo Todo
+ hi def link amiVar Special
endif
-let b:current_syntax = "amiga"

-" vim:ts=15
+let b:current_syntax = "amiga"
Reply all
Reply to author
Forward
0 new messages