diff --git a/autoload/denote/meta.vim b/autoload/denote/meta.vim index 3f62e3d..cf38a8d 100644 --- a/autoload/denote/meta.vim +++ b/autoload/denote/meta.vim @@ -35,9 +35,6 @@ endfunction " Identifier creation function denote#meta#identifier_generate() - if g:denote_identifier_fun - return execute 'call ' .. g:denote_identifier_fun .. '()' - endif return exists('*strftime') \ ? strftime('%Y%m%dT%H%M%S') \ : rand() diff --git a/autoload/denote/notes.vim b/autoload/denote/notes.vim index cf83f7f..5cfa1a5 100644 --- a/autoload/denote/notes.vim +++ b/autoload/denote/notes.vim @@ -26,7 +26,7 @@ endfunction " This creates a new denote entry with the given title and of the given " filetype. The title may be empty. function denote#notes#new(title, ft=g:denote_new_ft) - let l:identifier=denote#meta#identifier_generate() + let l:identifier=g:Denote_identifier_fun() let l:fn=l:identifier .. '--' .. a:title \ ->tolower() \ ->substitute('[^[:fname:]]\|/', '-', 'g') diff --git a/doc/denote.txt b/doc/denote.txt index 832a21c..dd8ecdf 100644 --- a/doc/denote.txt +++ b/doc/denote.txt @@ -125,15 +125,22 @@ g:denote_fm_md_type string let g:denote_fm_md_type = 'yaml' < - *g:denote_identifier_fun* -g:denote_identifier_fun Funcref + *g:Denote_identifier_fun* +g:Denote_identifier_fun Funcref Denote allows the use of custom identifiers. This variable, if set, points to a function that generates identifiers for newly created notes. The function is supposed to return a unique string. By default, - the identifiers are computed with + the variable set as > - strftime('%Y%m%dT%H%M%S') + let g:Denote_identifier_fun = function('denote#meta#identifier_generate') < -or with |rand()| if the function |strftime()| is unavailable. +which calls |strftime('%Y%m%dT%H%M%S')| if |strftime()| is available, and +|rand()| otherwise. Another reasonable setting would be to use some uuid +generator and to specify, e.g., +> + let g:Denote_identifier_fun = { -> system('uuidgen') + \ ->substitute('[^[:xdigit:]]', '', 'g') } +< + vim:tw=78:sw=4:ts=8:noet:ft=help:norl: diff --git a/plugin/denote.vim b/plugin/denote.vim index 62e392e..c36b0a0 100644 --- a/plugin/denote.vim +++ b/plugin/denote.vim @@ -2,7 +2,7 @@ " List of denote directories if !exists('g:denote_directories') - let g:denote_directories=[] + let g:denote_directories = [] endif call map(g:denote_directories, {_, d -> fnamemodify(d, ':p')}) " If only one directory has been specified, use that as denote directory @@ -12,28 +12,28 @@ call map(g:denote_directories, {_, d -> fnamemodify(d, ':p')}) " Restrict basic operations to these files if !exists('g:denote_note_file_extensions') - let g:denote_note_file_extensions=['md', 'org', 'txt'] + let g:denote_note_file_extensions = ['md', 'org', 'txt'] endif " Number of columns used for the title in the location window if !exists('g:denote_loc_title_columns') - let g:denote_loc_title_columns=40 + let g:denote_loc_title_columns = 40 endif " Default filetype for newly created denote entries if !exists('g:denote_new_ft') - let g:denote_new_ft='md' + let g:denote_new_ft = 'md' endif " Default front-matter type for markdown notes, may be one of 'yaml' or 'toml' if !exists('g:denote_fm_md_type') - let g:denote_fm_md_type='yaml' + let g:denote_fm_md_type = 'yaml' endif " By using the following global variable, the user may specify a custom " function for creating identifiers. -if !exists('g:denote_identifier_fun') - let g:denote_identifier_fun='' +if !exists('g:Denote_identifier_fun') + let g:Denote_identifier_fun = function('denote#meta#identifier_generate') endif " Transform full path into canonical form WITH trailing '/'