# HG changeset patch # User Christian Brabandt # Date 1699087506 -3600 # Node ID 6e5d35187e4e08dd98b069bf97b7867a2592979b # Parent 7eca15861c0c70df7d6e2950ec031cd13685338b runtime(sh): Update sh syntax and add shDerefOffset to shDerefVarArray for bash (#13480) Commit: https://github.com/vim/vim/commit/ce3b0136c6d9d09af41969d3dc9634f115505a32 Author: Lucien Grondin Date: Sat Nov 4 09:41:37 2023 +0100 runtime(sh): Update sh syntax and add shDerefOffset to shDerefVarArray for bash (https://github.com/vim/vim/issues/13480) Add shDerefOffset to shDerefVarArray. Example code: ```bash declare -a a=({a..z}) echo "${a[@]:1:3}" ``` Signed-off-by: Christian Brabandt diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim --- a/runtime/syntax/sh.vim +++ b/runtime/syntax/sh.vim @@ -531,7 +531,7 @@ if exists("b:is_kornshell") || exists("b endif " sh ksh bash : ${var[... ]...} array reference: {{{1 -syn region shDerefVarArray contained matchgroup=shDeref start="\[" end="]" contains=@shCommandSubList nextgroup=shDerefOp,shDerefOpError +syn region shDerefVarArray contained matchgroup=shDeref start="\[" end="]" contains=@shCommandSubList nextgroup=shDerefOp,shDerefOpError,shDerefOffset " Special ${parameter OPERATOR word} handling: {{{1 " sh ksh bash : ${parameter:-word} word is default value