0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00

runtime(sh): better function support for bash/zsh in indent script

closes: #16052

Signed-off-by: Lukas Zapletal <lzap+git@redhat.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Lukas Zapletal 2024-11-14 21:50:15 +01:00 committed by Christian Brabandt
parent 460799d885
commit 0acd3abfad
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
3 changed files with 49 additions and 1 deletions

View File

@ -7,6 +7,8 @@
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-sh-indent
" Changelog:
" 20241411 - Detect dash character in function keyword for
" bash mode (issue #16049)
" 20190726 - Correctly skip if keywords in syntax comments
" (issue #17)
" 20190603 - Do not indent in zsh filetypes with an `if` in comments
@ -195,7 +197,9 @@ endfunction
function! s:is_function_definition(line)
return a:line =~ '^\s*\<\k\+\>\s*()\s*{' ||
\ a:line =~ '^\s*{' ||
\ a:line =~ '^\s*function\s*\k\+\s*\%(()\)\?\s*{'
\ a:line =~ '^\s*function\s*\k\+\s*\%(()\)\?\s*{' ||
\ ((&ft is# 'zsh' || s:is_bash()) &&
\ a:line =~ '^\s*function\s*\S\+\s*\%(()\)\?\s*{' )
endfunction
function! s:is_array(line)

View File

@ -0,0 +1,22 @@
#!/bin/bash
# vim: set ft=bash sw=2 noet:
# START_INDENT
a = 10
b = 20
function add() {
c = $((a + b))
}
function print {
# do nothing
}
if [[ $c -ge 15 ]];
then
print("ok")
else
print("not ok")
fi
# END_INDENT

View File

@ -0,0 +1,22 @@
#!/bin/bash
# vim: set ft=bash sw=2 noet:
# START_INDENT
a = 10
b = 20
function add() {
c = $((a + b))
}
function print {
# do nothing
}
if [[ $c -ge 15 ]];
then
print("ok")
else
print("not ok")
fi
# END_INDENT