Skip to content

Commit

Permalink
feat: Follow coding standards; adjust incorrect version check; optimi…
Browse files Browse the repository at this point in the history
…se mappings
  • Loading branch information
kkoomen committed Sep 11, 2019
1 parent c25d102 commit 20333b0
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 55 deletions.
57 changes: 24 additions & 33 deletions autoload/doge.vim
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ set cpoptions&vim
" @public
" Generates documentation based on available patterns in b:doge_patterns.
function! doge#generate() abort
let l:success = v:false
let l:success = 0
if exists('b:doge_patterns')
for l:pattern in get(b:, 'doge_patterns')
if doge#generate#pattern(l:pattern) == v:false
continue
else
let l:success = v:true
endif
if l:success
if l:success == v:true
call doge#activate()
endif
return l:success
Expand All @@ -25,48 +25,39 @@ endfunction
" @public
" Activate doge buffer mappings, if option is set.
function! doge#activate() abort
if !g:doge_comment_interactive || !g:doge_buffer_mappings
if g:doge_comment_interactive == v:false || g:doge_buffer_mappings == v:false
return
endif
let [l:f, l:b] = [g:doge_mapping_comment_jump_forward, g:doge_mapping_comment_jump_backward]
execute 'nmap <nowait><silent><buffer>' l:f '<Plug>(doge-comment-jump-forward)'
execute 'nmap <nowait><silent><buffer>' l:b '<Plug>(doge-comment-jump-backward)'
execute 'imap <nowait><silent><buffer>' l:f '<Plug>(doge-comment-jump-forward)'
execute 'imap <nowait><silent><buffer>' l:b '<Plug>(doge-comment-jump-backward)'
execute 'smap <nowait><silent><buffer>' l:f '<Plug>(doge-comment-jump-forward)'
execute 'smap <nowait><silent><buffer>' l:b '<Plug>(doge-comment-jump-backward)'
if get(g:, 'doge_activation_message', 0)
echo '[DoGe] '
echohl Label
echon 'activated'
echohl None
endif

let [l:f, l:b] = [
\ g:doge_mapping_comment_jump_forward,
\ g:doge_mapping_comment_jump_backward,
\ ]
for l:mode in ['n', 'i', 's']
execute(printf('%smap <nowait> <silent> <buffer> %s <Plug>(doge-comment-jump-forward)', l:mode, l:f))
execute(printf('%smap <nowait> <silent> <buffer> %s <Plug>(doge-comment-jump-backward)', l:mode, l:b))
endfor
endfunction

""
" @public
" Deactivate doge mappings and unlet buffer variable.
" Can print a message with the reason of deactivation/termination.
function! doge#deactivate(...) abort
function! doge#deactivate() abort
unlet b:doge_interactive
if !g:doge_comment_interactive || !g:doge_buffer_mappings

if g:doge_comment_interactive == v:false || g:doge_buffer_mappings == v:false
return
endif
execute 'nunmap <buffer>' g:doge_mapping_comment_jump_forward
execute 'nunmap <buffer>' g:doge_mapping_comment_jump_backward
execute 'iunmap <buffer>' g:doge_mapping_comment_jump_forward
execute 'iunmap <buffer>' g:doge_mapping_comment_jump_backward
execute 'sunmap <buffer>' g:doge_mapping_comment_jump_forward
execute 'sunmap <buffer>' g:doge_mapping_comment_jump_backward
if get(g:, 'doge_deactivation_message', 0)
echo '[DoGe] '
echohl WarningMsg
echon 'deactivated'
echohl None
if a:0
echon ': ' a:1
endif
endif

let [l:f, l:b] = [
\ g:doge_mapping_comment_jump_forward,
\ g:doge_mapping_comment_jump_backward,
\ ]
for l:mode in ['n', 'i', 's']
execute(printf('%sunmap <buffer> %s', l:mode, l:f))
execute(printf('%sunmap <buffer> %s', l:mode, l:b))
endfor
endfunction

let &cpoptions = s:save_cpo
Expand Down
4 changes: 2 additions & 2 deletions autoload/doge/comment.vim
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ function! doge#comment#jump(direction) abort
if exists('b:doge_interactive')
" Quit interactive mode if the cursor is outside of the comment.
if line('.') < b:doge_interactive['lnum_comment_start_pos'] || line('.') > b:doge_interactive['lnum_comment_end_pos']
call doge#deactivate('outside of comment area')
call doge#deactivate()
return l:regular_mapping
endif

Expand All @@ -81,7 +81,7 @@ function! doge#comment#jump(direction) abort
endif
else
" All the TODO items have been resolved, so we're done.
call doge#deactivate('end of placeholders')
call doge#deactivate()
endif
endif

Expand Down
19 changes: 13 additions & 6 deletions doc/doge.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ Whether or not to enable built-in mappings.

The mapping to trigger DoGe.

*g:doge_buffer_mappings*
(Default: 1)

Mappings to jump forward/backward are applied as buffer mappings when
interactive mode starts, and removed when it ends.

*g:doge_mapping_comment_jump_forward*
(Default: '<Tab>')

Expand All @@ -51,12 +57,6 @@ The mapping to jump backward to the previous TODO item in a comment. Requires

Jumps interactively through all TODO items in the generated comment.

*g:doge_buffer_mappings*
(Default: 1)

Mappings to jump forward/backward are applied as buffer mappings when
interactive mode starts, and removed when it ends.

