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
|
" 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
|
augroup campoCmds
|
||||||
" Clear all autocmds in the group.
|
" Clear all autocmds in the group.
|
||||||
autocmd!
|
autocmd!
|
||||||
|
@ -593,6 +484,114 @@ augroup campoCmds
|
||||||
" FILE TEMPLATES
|
" 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.
|
" Shell script template.
|
||||||
autocmd BufNewFile *.sh call append(0, s:ShellScriptTemplate())
|
autocmd BufNewFile *.sh call append(0, s:ShellScriptTemplate())
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user