aboutsummaryrefslogtreecommitdiff
path: root/vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim')
-rw-r--r--vim/after/ftplugin/perl.vim9
-rw-r--r--vim/autoload/perl.vim45
-rw-r--r--vim/system/centos.vim5
3 files changed, 58 insertions, 1 deletions
diff --git a/vim/after/ftplugin/perl.vim b/vim/after/ftplugin/perl.vim
index e9747aa3..37cd1c08 100644
--- a/vim/after/ftplugin/perl.vim
+++ b/vim/after/ftplugin/perl.vim
@@ -25,3 +25,12 @@ let b:undo_ftplugin = b:undo_ftplugin
\ . '|nunmap <buffer> <LocalLeader>c'
\ . '|nunmap <buffer> <LocalLeader>l'
\ . '|nunmap <buffer> <LocalLeader>t'
+
+" Bump version numbers
+nnoremap <buffer> <LocalLeader>v
+ \ :<C-U>call perl#BumpVersionMinor()<CR>
+nnoremap <buffer> <LocalLeader>V
+ \ :<C-U>call perl#BumpVersionMajor()<CR>
+let b:undo_ftplugin = b:undo_ftplugin
+ \ . '|nunmap <buffer> <LocalLeader>v'
+ \ . '|nunmap <buffer> <LocalLeader>V'
diff --git a/vim/autoload/perl.vim b/vim/autoload/perl.vim
new file mode 100644
index 00000000..5349eb49
--- /dev/null
+++ b/vim/autoload/perl.vim
@@ -0,0 +1,45 @@
+" Version number specifier format
+let g:perl#verpat = '\m\C^'
+ \ . '\(our\s\+\$VERSION\s*=\D*\)'
+ \ . '\(\d\+\)\.\(\d\+\)'
+ \ . '\(.*\)'
+
+" Version number bumper
+function! perl#BumpVersion(major) abort
+ let l:view = winsaveview()
+ let l:li = search(g:perl#verpat)
+ if !l:li
+ echomsg 'No version number declaration found'
+ return
+ endif
+ let l:matches = matchlist(getline(l:li), g:perl#verpat)
+ let [l:lvalue, l:major, l:minor, l:rest]
+ \ = matchlist(getline(l:li), g:perl#verpat)[1:4]
+ if a:major
+ let l:major = perl#Incf(l:major)
+ else
+ let l:minor = perl#Incf(l:minor)
+ endif
+ let l:version = l:major.'.'.l:minor
+ call setline(l:li, l:lvalue.l:version.l:rest)
+ if a:major
+ echomsg 'Bumped major $VERSION: '.l:version
+ else
+ echomsg 'Bumped minor $VERSION: '.l:version
+ endif
+ call winrestview(l:view)
+endfunction
+
+" Explanatory wrappers
+function! perl#BumpVersionMinor() abort
+ call perl#BumpVersion(0)
+endfunction
+function! perl#BumpVersionMajor() abort
+ call perl#BumpVersion(1)
+endfunction
+
+" Helper function to format a number without decreasing its digit count
+function! perl#Incf(num) abort
+ let l:inc = a:num + 1
+ return repeat('0', strlen(a:num) - strlen(l:inc)).l:inc
+endfunction
diff --git a/vim/system/centos.vim b/vim/system/centos.vim
index 26289bf8..0c5854d4 100644
--- a/vim/system/centos.vim
+++ b/vim/system/centos.vim
@@ -9,7 +9,10 @@ if has('cmdline_info')
set ruler&
endif
if has('cscope')
- set csprg& cst& csto& csverb&
+ set cscopeprg&
+ set cscopetag&
+ set cscopetagorder&
+ set cscopeverbose&
silent! cs kill
endif
if has('gui')