==============================================================================
COMMANDS *doge-commands*

Expand All @@ -69,6 +69,13 @@ FUNCTIONS *doge-functions*
doge#generate() *doge#generate()*
Generates documentation based on available patterns in b:doge_patterns.

doge#activate() *doge#activate()*
Activate doge buffer mappings, if option is set.

doge#deactivate() *doge#deactivate()*
Deactivate doge mappings and unlet buffer variable. Can print a message with
the reason of deactivation/termination.

doge#comment#jump({direction}) *doge#comment#jump()*
Jumps to the previous and next TODO item in the comment based on the
b:doge_interactive variable. Requires |g:doge_comment_interactive| to be
Expand Down
4 changes: 4 additions & 0 deletions doc/tags
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
:DogeGenerate doge.txt /*:DogeGenerate*
doge doge.txt /*doge*
doge#activate() doge.txt /*doge#activate()*
doge#comment#jump() doge.txt /*doge#comment#jump()*
doge#comment#update_interactive_comment_info() doge.txt /*doge#comment#update_interactive_comment_info()*
doge#deactivate() doge.txt /*doge#deactivate()*
doge#generate#pattern() doge.txt /*doge#generate#pattern()*
doge#generate() doge.txt /*doge#generate()*
doge#helpers#count() doge.txt /*doge#helpers#count()*
doge#helpers#keyseq() doge.txt /*doge#helpers#keyseq()*
doge#helpers#placeholder() doge.txt /*doge#helpers#placeholder()*
doge#helpers#trim() doge.txt /*doge#helpers#trim()*
doge#indent#add() doge.txt /*doge#indent#add()*
doge#token#extract() doge.txt /*doge#token#extract()*
doge#token#replace() doge.txt /*doge#token#replace()*
Expand All @@ -17,6 +20,7 @@ doge-functions doge.txt /*doge-functions*
doge-intro doge.txt /*doge-intro*
doge-preprocessors doge.txt /*doge-preprocessors*
doge.txt doge.txt /*doge.txt*
g:doge_buffer_mappings doge.txt /*g:doge_buffer_mappings*
g:doge_comment_interactive doge.txt /*g:doge_comment_interactive*
g:doge_enable_mappings doge.txt /*g:doge_enable_mappings*
g:doge_mapping doge.txt /*g:doge_mapping*
Expand Down
27 changes: 13 additions & 14 deletions plugin/doge.vim
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ let s:unsupported_msg = '[DoGe] Unsupported version. %s is required.'

if !has('nvim') && (v:version < 700 || !has('patch-7.4.2119'))
echohl WarningMsg
echo printf(s:unsupported_msg, 'Vim v7.4.2219+')
echo printf(s:unsupported_msg, 'Vim v7.4.2119+')
echohl None
finish
endif
Expand Down Expand Up @@ -103,23 +103,22 @@ if !exists('g:doge_comment_interactive')
let g:doge_comment_interactive = 1
endif

" Register all the <Plug> mappings.
nnoremap <Plug>(doge-generate) :call doge#generate()<CR>
nnoremap <expr> <Plug>(doge-comment-jump-forward) doge#comment#jump('forward')
nnoremap <expr> <Plug>(doge-comment-jump-backward) doge#comment#jump('backward')
inoremap <expr> <Plug>(doge-comment-jump-forward) doge#comment#jump('forward')
inoremap <expr> <Plug>(doge-comment-jump-backward) doge#comment#jump('backward')
snoremap <expr> <Plug>(doge-comment-jump-forward) doge#comment#jump('forward')
snoremap <expr> <Plug>(doge-comment-jump-backward) doge#comment#jump('backward')
for g:mode in ['n', 'i', 's']
execute(printf('%snoremap <expr> <Plug>(doge-comment-jump-forward) doge#comment#jump("forward")', g:mode))
execute(printf('%snoremap <expr> <Plug>(doge-comment-jump-backward) doge#comment#jump("backward")', g:mode))
endfor
unlet g:mode

if g:doge_enable_mappings == v:true
execute(printf('nmap <silent> %s <Plug>(doge-generate)', g:doge_mapping))
if !g:doge_buffer_mappings
execute(printf('nmap <silent> %s <Plug>(doge-comment-jump-forward)', g:doge_mapping_comment_jump_forward))
execute(printf('nmap <silent> %s <Plug>(doge-comment-jump-backward)', g:doge_mapping_comment_jump_backward))
execute(printf('imap <silent> %s <Plug>(doge-comment-jump-forward)', g:doge_mapping_comment_jump_forward))
execute(printf('imap <silent> %s <Plug>(doge-comment-jump-backward)', g:doge_mapping_comment_jump_backward))
execute(printf('smap <silent> %s <Plug>(doge-comment-jump-forward)', g:doge_mapping_comment_jump_forward))
execute(printf('smap <silent> %s <Plug>(doge-comment-jump-backward)', g:doge_mapping_comment_jump_backward))
if g:doge_buffer_mappings == v:false
for g:mode in ['n', 'i', 's']
execute(printf('%smap <silent> %s <Plug>(doge-comment-jump-forward)', g:mode, g:doge_mapping_comment_jump_forward))
execute(printf('%smap <silent> %s <Plug>(doge-comment-jump-backward)', g:mode, g:doge_mapping_comment_jump_backward))
endfor
unlet g:mode
endif
endif

Expand Down

0 comments on commit 20333b0

Please sign in to comment.