feat: note deletion
This commit is contained in:
@@ -45,8 +45,11 @@ function denote#ft#qf()
|
|||||||
command! -nargs=1 -range -buffer DenoteSetTitle :call denote#notes#settitle(<line1>, <q-args>)
|
command! -nargs=1 -range -buffer DenoteSetTitle :call denote#notes#settitle(<line1>, <q-args>)
|
||||||
command! -nargs=1 -range -buffer -complete=custom,denote#completion#tags DenoteTagAdd :call denote#notes#tagmod(<line1>, <line2>, <q-args>, v:true)
|
command! -nargs=1 -range -buffer -complete=custom,denote#completion#tags DenoteTagAdd :call denote#notes#tagmod(<line1>, <line2>, <q-args>, v:true)
|
||||||
command! -nargs=1 -range -buffer -complete=custom,denote#completion#tags DenoteTagRm :call denote#notes#tagmod(<line1>, <line2>, <q-args>, v:false)
|
command! -nargs=1 -range -buffer -complete=custom,denote#completion#tags DenoteTagRm :call denote#notes#tagmod(<line1>, <line2>, <q-args>, v:false)
|
||||||
|
command! -range -buffer DenoteDelete :call denote#notes#rm(<line1>, <line2>)
|
||||||
nnoremap <buffer> C :DenoteSetTitle
|
nnoremap <buffer> C :DenoteSetTitle
|
||||||
nnoremap <buffer> + :DenoteTagAdd
|
nnoremap <buffer> + :DenoteTagAdd
|
||||||
nnoremap <buffer> - :DenoteTagRm
|
nnoremap <buffer> - :DenoteTagRm
|
||||||
|
nnoremap <buffer> dd :DenoteDelete<CR>
|
||||||
|
" TODO: Add visual maps for line ranges +/-/delete
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -144,3 +144,27 @@ function denote#notes#copy(origfile)
|
|||||||
exe 'w'
|
exe 'w'
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" Delete notes from denote directory
|
||||||
|
function denote#notes#rm(line1, line2)
|
||||||
|
let l:items = getloclist(0, {'items': 1})['items']
|
||||||
|
if empty(l:items)
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
for i in range(a:line1, a:line2)
|
||||||
|
let l:item = l:items[i-1]
|
||||||
|
let l:bufnr = l:item['bufnr']
|
||||||
|
let l:filename = bufname(l:bufnr)
|
||||||
|
let l:title = denote#meta#noteTitleFromFile(l:filename)
|
||||||
|
let l:answer = confirm('Are you sure you want to delete the note "' .. l:title .. '"?', "&Yes\n&No\n", 2, 'Question')
|
||||||
|
if l:answer != 1
|
||||||
|
continue
|
||||||
|
endif
|
||||||
|
" Wipe buffer, if it exists
|
||||||
|
if bufexists(l:filename)
|
||||||
|
exe 'silent bwipe ' .. fnameescape(l:filename)
|
||||||
|
endif
|
||||||
|
" Delete file
|
||||||
|
call delete(l:filename)
|
||||||
|
endfor
|
||||||
|
endfunction
|
||||||
|
|||||||
Reference in New Issue
Block a user