#869 - Detect the shell dialect from the hashbang for shellcheck

This commit is contained in:
w0rp
2017-08-28 19:16:23 +01:00
parent 73ec83d055
commit 5a88395bbb
5 changed files with 173 additions and 21 deletions

View File

@@ -0,0 +1,20 @@
" Author: w0rp <devw0rp@gmail.com>
" Get the shell type for a buffer, based on the hashbang line.
function! ale#handlers#sh#GetShellType(buffer) abort
let l:bang_line = get(getbufline(a:buffer, 1), 0, '')
" Take the shell executable from the hashbang, if we can.
if l:bang_line[:1] is# '#!'
" Remove options like -e, etc.
let l:command = substitute(l:bang_line, ' --\?[a-zA-Z0-9]\+', '', 'g')
for l:possible_shell in ['bash', 'tcsh', 'csh', 'zsh', 'sh']
if l:command =~# l:possible_shell . '\s*$'
return l:possible_shell
endif
endfor
endif
return ''
endfunction