Fix issue when outside of git (no git config). Use F2 and :FT to avoid conflicts w/ official stdheader.vim

This commit is contained in:
gbaconni
2021-10-28 13:17:27 +02:00
parent 9ad3da54e4
commit de4a06aad1

View File

@@ -6,7 +6,7 @@
" By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ " " By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ "
" +#+#+#+#+#+ +#+ " " +#+#+#+#+#+ +#+ "
" Created: 2013/06/15 12:45:56 by zaz #+# #+# " " Created: 2013/06/15 12:45:56 by zaz #+# #+# "
" Updated: 2021/10/26 08:32:41 by gbaconni ### lausanne.ch " " Updated: 2021/10/28 13:12:49 by gbaconni ### lausanne.ch "
" " " "
" **************************************************************************** " " **************************************************************************** "
@@ -60,97 +60,99 @@ let s:linelen = 80
let s:marginlen = 5 let s:marginlen = 5
let s:contentlen = s:linelen - (3 * s:marginlen - 1) - strlen(s:asciiart[0]) let s:contentlen = s:linelen - (3 * s:marginlen - 1) - strlen(s:asciiart[0])
function! s:trimlogin () function s:trimlogin ()
let l:trimlogin = strpart(systemlist('git config user.name')[0], 0, 9) let l:login = systemlist('git config user.name')
if v:shell_error != 0 || strlen(l:trimlogin) == 0 if v:shell_error == 0 && len(l:login) > 0
let l:trimlogin = strpart(l:login[0], 0, 9)
elseif exists("$USER")
let l:trimlogin = strpart($USER, 0, 9) let l:trimlogin = strpart($USER, 0, 9)
endif else
if strlen(l:trimlogin) == 0
let l:trimlogin = "marvin" let l:trimlogin = "marvin"
endif endif
return l:trimlogin return l:trimlogin
endfunction endfunction
function! s:trimemail () function s:trimemail ()
let l:trimemail = strpart(systemlist('git config user.email')[0], 0, s:contentlen - 5) let l:email = systemlist('git config user.email')
if v:shell_error != 0 || strlen(l:trimemail) == 0 if v:shell_error == 0 && len(l:email) > 0
let l:trimemail = strpart(l:email[0], 0, s:contentlen - 5)
elseif exists("$MAIL")
let l:trimemail = strpart($MAIL, 0, s:contentlen - 5) let l:trimemail = strpart($MAIL, 0, s:contentlen - 5)
endif else
if strlen(l:trimemail) == 0
let l:trimemail = "marvin@student.42lausanne.ch" let l:trimemail = "marvin@student.42lausanne.ch"
endif endif
return l:trimemail return l:trimemail
endfunction endfunction
function! s:midgap () function s:midgap ()
return repeat(' ', s:marginlen - 1) return repeat(' ', s:marginlen - 1)
endfunction endfunction
function! s:lmargin () function s:lmargin ()
return repeat(' ', s:marginlen - strlen(s:start)) return repeat(' ', s:marginlen - strlen(s:start))
endfunction endfunction
function! s:rmargin () function s:rmargin ()
return repeat(' ', s:marginlen - strlen(s:end)) return repeat(' ', s:marginlen - strlen(s:end))
endfunction endfunction
function! s:empty_content () function s:empty_content ()
return repeat(' ', s:contentlen) return repeat(' ', s:contentlen)
endfunction endfunction
function! s:left () function s:left ()
return s:start . s:lmargin() return s:start . s:lmargin()
endfunction endfunction
function! s:right () function s:right ()
return s:rmargin() . s:end return s:rmargin() . s:end
endfunction endfunction
function! s:bigline () function s:bigline ()
return s:start . ' ' . repeat(s:fill, s:linelen - 2 - strlen(s:start) - strlen(s:end)) . ' ' . s:end return s:start . ' ' . repeat(s:fill, s:linelen - 2 - strlen(s:start) - strlen(s:end)) . ' ' . s:end
endfunction endfunction
function! s:logo1 () function s:logo1 ()
return s:left() . s:empty_content() . s:midgap() . s:asciiart[0] . s:right() return s:left() . s:empty_content() . s:midgap() . s:asciiart[0] . s:right()
endfunction endfunction
function! s:fileline () function s:fileline ()
let l:trimfile = strpart(fnamemodify(bufname('%'), ':t'), 0, s:contentlen) let l:trimfile = strpart(fnamemodify(bufname('%'), ':t'), 0, s:contentlen)
return s:left() . l:trimfile . repeat(' ', s:contentlen - strlen(l:trimfile)) . s:midgap() . s:asciiart[1] . s:right() return s:left() . l:trimfile . repeat(' ', s:contentlen - strlen(l:trimfile)) . s:midgap() . s:asciiart[1] . s:right()
endfunction endfunction
function! s:logo2 () function s:logo2 ()
return s:left() . s:empty_content() . s:midgap() .s:asciiart[2] . s:right() return s:left() . s:empty_content() . s:midgap() .s:asciiart[2] . s:right()
endfunction endfunction
function! s:coderline () function s:coderline ()
let l:contentline = "By: ". s:trimemail () let l:contentline = "By: ". s:trimemail ()
return s:left() . l:contentline . repeat(' ', s:contentlen - strlen(l:contentline)) . s:midgap() . s:asciiart[3] . s:right() return s:left() . l:contentline . repeat(' ', s:contentlen - strlen(l:contentline)) . s:midgap() . s:asciiart[3] . s:right()
endfunction endfunction
function! s:logo3 () function s:logo3 ()
return s:left() . s:empty_content() . s:midgap() .s:asciiart[4] . s:right() return s:left() . s:empty_content() . s:midgap() .s:asciiart[4] . s:right()
endfunction endfunction
function! s:dateline (prefix, logo) function s:dateline (prefix, logo)
let l:date = strftime("%Y/%m/%d %H:%M:%S") let l:date = strftime("%Y/%m/%d %H:%M:%S")
let l:contentline = a:prefix . ": " . l:date . " by " . s:trimlogin () let l:contentline = a:prefix . ": " . l:date . " by " . s:trimlogin ()
return s:left() . l:contentline . repeat(' ', s:contentlen - strlen(l:contentline)) . s:midgap() . s:asciiart[a:logo] . s:right() return s:left() . l:contentline . repeat(' ', s:contentlen - strlen(l:contentline)) . s:midgap() . s:asciiart[a:logo] . s:right()
endfunction endfunction
function! s:createline () function s:createline ()
return s:dateline("Created", 5) return s:dateline("Created", 5)
endfunction endfunction
function! s:updateline () function s:updateline ()
return s:dateline("Updated", 6) return s:dateline("Updated", 6)
endfunction endfunction
function! s:emptyline () function s:emptyline ()
return s:start . repeat(' ', s:linelen - strlen(s:start) - strlen(s:end)) . s:end return s:start . repeat(' ', s:linelen - strlen(s:start) - strlen(s:end)) . s:end
endfunction endfunction
function! s:filetype () function s:filetype ()
let l:file = fnamemodify(bufname("%"), ':t') let l:file = fnamemodify(bufname("%"), ':t')
let s:start = '#' let s:start = '#'
@@ -168,7 +170,7 @@ function! s:filetype ()
endfor endfor
endfunction endfunction
function! s:insert () function s:insert ()
call s:filetype () call s:filetype ()
call append(0, "") call append(0, "")
@@ -185,7 +187,7 @@ function! s:insert ()
call append (0, s:bigline()) call append (0, s:bigline())
endfunction endfunction
function! s:update () function s:update ()
call s:filetype () call s:filetype ()
let l:pattern = s:start . repeat(' ', 5 - strlen(s:start)) . "Updated: [0-9]" let l:pattern = s:start . repeat(' ', 5 - strlen(s:start)) . "Updated: [0-9]"
@@ -196,6 +198,6 @@ function! s:update ()
endif endif
endfunction endfunction
command! Stdheader call s:insert () command FT call s:insert ()
nmap <F1> :Stdheader<CR> nmap <F2> :FT<CR>
autocmd BufWritePre * call s:update () autocmd BufWritePre * call s:update ()