Relocate some vimrc template functions to an autocmd group
This commit is contained in:
parent
e5580826b9
commit
54a8774f19
217
vimrc
217
vimrc
|
@ -358,115 +358,6 @@ let &colorcolumn=g:campo_max_line_length
|
|||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" CUSTOM AUTOCMDS
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
" C/C++ template.
|
||||
function! s:CFileTemplate()
|
||||
let s:env = {
|
||||
\ 'filename': expand('%:t'),
|
||||
\ 'creation_date': strftime('%Y-%m-%d'),
|
||||
\ 'year': strftime('%Y'),
|
||||
\ 'copyright_owner': 'Jelly Pixel, Inc. All Rights Reserved.'
|
||||
\}
|
||||
|
||||
let l:template =<< trim EOS
|
||||
/*==================================================================================================
|
||||
File: ${filename}
|
||||
Creation Date: ${creation_date}
|
||||
Creator: Michael Campagnaro
|
||||
Notice!: (C) Copyright ${year} by ${copyright_owner}
|
||||
================================================================================================*/
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// # Defines
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// # Globals
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// # Structs
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// # Macros
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// # Private API
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// # Public API
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
EOS
|
||||
return map(l:template, { _, line -> substitute(line, '${\(.\{-}\)}', '\=get(s:env, submatch(1), submatch(1))', 'g') } )
|
||||
endfunction
|
||||
|
||||
function! s:InsertCHeaderGates()
|
||||
let l:gatename = substitute(toupper(expand("%:t")), "\\.", "_", "g")
|
||||
call append(0, '#ifndef '. l:gatename)
|
||||
call append(line('$'), '#define '. l:gatename)
|
||||
call append(line('$'), '#endif')
|
||||
endfunction
|
||||
|
||||
" sh template
|
||||
function! s:ShellScriptTemplate()
|
||||
let l:template =<< trim EOS
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if which tput >/dev/null 2>&1; then
|
||||
ncolors=$(tput colors)
|
||||
fi
|
||||
if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then
|
||||
RED="$(tput setaf 1)"
|
||||
GREEN="$(tput setaf 2)"
|
||||
YELLOW="$(tput setaf 3)"
|
||||
BLUE="$(tput setaf 4)"
|
||||
MAGENTA="$(tput setaf 5)"
|
||||
CYAN="$(tput setaf 6)"
|
||||
BOLD="$(tput bold)"
|
||||
DIM="\e[2m"
|
||||
NORMAL="$(tput sgr0)"
|
||||
else
|
||||
RED=""
|
||||
GREEN=""
|
||||
YELLOW=""
|
||||
BLUE=""
|
||||
MAGENTA=""
|
||||
CYAN=""
|
||||
BOLD=""
|
||||
NORMAL=""
|
||||
fi
|
||||
|
||||
error() {
|
||||
printf "${BOLD}${RED}$1${NORMAL}\n"
|
||||
}
|
||||
|
||||
abort() {
|
||||
error "\nAborting..."
|
||||
exit 1
|
||||
}
|
||||
|
||||
set -e
|
||||
|
||||
cwd=$PWD
|
||||
|
||||
uname_s="$(uname -s)"
|
||||
case "${uname_s}" in
|
||||
Linux*) machine=Linux;;
|
||||
Darwin*) machine=MacOS;;
|
||||
CYGWIN*) machine=Cygwin;;
|
||||
MINGW*) machine=MinGw;;
|
||||
*) machine="UNKNOWN:${uname_s}"
|
||||
esac
|
||||
|
||||
printf "${YELLOW}Platform: $machine${NORMAL}\n"
|
||||
EOS
|
||||
return l:template
|
||||
endfunction
|
||||
|
||||
augroup campoCmds
|
||||
" Clear all autocmds in the group.
|
||||
autocmd!
|
||||
|
@ -593,6 +484,114 @@ augroup campoCmds
|
|||
" FILE TEMPLATES
|
||||
"////////////////////////////////////////////////////////////////
|
||||
|
||||
" C/C++ template.
|
||||
function! s:CFileTemplate()
|
||||
let s:env = {
|
||||
\ 'filename': expand('%:t'),
|
||||
\ 'creation_date': strftime('%Y-%m-%d'),
|
||||
\ 'year': strftime('%Y'),
|
||||
\ 'copyright_owner': 'Jelly Pixel, Inc. All Rights Reserved.'
|
||||
\}
|
||||
|
||||
let l:template =<< trim EOS
|
||||
/*==================================================================================================
|
||||
File: ${filename}
|
||||
Creation Date: ${creation_date}
|
||||
Creator: Michael Campagnaro
|
||||
Notice!: (C) Copyright ${year} by ${copyright_owner}
|
||||
================================================================================================*/
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// # Defines
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// # Globals
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// # Structs
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// # Macros
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// # Private API
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// # Public API
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
EOS
|
||||
return map(l:template, { _, line -> substitute(line, '${\(.\{-}\)}', '\=get(s:env, submatch(1), submatch(1))', 'g') } )
|
||||
endfunction
|
||||
|
||||
function! s:InsertCHeaderGates()
|
||||
let l:gatename = substitute(toupper(expand("%:t")), "\\.", "_", "g")
|
||||
call append(0, '#ifndef '. l:gatename)
|
||||
call append(line('$'), '#define '. l:gatename)
|
||||
call append(line('$'), '#endif')
|
||||
endfunction
|
||||
|
||||
" sh template
|
||||
function! s:ShellScriptTemplate()
|
||||
let l:template =<< trim EOS
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if which tput >/dev/null 2>&1; then
|
||||
ncolors=$(tput colors)
|
||||
fi
|
||||
if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then
|
||||
RED="$(tput setaf 1)"
|
||||
GREEN="$(tput setaf 2)"
|
||||
YELLOW="$(tput setaf 3)"
|
||||
BLUE="$(tput setaf 4)"
|
||||
MAGENTA="$(tput setaf 5)"
|
||||
CYAN="$(tput setaf 6)"
|
||||
BOLD="$(tput bold)"
|
||||
DIM="\e[2m"
|
||||
NORMAL="$(tput sgr0)"
|
||||
else
|
||||
RED=""
|
||||
GREEN=""
|
||||
YELLOW=""
|
||||
BLUE=""
|
||||
MAGENTA=""
|
||||
CYAN=""
|
||||
BOLD=""
|
||||
NORMAL=""
|
||||
fi
|
||||
|
||||
error() {
|
||||
printf "${BOLD}${RED}$1${NORMAL}\n"
|
||||
}
|
||||
|
||||
abort() {
|
||||
error "\nAborting..."
|
||||
exit 1
|
||||
}
|
||||
|
||||
set -e
|
||||
|
||||
cwd=$PWD
|
||||
|
||||
uname_s="$(uname -s)"
|
||||
case "${uname_s}" in
|
||||
Linux*) machine=Linux;;
|
||||
Darwin*) machine=MacOS;;
|
||||
CYGWIN*) machine=Cygwin;;
|
||||
MINGW*) machine=MinGw;;
|
||||
*) machine="UNKNOWN:${uname_s}"
|
||||
esac
|
||||
|
||||
printf "${YELLOW}Platform: $machine${NORMAL}\n"
|
||||
EOS
|
||||
return l:template
|
||||
endfunction
|
||||
|
||||
" Shell script template.
|
||||
autocmd BufNewFile *.sh call append(0, s:ShellScriptTemplate())
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user