aboutsummaryrefslogtreecommitdiff
path: root/vim/compiler
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2018-06-17 00:19:45 +1200
committerTom Ryder <tom@sanctum.geek.nz>2018-06-17 00:19:45 +1200
commit81ff3c0f3ae44bb88a129b7395cb050290a37518 (patch)
treed0cf48de5513c8bfff929ff24473dc6bc441f9e9 /vim/compiler
parentUse short-circuit for no-mapping check (diff)
downloaddotfiles-81ff3c0f3ae44bb88a129b7395cb050290a37518.tar.gz
dotfiles-81ff3c0f3ae44bb88a129b7395cb050290a37518.zip
Completely overhaul after/ftplugin files
Should have done some of this in separate commits; oh well. * Rewrite headers for each ftplugin * Require Vim version >= 7.0, and thereby: * Switch back to location list * Don't check for b:undo_ftplugin existence, assume it * Save and restore compiler instead of internal options * Add bash, ksh, sh, and shellcheck compilers * Rename mail/format_flowed.vim to mail/flowed.vim * Rename sh/bash_han.vim to sh/han.vim
Diffstat (limited to 'vim/compiler')
-rw-r--r--vim/compiler/bash.vim17
-rw-r--r--vim/compiler/ksh.vim17
-rw-r--r--vim/compiler/sh.vim17
-rw-r--r--vim/compiler/shellcheck.vim27
4 files changed, 78 insertions, 0 deletions
diff --git a/vim/compiler/bash.vim b/vim/compiler/bash.vim
new file mode 100644
index 00000000..70997f92
--- /dev/null
+++ b/vim/compiler/bash.vim
@@ -0,0 +1,17 @@
+if exists('g:current_compiler')
+ finish
+endif
+let g:current_compiler = 'bash'
+
+if exists(':CompilerSet') != 2
+ command -nargs=* CompilerSet setlocal <args>
+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')
+ CompilerSet makeprg=bash\ -n\ %:S
+else
+ CompilerSet makeprg=bash\ -n\ %
+endif
+CompilerSet errorformat=%f:\ line\ %l:\ %m
diff --git a/vim/compiler/ksh.vim b/vim/compiler/ksh.vim
new file mode 100644
index 00000000..1b31ffa7
--- /dev/null
+++ b/vim/compiler/ksh.vim
@@ -0,0 +1,17 @@
+if exists('g:current_compiler')
+ finish
+endif
+let g:current_compiler = 'ksh'
+
+if exists(':CompilerSet') != 2
+ command -nargs=* CompilerSet setlocal <args>
+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')
+ CompilerSet makeprg=ksh\ -n\ %:S
+else
+ CompilerSet makeprg=ksh\ -n\ %
+endif
+CompilerSet errorformat=%f:\ %l:\ %m
diff --git a/vim/compiler/sh.vim b/vim/compiler/sh.vim
new file mode 100644
index 00000000..ff5ed314
--- /dev/null
+++ b/vim/compiler/sh.vim
@@ -0,0 +1,17 @@
+if exists('g:current_compiler')
+ finish
+endif
+let g:current_compiler = 'sh'
+
+if exists(':CompilerSet') != 2
+ command -nargs=* CompilerSet setlocal <args>
+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')
+ CompilerSet makeprg=sh\ -n\ %:S
+else
+ CompilerSet makeprg=sh\ -n\ %
+endif
+CompilerSet errorformat=%f:\ %l:\ %m
diff --git a/vim/compiler/shellcheck.vim b/vim/compiler/shellcheck.vim
new file mode 100644
index 00000000..6d6498da
--- /dev/null
+++ b/vim/compiler/shellcheck.vim
@@ -0,0 +1,27 @@
+if exists('g:current_compiler')
+ finish
+endif
+let g:current_compiler = 'shellcheck'
+
+if exists(':CompilerSet') != 2
+ command -nargs=* CompilerSet setlocal <args>
+endif
+
+" Build :CompilerSet command based on buffer shell type
+let s:set = 'CompilerSet makeprg=shellcheck\ -e\ SC1090\ -f\ gcc'
+if exists('b:is_bash')
+ let s:set = s:set . '\ -s\ bash'
+elseif exists('b:is_kornshell')
+ let s:set = s:set . '\ -s\ ksh'
+else
+ let s:set = s:set . '\ -s\ sh'
+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')
+ execute s:set . '\ %:S'
+else
+ execute s:set . '\ %'
+endif
+CompilerSet errorformat=%f:%l:%c:\ %m\ [SC%n]