aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2019-05-17 22:53:43 +1200
committerTom Ryder <tom@sanctum.geek.nz>2019-05-17 22:53:43 +1200
commitd86981e8ade3fd879ad29c753e45ae923a024f65 (patch)
tree1b5c607d2dedf306b29ccb66fd7ee759f45015d0
parentMerge branch 'release/v4.29.0' (diff)
parentBump VERSION (diff)
downloaddotfiles-d86981e8ade3fd879ad29c753e45ae923a024f65.tar.gz
dotfiles-d86981e8ade3fd879ad29c753e45ae923a024f65.zip
Merge branch 'release/v4.30.0'v4.30.0
* release/v4.30.0: Bump VERSION Break up long lines in sh syntax file Update vim-perl-version-bump to v1.2.0 Update vim-sahara to v1.1.0 Update vim-shebang-create-exec to v0.3.0 Update vim-juvenile to v0.5.0 Split long lines with version/patch check pattern Break up long lines in PHP Vim compiler script Bind \L to toggle 'colorcolumn' Sort flags for options Remove overkill Windows path reduction Switch back to insecure HTML Tidy site URL Use <Bar> in multi-command mapping
-rw-r--r--3219
-rw-r--r--README.md2
-rw-r--r--VERSION4
-rw-r--r--vim/after/ftplugin/sh.vim3
-rw-r--r--vim/after/syntax/sh.vim12
m---------vim/bundle/juvenile0
m---------vim/bundle/perl_version_bump0
m---------vim/bundle/sahara0
m---------vim/bundle/shebang_create_exec0
-rw-r--r--vim/compiler/bash.vim3
-rw-r--r--vim/compiler/ksh.vim3
-rw-r--r--vim/compiler/perlcritic.vim3
-rw-r--r--vim/compiler/php.vim16
-rw-r--r--vim/compiler/sh.vim3
-rw-r--r--vim/compiler/shellcheck.vim3
-rw-r--r--vim/compiler/vint.vim3
-rw-r--r--vim/compiler/zsh.vim3
-rw-r--r--vim/vimrc10
-rw-r--r--vim/vimrc.stub.vim7
19 files changed, 268 insertions, 26 deletions
diff --git a/3 b/3
new file mode 100644
index 00000000..a63baadd
--- /dev/null
+++ b/3
@@ -0,0 +1,219 @@
+" Remove g:is_posix if we resorted to it in order to get correct POSIX sh
+" highlighting with older Vim runtime files
+if exists('is_posix')
+ unlet! is_posix is_kornshell
+endif
+
+" If we know we have another shell type, clear away the others completely, now
+" that core syntax/sh.vim is done prodding /bin/sh to determine the system
+" shell type (which I don't care about).
+if exists('b:is_bash')
+ unlet! b:is_sh b:is_posix b:is_kornshell
+elseif exists('b:is_kornshell')
+ unlet! b:is_sh b:is_posix
+elseif exists('b:is_posix')
+ unlet! b:is_sh
+endif
+
+" The syntax highlighter seems to flag '/baz' in '"${foo:-"$bar"/baz}"' as an
+" error, which it isn't, at least in POSIX sh, Bash, and Ksh.
+syntax clear shDerefWordError
+
+" The syntax highlighter doesn't match parens for subshells for 'if' tests
+" correctly if they're on separate lines. This happens enough that it's
+" 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')
+
+ " Highlight some commands that are both defined by POSIX and builtin
+ " commands in dash, as a rough but useable proxy for 'shell builtins'. This
+ " list was mostly wrested from `man 1 dash`. Also include control structure
+ " keywords like `break`, `continue`, and `return`.
+ syntax clear shStatement
+ syntax cluster shCommandSubList add=shStatement
+ syntax cluster shCaseList add=shStatement
+ syntax keyword shStatement
+ \ alias
+ \ bg
+ \ break
+ \ cd
+ \ command
+ \ continue
+ \ echo
+ \ eval
+ \ exec
+ \ exit
+ \ export
+ \ fc
+ \ fg
+ \ getopts
+ \ hash
+ \ kill
+ \ printf
+ \ pwd
+ \ read
+ \ readonly
+ \ return
+ \ set
+ \ shift
+ \ test
+ \ times
+ \ trap
+ \ true
+ \ type
+ \ ulimit
+ \ umask
+ \ unalias
+ \ unset
+ \ wait
+
+ " Core syntax/sh.vim puts IFS and other variables that affect shell function
+ " in another color, but a subset of them actually apply to POSIX shell too
+ " (and plain Bourne). These are selected by searching the POSIX manpages. I
+ " added NLSPATH too, which wasn't in the original.
+ syntax clear shShellVariables
+ syntax cluster shCommandSubList add=shShellVariables
+ syntax keyword shShellVariables
+ \ CDPATH
+ \ ENV
+ \ FCEDIT
+ \ HISTFILE
+ \ HISTSIZE
+ \ HISTTIMEFORMAT
+ \ HOME
+ \ IFS
+ \ LANG
+ \ LC_ALL
+ \ LC_COLLATE
+ \ LC_CTYPE
+ \ LC_MESSAGES
+ \ LC_NUMERIC
+ \ LINENO
+ \ MAIL
+ \ MAILCHECK
+ \ MAILPATH
+ \ NLSPATH
+ \ OLDPWD
+ \ OPTARG
+ \ OPTERR
+ \ OPTIND
+ \ PATH
+ \ PS1
+ \ PS2
+ \ PS3
+ \ 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
+
+ " ${foo%bar}, ${foo%%bar}, ${foo#bar}, and ${foo##bar} are all valid forms
+ " of parameter expansion in POSIX, but sh.vim makes them conditional on
+ " Bash or Korn shell. We reinstate them (slightly adapted) here.
+ syntax match shDerefOp contained
+ \ '##\|#\|%%\|%'
+ \ nextgroup=@shDerefPatternList
+ syntax match shDerefPattern contained
+ \ '[^{}]\+'
+ \ contains=shDeref,shDerefEscape,shDerefPattern,shDerefSimple,shDerefString
+ \,shDerefString,shCommandSub
+ \ nextgroup=shDerefPattern
+ syntax region shDerefPattern contained
+ \ start='{' end='}'
+ \ contains=shDeref,shDerefSimple,shDerefString,shCommandSub
+ \ nextgroup=shDerefPattern
+
+endif
+
+" Some corrections for highlighting specific to the Bash mode
+if exists('b:is_bash')
+
+ " I don't like bashAdminStatement; these are not keywords, they're just
+ " strings for init scripts.
+ syntax clear bashAdminStatement
+
+ " Reduce bashStatement down to just builtins; highlighting 'grep' is not
+ " very useful. This list was taken from `compgen -A helptopic` on Bash
+ " 4.4.5.
+ syntax clear bashStatement
+ syntax keyword bashStatement
+ \ .
+ \ :
+ \ alias
+ \ bg
+ \ bind
+ \ break
+ \ builtin
+ \ caller
+ \ cd
+ \ command
+ \ compgen
+ \ complete
+ \ compopt
+ \ continue
+ \ coproc
+ \ dirs
+ \ disown
+ \ echo
+ \ enable
+ \ eval
+ \ exec
+ \ exit
+ \ false
+ \ fc
+ \ fg
+ \ function
+ \ getopts
+ \ hash
+ \ help
+ \ history
+ \ jobs
+ \ kill
+ \ let
+ \ logout
+ \ mapfile
+ \ popd
+ \ printf
+ \ pushd
+ \ pwd
+ \ read
+ \ readarray
+ \ readonly
+ \ return
+ \ select
+ \ set
+ \ shift
+ \ shopt
+ \ source
+ \ suspend
+ \ test
+ \ time
+ \ times
+ \ trap
+ \ true
+ \ type
+ \ ulimit
+ \ umask
+ \ unalias
+ \ until
+ \ variables
+ \ wait
+endif
diff --git a/README.md b/README.md
index 3a5fa11c..ffaa23db 100644
--- a/README.md
+++ b/README.md
@@ -110,7 +110,7 @@ Configuration is included for:
the rxvt terminal emulator with Unicode support
* [Subversion](https://subversion.apache.org/) -- Apache Subversion, a version
control system
-* [tidy](https://www.html-tidy.org/) -- HTML/XHTML linter and tidier
+* [tidy](http://www.html-tidy.org/) -- HTML/XHTML linter and tidier
* [tmux](https://tmux.github.io/) -- Terminal multiplexer similar to GNU Screen
* [Vim](https://www.vim.org/) -- Vi IMproved, a text editor
* [Neovim](https://neovim.io/) -- An "emphatic fork" of Vim
diff --git a/VERSION b/VERSION
index 29f7527e..095091be 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-tejr dotfiles v4.29.0
-Thu May 16 12:25:40 UTC 2019
+tejr dotfiles v4.30.0
+Fri May 17 10:53:43 UTC 2019
diff --git a/vim/after/ftplugin/sh.vim b/vim/after/ftplugin/sh.vim
index 7ded5134..e7bd21dc 100644
--- a/vim/after/ftplugin/sh.vim
+++ b/vim/after/ftplugin/sh.vim
@@ -24,7 +24,8 @@ let b:undo_ftplugin .= '|unlet b:current_compiler b:sh_check_compiler'
" Resort to g:is_posix for correct syntax on older runtime files
" 8.1.257 updated the runtime files to include a fix for this
if exists('b:is_posix')
- \ && (v:version < 800 || v:version == 800 && !has('patch257'))
+ \ && (v:version < 800
+ \ || v:version == 800 && !has('patch257'))
let is_posix = 1
endif
diff --git a/vim/after/syntax/sh.vim b/vim/after/syntax/sh.vim
index 797bdab9..af7670d5 100644
--- a/vim/after/syntax/sh.vim
+++ b/vim/after/syntax/sh.vim
@@ -133,11 +133,19 @@ if exists('b:is_posix')
\ nextgroup=@shDerefPatternList
syntax match shDerefPattern contained
\ '[^{}]\+'
- \ contains=shDeref,shDerefSimple,shDerefPattern,shDerefString,shCommandSub,shDerefEscape
+ \ contains=shDeref
+ \,shCommandSub
+ \,shDerefEscape
+ \,shDerefPattern
+ \,shDerefSimple
+ \,shDerefString
\ nextgroup=shDerefPattern
syntax region shDerefPattern contained
\ start='{' end='}'
- \ contains=shDeref,shDerefSimple,shDerefString,shCommandSub
+ \ contains=shDeref
+ \,shCommandSub
+ \,shDerefSimple
+ \,shDerefString
\ nextgroup=shDerefPattern
endif
diff --git a/vim/bundle/juvenile b/vim/bundle/juvenile
-Subproject 6ce5b57d15a26a42c7c5bbe1e7611485e43e4eb
+Subproject d85fc3ea03a0ee3fbe2bde6bb3b61c8a9aa164c
diff --git a/vim/bundle/perl_version_bump b/vim/bundle/perl_version_bump
-Subproject 660609b99f6e82c769096f6bd3b6d0a615c3ebc
+Subproject beb24fe380976121557e6935886afd4ea8f19af
diff --git a/vim/bundle/sahara b/vim/bundle/sahara
-Subproject 8323dbdf27870a0845987cfacb49950b23dbbee
+Subproject 901fdb72c3fe74ee5f0aa49c2fda52af3cbde08
diff --git a/vim/bundle/shebang_create_exec b/vim/bundle/shebang_create_exec
-Subproject 1d9d72c1bce46d7b88ea1b765d890e56dc91384
+Subproject 8cf225b3f1630ed2c44ced62112eb48ae70c15c
diff --git a/vim/compiler/bash.vim b/vim/compiler/bash.vim
index ca418c24..13271e2b 100644
--- a/vim/compiler/bash.vim
+++ b/vim/compiler/bash.vim
@@ -9,7 +9,8 @@ endif
" 7.4.191 is the earliest version with the :S file name modifier, which we
" really should use if we can
-if v:version >= 704 || v:version == 704 && has('patch191')
+if v:version >= 704
+ \ || v:version == 704 && has('patch191')
CompilerSet makeprg=bash\ -n\ --\ %:S
else
CompilerSet makeprg=bash\ -n\ --\ %
diff --git a/vim/compiler/ksh.vim b/vim/compiler/ksh.vim
index 759aae02..5dbff5a1 100644
--- a/vim/compiler/ksh.vim
+++ b/vim/compiler/ksh.vim
@@ -9,7 +9,8 @@ endif
" 7.4.191 is the earliest version with the :S file name modifier, which we
" really should use if we can
-if v:version >= 704 || v:version == 704 && has('patch191')
+if v:version >= 704
+ \ || v:version == 704 && has('patch191')
CompilerSet makeprg=ksh\ -n\ --\ %:S
else
CompilerSet makeprg=ksh\ -n\ --\ %
diff --git a/vim/compiler/perlcritic.vim b/vim/compiler/perlcritic.vim
index 341fc9c8..b89ee76b 100644
--- a/vim/compiler/perlcritic.vim
+++ b/vim/compiler/perlcritic.vim
@@ -9,7 +9,8 @@ endif
" 7.4.191 is the earliest version with the :S file name modifier, which we
" really should use if we can
-if v:version >= 704 || v:version == 704 && has('patch191')
+if v:version >= 704
+ \ || v:version == 704 && has('patch191')
CompilerSet makeprg=perlcritic\ --verbose\ 1\ --\ %:S
else
CompilerSet makeprg=perlcritic\ --verbose\ 1\ --\ %
diff --git a/vim/compiler/php.vim b/vim/compiler/php.vim
index 66313bba..be4283ef 100644
--- a/vim/compiler/php.vim
+++ b/vim/compiler/php.vim
@@ -9,15 +9,21 @@ endif
" 7.4.191 is the earliest version with the :S file name modifier, which we
" really should use if we can
-if v:version >= 704 || v:version == 704 && has('patch191')
+if v:version >= 704
+ \ || v:version == 704 && has('patch191')
CompilerSet makeprg=php\ -lq\ -f\ %:S
else
CompilerSet makeprg=php\ -lq\ -f\ %
endif
" Here be copy-pasted dragons
-CompilerSet errorformat=%E<b>%.%#Parse\ error</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
- \%W<b>%.%#Notice</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
- \%E%.%#Parse\ error:\ %m\ in\ %f\ on\ line\ %l,
- \%W%.%#Notice:\ %m\ in\ %f\ on\ line\ %l,
+CompilerSet errorformat=
+ \%E<b>%.%#Parse\ error</b>:
+ \\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
+ \%W<b>%.%#Notice</b>:
+ \\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
+ \%E%.%#Parse\ error:
+ \\ %m\ in\ %f\ on\ line\ %l,
+ \%W%.%#Notice:
+ \\ %m\ in\ %f\ on\ line\ %l,
\%-G%.%#
diff --git a/vim/compiler/sh.vim b/vim/compiler/sh.vim
index d4134e6e..5e7bc3ba 100644
--- a/vim/compiler/sh.vim
+++ b/vim/compiler/sh.vim
@@ -9,7 +9,8 @@ endif
" 7.4.191 is the earliest version with the :S file name modifier, which we
" really should use if we can
-if v:version >= 704 || v:version == 704 && has('patch191')
+if v:version >= 704
+ \ || v:version == 704 && has('patch191')
CompilerSet makeprg=sh\ -n\ --\ %:S
else
CompilerSet makeprg=sh\ -n\ --\ %
diff --git a/vim/compiler/shellcheck.vim b/vim/compiler/shellcheck.vim
index c2cf04de..fa5db235 100644
--- a/vim/compiler/shellcheck.vim
+++ b/vim/compiler/shellcheck.vim
@@ -19,7 +19,8 @@ endif
" 7.4.191 is the earliest version with the :S file name modifier, which we
" really should use if we can
-if v:version >= 704 || v:version == 704 && has('patch191')
+if v:version >= 704
+ \ || v:version == 704 && has('patch191')
execute s:set . '\ --\ %:S'
else
execute s:set . '\ --\ %'
diff --git a/vim/compiler/vint.vim b/vim/compiler/vint.vim
index e0d0b076..35819ae3 100644
--- a/vim/compiler/vint.vim
+++ b/vim/compiler/vint.vim
@@ -9,7 +9,8 @@ endif
" 7.4.191 is the earliest version with the :S file name modifier, which we
" really should use if we can
-if v:version >= 704 || v:version == 704 && has('patch191')
+if v:version >= 704
+ \ || v:version == 704 && has('patch191')
CompilerSet makeprg=vint\ --\ %:S
else
CompilerSet makeprg=vint\ --\ %
diff --git a/vim/compiler/zsh.vim b/vim/compiler/zsh.vim
index 4fc5f30e..ad82cc3b 100644
--- a/vim/compiler/zsh.vim
+++ b/vim/compiler/zsh.vim
@@ -9,7 +9,8 @@ endif
" 7.4.191 is the earliest version with the :S file name modifier, which we
" really should use if we can
-if v:version >= 704 || v:version == 704 && has('patch191')
+if v:version >= 704
+ \ || v:version == 704 && has('patch191')
CompilerSet makeprg=zsh\ -n\ --\ %:S
else
CompilerSet makeprg=zsh\ -n\ --\ %
diff --git a/vim/vimrc b/vim/vimrc
index eeb468ff..2e19ff34 100644
--- a/vim/vimrc
+++ b/vim/vimrc
@@ -29,8 +29,8 @@ else
endif
" Let me backspace over pretty much anything
-set backspace+=indent " Spaces from 'autoindent'
set backspace+=eol " Line breaks
+set backspace+=indent " Spaces from 'autoindent'
set backspace+=start " The start of current insertion
" Try to keep backups in one system-appropriate dir, including full encoded
@@ -138,10 +138,10 @@ set linebreak
" Define extra 'list' display characters
set listchars+=extends:> " Unwrapped text to screen right
+set listchars+=nbsp:+ " Non-breaking spaces
set listchars+=precedes:< " Unwrapped text to screen left
set listchars+=tab:>- " Tab characters, preserve width
set listchars+=trail:_ " Trailing spaces
-set listchars+=nbsp:+ " Non-breaking spaces
" Don't allow setting options via buffer content
set nomodeline
@@ -288,7 +288,7 @@ nnoremap <Leader>f :<C-U>setlocal formatoptions?<CR>
nnoremap <Leader>F :<C-U>doautocmd filetypedetect BufRead<CR>
" \g changes directory to the current file's location
-nnoremap <Leader>g :<C-U>cd %:h<CR>:pwd<CR>
+nnoremap <Leader>g :<C-U>cd %:h<Bar>pwd<CR>
" \h toggles highlighting search results
nnoremap <Leader>h :<C-U>set hlsearch! hlsearch?<CR>
@@ -309,6 +309,10 @@ nnoremap <Leader>k :<C-U>marks<CR>
nnoremap <Leader>l :<C-U>setlocal list! list?<CR>
xnoremap <Leader>l :<C-U>setlocal list! list?<CR>gv
+" \L toggles 'colorcolumn' showing 'textwidth'
+nnoremap <Leader>L :<C-U>ToggleFlagLocal colorcolumn +1<CR>
+xnoremap <Leader>L :<C-U>ToggleFlagLocal colorcolumn +1<CR>gv
+
" \m shows normal maps
nnoremap <Leader>m :<C-U>map<CR>
" \M shows buffer-local normal maps
diff --git a/vim/vimrc.stub.vim b/vim/vimrc.stub.vim
index b7aa1deb..b2d8803a 100644
--- a/vim/vimrc.stub.vim
+++ b/vim/vimrc.stub.vim
@@ -5,10 +5,7 @@ if v:version >= 700
finish
endif
-" Otherwise, prevent Vim from using any part of our configuration
+" Otherwise, prevent an old and/or tiny Vim from using any part of our
+" configuration, because parts of it will break
set runtimepath-=~/.vim
set runtimepath-=~/.vim/after
-if has('win32') || has('win64')
- set runtimepath-=~/vimfiles
- set runtimepath-=~/vimfiles/after
-endif