" Clear location list function denote#loclist#clear() call setloclist(0, [], ' ') endfunction " Local helper function to retrieve and format the title. function s:titleFromBuf(buf) let name=denote#meta#noteTitleFromFile(bufname(a:buf)) return strchars(name, 1) <= g:denote_loc_title_columns \ ? printf('%' .. g:denote_loc_title_columns .. 's', name) \ : printf('%.' .. (g:denote_loc_title_columns - 1) .. 's', name) .. '…' endfunction " Local helper function to truncate text with match at the given column as a " string of at most `width` columns. function s:formatText(text, col, width) return a:col <= a:width \ ? a:text \ : a:text[a:col-float2nr(a:width*0.3):] endfunction " This modifies the location list for pretty display. function denote#loclist#textReferences(info) let items=getloclist(a:info.winid) let l=[] let width=winwidth(0) - g:denote_loc_title_columns - 19 for idx in range(a:info.start_idx - 1, a:info.end_idx - 1) let e=items[idx] let name=s:titleFromBuf(e.bufnr) let lnum=printf('%5d', e.lnum) let col=printf('%3d', e.col) call add(l, name .. \ ' | ' .. lnum .. ' col ' .. col .. \ ' | ' .. s:formatText(items[idx].text, col, width)) endfor return l endfunction " This modifies the location list for pretty display. function denote#loclist#textNoteList(info) let items=getloclist(a:info.winid) let l=[] for idx in range(a:info.start_idx - 1, a:info.end_idx - 1) let e=items[idx] let name=s:titleFromBuf(e.bufnr) let ntags=denote#meta#noteTagsFromFile(bufname(e.bufnr))->join() call add(l, name .. ' | ' .. ntags) endfor return l endfunction " Load all references to the given note into the location list. function denote#loclist#references(noteId) if !exists('t:denote_directory') echohl WarningMsg echom "Denote directory not specified, see |vim-denote|." return endif " Populate location list silent! execute "lvimgrep /\\/gj " .. t:denote_directory .. "*" " Adjust location list: set title and specify display function let file=denote#meta#fileFromNoteId(a:noteId) let noteTitle=denote#meta#noteTitleFromFile(file) call setloclist(0, [], 'r', \ {'title': 'References to ' .. noteTitle .. ' (' .. a:noteId .. ')', \ 'quickfixtextfunc' : 'denote#loclist#textReferences'}) endfunction