initial version
This commit is contained in:
commit
9c5d746ec4
3
README.md
Normal file
3
README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# logrotate vim plugin
|
||||||
|
|
||||||
|
Syntax and help for logrotate config files
|
3
ftdetect/logrotate.vim
Normal file
3
ftdetect/logrotate.vim
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
au BufNewFile,BufRead */logrotate.d/*,logrotate.conf setfiletype logrotate
|
||||||
|
|
32
ftplugin/logrotate.vim
Normal file
32
ftplugin/logrotate.vim
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
vim9script
|
||||||
|
# Vim filetype plugin file
|
||||||
|
# Language: confini
|
||||||
|
#
|
||||||
|
if exists("b:did_ftplugin")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
b:did_ftplugin = 1
|
||||||
|
|
||||||
|
def LogrotateHelp(msg: string = expand("<cword>"))
|
||||||
|
const searchcmd =<< trim END
|
||||||
|
COLUMNS=80 man logrotate 2>/dev/null |
|
||||||
|
gawk '/^CONFIGURATION FILE DIRECTIVES/,/^SCRIPTS/' | gawk '
|
||||||
|
/^ {7}%s/,/^[a-z]/ {
|
||||||
|
if(firstLineDone) {
|
||||||
|
if(/^ {7}[^ ]/ || /^[A-Z]/)
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
firstLineDone = 1
|
||||||
|
print(substr($0, 8))
|
||||||
|
}'
|
||||||
|
END
|
||||||
|
printf(join(searchcmd, "\n"), expand("<cword>"))
|
||||||
|
->systemlist()
|
||||||
|
->popup_atcursor({ "padding": [0, 1, 1, 1] })
|
||||||
|
enddef
|
||||||
|
|
||||||
|
command -nargs=1 LogRt :call LogrotateHelp(<f-args>)
|
||||||
|
|
||||||
|
b:undo_ftplugin = "setlocal commentstring< formatoptions< keywordprg<"
|
||||||
|
|
||||||
|
setlocal commentstring=#\ %s formatoptions-=t formatoptions+=croql keywordprg=:LogRt
|
37
syntax/logrotate.vim
Normal file
37
syntax/logrotate.vim
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: logrotate
|
||||||
|
|
||||||
|
" Quit if a syntax file was already loaded
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
runtime! syntax/conf.vim
|
||||||
|
|
||||||
|
" syn keyword logRotateTodo contained TODO FIXME XXX
|
||||||
|
|
||||||
|
syn keyword logRotateKeyword addextension allowhardlink compress compresscmd
|
||||||
|
\ compressext compressoptions copy copytruncate create createolddir
|
||||||
|
\ daily dateext dateformat datehourago dateyesterday delaycompress
|
||||||
|
\ endscript extension firstaction hourly ifempty include lastaction
|
||||||
|
\ mail mailfirst maillast maxage maxsize minage minsize missingok
|
||||||
|
\ monthly noallowhardlink nocompress nocopy nocopytruncate nocreate
|
||||||
|
\ nocreateolddir nodateext nodelaycompress nomail nomissingok
|
||||||
|
\ noolddir norenamecopy nosharedscripts noshred notifempty olddir
|
||||||
|
\ postrotate preremove prerotate renamecopy rotate sharedscripts
|
||||||
|
\ shred shredcycles size start su tabooext taboopat uncompresscmd
|
||||||
|
\ weekly yearly
|
||||||
|
|
||||||
|
" String
|
||||||
|
" syn region logRotateString start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline
|
||||||
|
" syn region logRotateString start=+'+ skip=+\\\\\|\\'+ end=+'+ oneline
|
||||||
|
|
||||||
|
" syn match logRotateComment "^#.*" contains=logRotateTodo,logRotateString,@Spell
|
||||||
|
" syn match logRotateComment "\s#.*"ms=s+1 contains=logRotateTodo,logRotateString,@Spell
|
||||||
|
|
||||||
|
hi def link logRotateKeyword Keyword
|
||||||
|
" hi def link logRotateString String
|
||||||
|
" hi def link logRotateComment Comment
|
||||||
|
" hi def link logRotateTodo Todo
|
||||||
|
|
||||||
|
let b:current_syntax = 'logrotate'
|
Loading…
Reference in New Issue
Block a user