From d91e4c77ebe9a7dcc3336b25e0570551a933f974 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Wed, 4 Jul 2018 13:08:30 +1200 Subject: Spin off Vim Perl version bump into ftplugin --- .gitmodules | 3 +++ vim/after/ftplugin/perl.vim | 8 ++++---- vim/autoload/perl.vim | 45 -------------------------------------------- vim/bundle/perl_version_bump | 1 + 4 files changed, 8 insertions(+), 49 deletions(-) delete mode 100644 vim/autoload/perl.vim create mode 160000 vim/bundle/perl_version_bump diff --git a/.gitmodules b/.gitmodules index 6f4c3e62..390e7400 100644 --- a/.gitmodules +++ b/.gitmodules @@ -52,6 +52,9 @@ [submodule "vim/bundle/markdown_autoformat"] path = vim/bundle/markdown_autoformat url = https://sanctum.geek.nz/code/vim-markdown-autoformat.git +[submodule "vim/bundle/perl_version_bump"] + path = vim/bundle/perl_version_bump + url = https://sanctum.geek.nz/code/vim-perl-version-bump.git # My Vim colorschemes [submodule "vim/bundle/juvenile"] diff --git a/vim/after/ftplugin/perl.vim b/vim/after/ftplugin/perl.vim index acfb72c4..1a7df559 100644 --- a/vim/after/ftplugin/perl.vim +++ b/vim/after/ftplugin/perl.vim @@ -30,10 +30,10 @@ let b:undo_ftplugin = b:undo_ftplugin \ . '|nunmap t' " Bump version numbers -nnoremap v - \ :call perl#BumpVersionMinor() -nnoremap V - \ :call perl#BumpVersionMajor() +nmap v + \ PerlVersionBumpMinor +nmap V + \ PerlVersionBumpMajor let b:undo_ftplugin = b:undo_ftplugin \ . '|nunmap v' \ . '|nunmap V' diff --git a/vim/autoload/perl.vim b/vim/autoload/perl.vim deleted file mode 100644 index a4c8724a..00000000 --- a/vim/autoload/perl.vim +++ /dev/null @@ -1,45 +0,0 @@ -" 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#Setf(l:major, l:major + 1) - let l:minor = perl#Setf(l:minor, 0) - else - let l:minor = perl#Setf(l:minor, l:minor + 1) - 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#Setf(old, new) abort - return repeat('0', strlen(a:old) - strlen(a:new)).a:new -endfunction diff --git a/vim/bundle/perl_version_bump b/vim/bundle/perl_version_bump new file mode 160000 index 00000000..80c98e8b --- /dev/null +++ b/vim/bundle/perl_version_bump @@ -0,0 +1 @@ +Subproject commit 80c98e8b11832cf78f2fc3ee43599749be8ee6a6 -- cgit v1.2.3