aboutsummaryrefslogtreecommitdiff
path: root/vim/after/syntax/sh.vim
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2017-11-11 01:07:14 +1300
committerTom Ryder <tom@sanctum.geek.nz>2017-11-11 01:07:14 +1300
commitaaf04871d944646225875d5e9cc31a967947c3fe (patch)
tree787efb73dabb6b9cda660ccde51e838b507a3dbd /vim/after/syntax/sh.vim
parent247b816a891162fe28b5e2f8a675435efbd71a12 (diff)
parentca7f441951b85595969eb0842f90784502fc2cc7 (diff)
downloaddotfiles-0.13.0.tar.gz (sig)
dotfiles-0.13.0.zip
Merge branch 'release/v0.13.0'v0.13.0
* release/v0.13.0: (30 commits) Bump version number to 0.13.0 Move mutt_mail.vim line select logic into plugin Add new mail_mutt.vim plugin, apply mappings Sort 'shortmess' flag settings alphabetically Add 'o' and 'O' back into 'shortmess' Set up individual flags for 'shortmess' Fix oii(1df) so it works as a pipe Use exists+ test rather than exists& Adjust some whitespace and comment layout Move matchit.vim sourcing into plugin.vim Rename netrw.vim to plugin.vim Remove 'shellslash' setting Move fedora.vim into os.vim Remove 'tildeop' setting Rearrange three smaller files into display.vim Move 'paste' options into terminal.vim Move wildmenu config into completion.vim Rename complete.vim to completion.vim Rename term.vim to terminal.vim Rename yank.vim to registers.vim ...
Diffstat (limited to 'vim/after/syntax/sh.vim')
-rw-r--r--vim/after/syntax/sh.vim19
1 files changed, 19 insertions, 0 deletions
diff --git a/vim/after/syntax/sh.vim b/vim/after/syntax/sh.vim
index ba209e99..8025c567 100644
--- a/vim/after/syntax/sh.vim
+++ b/vim/after/syntax/sh.vim
@@ -18,6 +18,11 @@ syntax clear shDerefWordError
" probably not worth keeping the error.
syntax clear shParenError
+" The syntax highlighter flags this code with an error on the final square
+" bracket: `case $foo in [![:ascii:]]) ;; esac`, but that's all legal. I'm not
+" yet sure how to fix it, so will just turn the error group for now.
+syntax clear shTestError
+
" Highlighting corrections specific to POSIX mode
if exists('b:is_posix')
@@ -100,6 +105,20 @@ if exists('b:is_posix')
\ PS4
\ PWD
+ " Core syntax/sh.vim thinks 'until' is a POSIX control structure keyword,
+ " but it isn't. Reset shRepeat and rebuild it with just 'while'. I only
+ " sort-of understand what this does, but it works.
+ syntax clear shRepeat
+ syntax region shRepeat
+ \ matchgroup=shLoop
+ \ start="\<while\_s" end="\<do\>"me=e-2
+ \ contains=@shLoopList
+
+ " Run some clustering that core syntax/sh.vim thinks doesn't apply to POSIX;
+ " this fixes while loops so they can be within other blocks.
+ syntax cluster shCaseList add=shRepeat
+ syntax cluster shFunctionList add=shRepeat
+
endif
" Some corrections for highlighting specific to the Bash mode