check for gawk and cleanup comments

This commit is contained in:
2022-10-27 13:53:24 -04:00
parent 9eb422ba89
commit 23f344fb75
3 changed files with 36 additions and 40 deletions

View File

@ -7,26 +7,36 @@ if exists("b:did_ftplugin")
endif
b:did_ftplugin = 1
def LogrotateHelp(word: string)
const searchcmd =<< trim END
COLUMNS=80 man logrotate 2>/dev/null |
gawk '/^CONFIGURATION FILE DIRECTIVES/,/^SCRIPTS/' | gawk '
/^ {7}%s/,/^[a-z]/ {
if(firstLineDone) {
if(/^ {0,7}[^ ]/ && !/endscript/)
exit
}
firstLineDone = 1
print(substr($0, 8))
}'
END
printf(join(searchcmd, "\n"), word)
->systemlist()
->popup_atcursor({ "padding": [0, 1, 1, 1] })
enddef
b:undo_ftplugin = "setlocal comments< commentstring< formatoptions< omnifunc<"
command -nargs=1 LogRt :call LogrotateHelp(<f-args>)
var awkcmd: string
b:undo_ftplugin = "setlocal comments< commentstring< formatoptions< keywordprg<"
if exists("g:logrotate_awk")
awkcmd = g:logrotate_awk
else
awkcmd = "gawk"
endif
# Have to use gawk, default awk (mawk) does not support {0,7} syntax
if executable(awkcmd)
def LogrotateHelp(word: string)
const searchcmd =<< trim eval END
COLUMNS=80 man logrotate 2>/dev/null |
{awkcmd} '/^CONFIGURATION FILE DIRECTIVES/,/^SCRIPTS/' | {awkcmd} '
/^ {{7}}%s/,false {{
if(firstLineDone && /^ {{0,7}}[^ ]/ && !/endscript/) exit
firstLineDone = 1
print(substr($0, 8))
}}'
END
printf(join(searchcmd, "\n"), word)
->systemlist()
->popup_atcursor({ "padding": [0, 1, 1, 1] })
enddef
setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql keywordprg=:LogRt
command -nargs=1 LogRotateHelpCmd :call LogrotateHelp(<f-args>)
setlocal keywordprg=:LogRotateHelpCmd
b:undo_ftplugin = b:undo_ftplugin .. " keywordprg<"
endif
setlocal omnifunc=syntaxcomplete#Complete
setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql