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

Commit: 
https://github.com/vim/vim/commit/c84526dd296edbd1cc31e24e43fa2f5f5501d507
Author: Ola S枚der <[email protected]>
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 <[email protected]>
    Signed-off-by: Christian Brabandt <[email protected]>

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 <[email protected]>
+" 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"

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1w5qP8-007Kqf-0k%40256bit.org.

Raspunde prin e-mail lui