Doc: Indent Docstring inside function
This commit is contained in:
+162
-161
@@ -15,15 +15,15 @@ let g:loaded_vimwiki_auto = 1
|
||||
let g:vimwiki_max_scan_for_caption = 5
|
||||
|
||||
|
||||
" Substitute regexp but do not interpret replace
|
||||
function! s:safesubstitute(text, search, replace, mode) abort
|
||||
" Substitute regexp but do not interpret replace
|
||||
let escaped = escape(a:replace, '\&')
|
||||
return substitute(a:text, a:search, escaped, a:mode)
|
||||
endfunction
|
||||
|
||||
|
||||
" Get all vimwiki known syntaxes
|
||||
function! s:vimwiki_get_known_syntaxes() abort
|
||||
" Get all vimwiki known syntaxes
|
||||
" Getting all syntaxes that different wikis could have
|
||||
let syntaxes = {}
|
||||
let syntaxes['default'] = 1
|
||||
@@ -39,8 +39,8 @@ function! s:vimwiki_get_known_syntaxes() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Get search regex from glob()
|
||||
function! vimwiki#base#file_pattern(files) abort
|
||||
" Get search regex from glob()
|
||||
" string. Aim to support *all* special characters, forcing the user to choose
|
||||
" names that are compatible with any external restrictions that they
|
||||
" encounter (e.g. filesystem, wiki conventions, other syntaxes, ...).
|
||||
@@ -50,9 +50,9 @@ function! vimwiki#base#file_pattern(files) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" TODO move in path
|
||||
" FIXME TODO slow and faulty
|
||||
function! vimwiki#base#subdir(path, filename) abort
|
||||
" TODO move in path
|
||||
" FIXME TODO slow and faulty
|
||||
let path = a:path
|
||||
" ensure that we are not fooled by a symbolic link
|
||||
"FIXME if we are not "fooled", we end up in a completely different wiki?
|
||||
@@ -76,22 +76,22 @@ function! vimwiki#base#subdir(path, filename) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" TODO move in path
|
||||
function! vimwiki#base#current_subdir() abort
|
||||
" TODO move in path
|
||||
return vimwiki#base#subdir(vimwiki#vars#get_wikilocal('path'), expand('%:p'))
|
||||
endfunction
|
||||
|
||||
|
||||
" TODO move in path
|
||||
function! vimwiki#base#invsubdir(subdir) abort
|
||||
" TODO move in path
|
||||
return substitute(a:subdir, '[^/\.]\+/', '../', 'g')
|
||||
endfunction
|
||||
|
||||
|
||||
" Returns: the number of the wiki a file belongs to or -1 if it doesn't belong
|
||||
" to any registered wiki.
|
||||
" The path can be the full path or just the directory of the file
|
||||
function! vimwiki#base#find_wiki(path) abort
|
||||
" Returns: the number of the wiki a file belongs to or -1 if it doesn't belong
|
||||
" to any registered wiki.
|
||||
" The path can be the full path or just the directory of the file
|
||||
let bestmatch = -1
|
||||
let bestlen = 0
|
||||
let path = vimwiki#path#path_norm(vimwiki#path#chomp_slash(a:path))
|
||||
@@ -111,18 +111,18 @@ function! vimwiki#base#find_wiki(path) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Check if a link is a well formed wiki link (Helper)
|
||||
function! s:is_wiki_link(link_infos) abort
|
||||
" Check if a link is a well formed wiki link (Helper)
|
||||
return a:link_infos.scheme =~# '\mwiki\d\+' || a:link_infos.scheme ==# 'diary'
|
||||
endfunction
|
||||
|
||||
|
||||
" Extract infos about the target from a link.
|
||||
" THE central function of Vimwiki.
|
||||
" If the second parameter is present, which should be an absolute file path, it
|
||||
" is assumed that the link appears in that file. Without it, the current file
|
||||
" is used.
|
||||
function! vimwiki#base#resolve_link(link_text, ...) abort
|
||||
" Extract infos about the target from a link.
|
||||
" THE central function of Vimwiki.
|
||||
" If the second parameter is present, which should be an absolute file path, it
|
||||
" is assumed that the link appears in that file. Without it, the current file
|
||||
" is used.
|
||||
if a:0
|
||||
let source_wiki = vimwiki#base#find_wiki(a:1)
|
||||
let source_file = a:1
|
||||
@@ -278,8 +278,8 @@ function! vimwiki#base#resolve_link(link_text, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Open Link with OS handler (like gx)
|
||||
function! vimwiki#base#system_open_link(url) abort
|
||||
" Open Link with OS handler (like gx)
|
||||
" handlers
|
||||
function! s:win32_handler(url) abort
|
||||
"Disable shellslash for cmd and command.com, but enable for all other shells
|
||||
@@ -332,8 +332,8 @@ function! vimwiki#base#system_open_link(url) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Open link with Vim (like :e)
|
||||
function! vimwiki#base#open_link(cmd, link, ...) abort
|
||||
" Open link with Vim (like :e)
|
||||
let link_infos = {}
|
||||
if a:0
|
||||
let link_infos = vimwiki#base#resolve_link(a:link, a:1)
|
||||
@@ -375,9 +375,9 @@ function! vimwiki#base#open_link(cmd, link, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Escape global link
|
||||
" Called by command completion
|
||||
function! vimwiki#base#get_globlinks_escaped(...) abort
|
||||
" Escape global link
|
||||
" Called by command completion
|
||||
let s_arg_lead = a:0 > 0 ? a:1 : ''
|
||||
" only get links from the current dir
|
||||
" change to the directory of the current file
|
||||
@@ -402,11 +402,11 @@ function! vimwiki#base#get_globlinks_escaped(...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Generate wikilinks in current file
|
||||
" Called: by command VimwikiGenerateLinks (Exported)
|
||||
" Param: create: <Bool> Create links or not
|
||||
" Param: Optional pattern <String>
|
||||
function! vimwiki#base#generate_links(create, ...) abort
|
||||
" Generate: wikilinks in current file
|
||||
" Called: by command VimwikiGenerateLinks (Exported)
|
||||
" Param: create: <Bool> Create links or not
|
||||
" Param: Optional pattern <String>
|
||||
" Get pattern if present
|
||||
" Globlal to script to be passed to closure
|
||||
if a:0
|
||||
@@ -464,9 +464,9 @@ function! vimwiki#base#generate_links(create, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to other wikifile, specified on command mode
|
||||
" Called: by command VimwikiGoto (Exported)
|
||||
function! vimwiki#base#goto(...) abort
|
||||
" Jump: to other wikifile, specified on command mode
|
||||
" Called: by command VimwikiGoto (Exported)
|
||||
let key = a:0 > 0 ? a:1 : input('Enter name: ', '',
|
||||
\ 'customlist,vimwiki#base#complete_links_escaped')
|
||||
|
||||
@@ -483,9 +483,9 @@ function! vimwiki#base#goto(...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to previous file (backspace key)
|
||||
" Called: by VimwikiBacklinks (Exported)
|
||||
function! vimwiki#base#backlinks() abort
|
||||
" Jump: to previous file (backspace key)
|
||||
" Called: by VimwikiBacklinks (Exported)
|
||||
let current_filename = expand('%:p')
|
||||
let locations = []
|
||||
for idx in range(vimwiki#vars#number_of_wikis())
|
||||
@@ -517,11 +517,11 @@ function! vimwiki#base#backlinks() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Returns: a list containing all files of the given wiki as absolute file path.
|
||||
" If the given wiki number is negative, the diary of the current wiki is used
|
||||
" If the second argument is not zero, only directories are found
|
||||
" If third argument: pattern to search for
|
||||
function! vimwiki#base#find_files(wiki_nr, directories_only, ...) abort
|
||||
" Returns: a list containing all files of the given wiki as absolute file path.
|
||||
" If the given wiki number is negative, the diary of the current wiki is used
|
||||
" If the second argument is not zero, only directories are found
|
||||
" If third argument: pattern to search for
|
||||
let wiki_nr = a:wiki_nr
|
||||
if wiki_nr >= 0
|
||||
let root_directory = vimwiki#vars#get_wikilocal('path', wiki_nr)
|
||||
@@ -558,12 +558,12 @@ function! vimwiki#base#find_files(wiki_nr, directories_only, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Returns: a list containing the links to get from the current file to all wiki
|
||||
" files in the given wiki.
|
||||
" If the given wiki number is negative, the diary of the current wiki is used.
|
||||
" If also_absolute_links is nonzero, also return links of the form /file
|
||||
" If pattern is not '', only filepaths matching pattern will be considered
|
||||
function! vimwiki#base#get_wikilinks(wiki_nr, also_absolute_links, pattern) abort
|
||||
" Returns: a list containing the links to get from the current file to all wiki
|
||||
" files in the given wiki.
|
||||
" If the given wiki number is negative, the diary of the current wiki is used.
|
||||
" If also_absolute_links is nonzero, also return links of the form /file
|
||||
" If pattern is not '', only filepaths matching pattern will be considered
|
||||
let files = vimwiki#base#find_files(a:wiki_nr, 0, a:pattern)
|
||||
if a:wiki_nr == vimwiki#vars#get_bufferlocal('wiki_nr')
|
||||
let cwd = vimwiki#path#wikify_path(expand('%:p:h'))
|
||||
@@ -594,8 +594,8 @@ function! vimwiki#base#get_wikilinks(wiki_nr, also_absolute_links, pattern) abor
|
||||
endfunction
|
||||
|
||||
|
||||
" Returns: a list containing the links to all directories from the current file
|
||||
function! vimwiki#base#get_wiki_directories(wiki_nr) abort
|
||||
" Returns: a list containing the links to all directories from the current file
|
||||
let dirs = vimwiki#base#find_files(a:wiki_nr, 1)
|
||||
if a:wiki_nr == vimwiki#vars#get_bufferlocal('wiki_nr')
|
||||
let cwd = vimwiki#path#wikify_path(expand('%:p:h'))
|
||||
@@ -616,9 +616,9 @@ function! vimwiki#base#get_wiki_directories(wiki_nr) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Parse file. Returns list of all anchors
|
||||
" Called: vimwiki#base#check_links() for all wiki files
|
||||
function! vimwiki#base#get_anchors(filename, syntax) abort
|
||||
" Parse file. Returns list of all anchors
|
||||
" Called: vimwiki#base#check_links() for all wiki files
|
||||
" Clause: if not readable
|
||||
if !filereadable(a:filename)
|
||||
return []
|
||||
@@ -697,12 +697,12 @@ function! vimwiki#base#get_anchors(filename, syntax) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" :param: anchor <string> <= Heading line
|
||||
" :param: (1) previous_anchors <dic[IN/OUT]> of previous normalized anchor
|
||||
" -- to know if must append -2, updated on the fly
|
||||
" Return: anchor <string> => link in TOC
|
||||
" Called: vimwiki#base#table_of_contents
|
||||
function! vimwiki#base#normalize_anchor(anchor, ...) abort
|
||||
" Convert: anchor <string> => link in TOC
|
||||
" Called: vimwiki#base#table_of_contents
|
||||
" :param: anchor <string> <= Heading line
|
||||
" :param: (1) previous_anchors <dic[IN/OUT]> of previous normalized anchor
|
||||
" -- to know if must append -2, updated on the fly
|
||||
" A Trim space
|
||||
let anchor = vimwiki#u#trim(a:anchor)
|
||||
|
||||
@@ -744,12 +744,12 @@ function! vimwiki#base#normalize_anchor(anchor, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" :param: anchor <string> <= link
|
||||
" Return: [anchor_re <regex>, anchor_nb <number>, suffix_re <regex>] to look for
|
||||
" -- with or without suffix
|
||||
" -- Ex: ['toto", 2] => search for the second occurrence of toto
|
||||
" Called: jump_to_anchor
|
||||
function! vimwiki#base#unnormalize_anchor(anchor) abort
|
||||
" Convert: s_anchor_toc [anchor_re <regex>, anchor_nb <number>, suffix_re <regex>] to look for
|
||||
" Called: jump_to_anchor
|
||||
" :param: anchor <string> <= link
|
||||
" -- with or without suffix
|
||||
" -- Ex: ['toto", 2] => search for the second occurrence of toto
|
||||
" Note:
|
||||
" -- Pandoc keep the '_' in anchor
|
||||
" -- Done after: Add spaces leading and trailing => Later with the template
|
||||
@@ -821,9 +821,9 @@ function! vimwiki#base#unnormalize_anchor(anchor) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to anchor, doing the oposite of normalize_anchor
|
||||
" Called: edit_file
|
||||
function! s:jump_to_anchor(anchor) abort
|
||||
" Jump: to anchor, doing the oposite of normalize_anchor
|
||||
" Called: edit_file
|
||||
" Get segments <= anchor
|
||||
let anchor = vimwiki#u#escape(a:anchor)
|
||||
let segments = split(anchor, '#', 0)
|
||||
@@ -844,8 +844,8 @@ function! s:jump_to_anchor(anchor) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Called: jump_to_anchor with suffix and withtou suffix
|
||||
function! s:jump_to_segment(segment, segment_norm_re, segment_nb) abort
|
||||
" Called: jump_to_anchor with suffix and withtou suffix
|
||||
" Save cursor %% Initialize at top of line
|
||||
let oldpos = getpos('.')
|
||||
call cursor(1, 1)
|
||||
@@ -914,11 +914,11 @@ function! s:jump_to_segment(segment, segment_norm_re, segment_nb) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Returns: a list of all links inside the wiki file
|
||||
" Params: full path to a wiki file and its wiki number
|
||||
" Every list item has the form
|
||||
" [target file, anchor, line number of the link in source file, column number]
|
||||
function! s:get_links(wikifile, idx) abort
|
||||
" Get: a list of all links inside the wiki file
|
||||
" Params: full path to a wiki file and its wiki number
|
||||
" Every list item has the form
|
||||
" [target file, anchor, line number of the link in source file, column number]
|
||||
if !filereadable(a:wikifile)
|
||||
return []
|
||||
endif
|
||||
@@ -955,8 +955,8 @@ function! s:get_links(wikifile, idx) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Check if all wikilinks are reachable. Answer in quickfix
|
||||
function! vimwiki#base#check_links(range, line1, line2) abort
|
||||
" Check: if all wikilinks are reachable. Answer in quickfix
|
||||
if a:range == 0
|
||||
let wiki_list = [vimwiki#vars#get_bufferlocal('wiki_nr')]
|
||||
elseif a:range == 1
|
||||
@@ -1068,13 +1068,13 @@ function! vimwiki#base#check_links(range, line1, line2) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Open file (like :e)
|
||||
" :param: command <string>: ':e'
|
||||
" :param: filename <strign> vimwiki#vars#get_wikilocal('path') . key . vimwiki#vars#get_wikilocal('ext')
|
||||
" :param: anchor
|
||||
" :param: (1) vimwiki_prev_link
|
||||
" :param: (2) vimwiki#u#ft_is_vw()
|
||||
function! vimwiki#base#edit_file(command, filename, anchor, ...) abort
|
||||
" Edit File: (like :e)
|
||||
" :param: command <string>: ':e'
|
||||
" :param: filename <strign> vimwiki#vars#get_wikilocal('path') . key . vimwiki#vars#get_wikilocal('ext')
|
||||
" :param: anchor
|
||||
" :param: (1) vimwiki_prev_link
|
||||
" :param: (2) vimwiki#u#ft_is_vw()
|
||||
let fname = escape(a:filename, '% *|#`')
|
||||
let dir = fnamemodify(a:filename, ':p:h')
|
||||
|
||||
@@ -1120,9 +1120,9 @@ function! vimwiki#base#edit_file(command, filename, anchor, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Search for a 1. Pattern (usually a link) with 2. flags
|
||||
" Called by find_prev_link
|
||||
function! vimwiki#base#search_word(wikiRX, flags) abort
|
||||
" Search for a 1. Pattern (usually a link) with 2. flags
|
||||
" Called by find_prev_link
|
||||
let match_line = search(a:wikiRX, 's'.a:flags)
|
||||
if match_line == 0
|
||||
call vimwiki#u#echo('Wiki link not found')
|
||||
@@ -1130,8 +1130,8 @@ function! vimwiki#base#search_word(wikiRX, flags) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: part of the line that matches wikiRX at cursor
|
||||
function! vimwiki#base#matchstr_at_cursor(wikiRX) abort
|
||||
" Return: part of the line that matches wikiRX at cursor
|
||||
let col = col('.') - 1
|
||||
let line = getline('.')
|
||||
let ebeg = -1
|
||||
@@ -1154,8 +1154,8 @@ function! vimwiki#base#matchstr_at_cursor(wikiRX) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Replace next 1. wikiRX by 2. sub
|
||||
function! vimwiki#base#replacestr_at_cursor(wikiRX, sub) abort
|
||||
" Replace next 1. wikiRX by 2. sub
|
||||
" Gather: cursor info
|
||||
let col = col('.') - 1
|
||||
let line = getline('.')
|
||||
@@ -1183,9 +1183,9 @@ function! vimwiki#base#replacestr_at_cursor(wikiRX, sub) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Print list of global wiki to user
|
||||
" Called: by ui_select
|
||||
function! s:print_wiki_list() abort
|
||||
" Print list of global wiki to user
|
||||
" Called: by ui_select
|
||||
" Find the max name length for prettier formatting
|
||||
let max_len = 0
|
||||
for idx in range(vimwiki#vars#number_of_wikis())
|
||||
@@ -1219,11 +1219,11 @@ function! s:print_wiki_list() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Update link in fname.ext
|
||||
" Param: fname: the source file where to change links
|
||||
" Param: old: url regex of old path relative to wiki root
|
||||
" Param: new: url string of new path
|
||||
function! s:update_wiki_link(fname, old, new) abort
|
||||
" Update link in fname.ext
|
||||
" Param: fname: the source file where to change links
|
||||
" Param: old: url regex of old path relative to wiki root
|
||||
" Param: new: url string of new path
|
||||
call vimwiki#u#echo('Updating links in '.a:fname)
|
||||
let has_updates = 0
|
||||
let dest = []
|
||||
@@ -1243,11 +1243,11 @@ function! s:update_wiki_link(fname, old, new) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Update link for all files in dir
|
||||
" Param: old_url, new_url: path of the old, new url relative to ...
|
||||
" Param: dir: directory of the files, relative to wiki_root
|
||||
" Called: rename_link
|
||||
function! s:update_wiki_links(wiki_nr, dir, old_url, new_url) abort
|
||||
" Update link for all files in dir
|
||||
" Param: old_url, new_url: path of the old, new url relative to ...
|
||||
" Param: dir: directory of the files, relative to wiki_root
|
||||
" Called: rename_link
|
||||
" Get list of wiki files
|
||||
let wiki_root = vimwiki#vars#get_wikilocal('path', a:wiki_nr)
|
||||
let fsources = vimwiki#base#find_files(a:wiki_nr, 0)
|
||||
@@ -1312,9 +1312,9 @@ function! s:update_wiki_links(wiki_nr, dir, old_url, new_url) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Get tail of filename
|
||||
" TODO move me in path.vim
|
||||
function! s:tail_name(fname) abort
|
||||
" Get tail of filename
|
||||
" TODO move me in path.vim
|
||||
let result = substitute(a:fname, ':', '__colon__', 'g')
|
||||
let result = fnamemodify(result, ':t:r')
|
||||
let result = substitute(result, '__colon__', ':', 'g')
|
||||
@@ -1322,9 +1322,9 @@ function! s:tail_name(fname) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Get list of currently open buffer that are wiki files
|
||||
" Called: by rename_link
|
||||
function! s:get_wiki_buffers() abort
|
||||
" Get list of currently open buffer that are wiki files
|
||||
" Called: by rename_link
|
||||
let blist = []
|
||||
let bcount = 1
|
||||
while bcount<=bufnr('$')
|
||||
@@ -1343,9 +1343,9 @@ function! s:get_wiki_buffers() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Edit wiki file.
|
||||
" Called: by rename_link: Usefull for buffer commands
|
||||
function! s:open_wiki_buffer(item) abort
|
||||
" Edit wiki file.
|
||||
" Called: by rename_link: Usefull for buffer commands
|
||||
call vimwiki#base#edit_file(':e', a:item[0], '')
|
||||
if !empty(a:item[1])
|
||||
call vimwiki#vars#set_bufferlocal('prev_links', a:item[1], a:item[0])
|
||||
@@ -1353,10 +1353,10 @@ function! s:open_wiki_buffer(item) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Helper nested syntax
|
||||
" Called: by syntax/vimwiki (exported)
|
||||
" TODO move me out of base
|
||||
function! vimwiki#base#nested_syntax(filetype, start, end, textSnipHl) abort
|
||||
" Helper nested syntax
|
||||
" Called: by syntax/vimwiki (exported)
|
||||
" TODO move me out of base
|
||||
" From http://vim.wikia.com/wiki/VimTip857
|
||||
let ft=toupper(a:filetype)
|
||||
let group='textGroup'.ft
|
||||
@@ -1420,17 +1420,18 @@ function! vimwiki#base#nested_syntax(filetype, start, end, textSnipHl) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Create or update auto-generated listings in a wiki file, like TOC, diary
|
||||
" links, tags list etc.
|
||||
" - the listing consists of a header and a list of strings provided by a funcref
|
||||
" - a:content_regex is used to determine how long a potentially existing list is
|
||||
" - a:default_lnum is the line number where the new listing should be placed if
|
||||
" it's not already present
|
||||
" - if a:create is true, it will be created if it doesn't exist, otherwise it
|
||||
" will only be updated if it already exists
|
||||
" Called: by functions adding listing to buffer (this is an util function)
|
||||
function! vimwiki#base#update_listing_in_buffer(Generator, start_header,
|
||||
\ content_regex, default_lnum, header_level, create) abort
|
||||
" Create: or update auto-generated listings in a wiki file, like TOC, diary
|
||||
" links, tags list etc.
|
||||
" - the listing consists of a header and a list of strings provided by a funcref
|
||||
" - a:content_regex is used to determine how long a potentially existing list is
|
||||
" - a:default_lnum is the line number where the new listing should be placed if
|
||||
" it's not already present
|
||||
" - if a:create is true, it will be created if it doesn't exist, otherwise it
|
||||
" will only be updated if it already exists
|
||||
" Called: by functions adding listing to buffer (this is an util function)
|
||||
|
||||
" Clause: Vim behaves strangely when files change while in diff mode
|
||||
if &diff || &readonly
|
||||
return
|
||||
@@ -1545,22 +1546,22 @@ function! vimwiki#base#update_listing_in_buffer(Generator, start_header,
|
||||
endfunction
|
||||
|
||||
|
||||
" Find next task (Exported)
|
||||
function! vimwiki#base#find_next_task() abort
|
||||
" Find next task (Exported)
|
||||
let taskRegex = vimwiki#vars#get_wikilocal('rxListItemWithoutCB')
|
||||
\ . '\+\(\[ \]\s\+\)\zs'
|
||||
call vimwiki#base#search_word(taskRegex, '')
|
||||
endfunction
|
||||
|
||||
|
||||
" Find next link (Exported)
|
||||
function! vimwiki#base#find_next_link() abort
|
||||
" Find next link (Exported)
|
||||
call vimwiki#base#search_word(vimwiki#vars#get_syntaxlocal('rxAnyLink'), '')
|
||||
endfunction
|
||||
|
||||
|
||||
" Find previous link (Exported)
|
||||
function! vimwiki#base#find_prev_link() abort
|
||||
" Find previous link (Exported)
|
||||
"Jump 2 times if the cursor is in the middle of a link
|
||||
if synIDattr(synID(line('.'), col('.'), 0), 'name') =~# 'VimwikiLink.*' &&
|
||||
\ synIDattr(synID(line('.'), col('.')-1, 0), 'name') =~# 'VimwikiLink.*'
|
||||
@@ -1570,8 +1571,8 @@ function! vimwiki#base#find_prev_link() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to link target (Enter press, Exported)
|
||||
function! vimwiki#base#follow_link(split, ...) abort
|
||||
" Jump to link target (Enter press, Exported)
|
||||
let reuse_other_split_window = a:0 >= 1 ? a:1 : 0
|
||||
let move_cursor_to_new_window = a:0 >= 2 ? a:2 : 1
|
||||
|
||||
@@ -1661,8 +1662,8 @@ function! vimwiki#base#follow_link(split, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to previous link (Backspace press, Exported)
|
||||
function! vimwiki#base#go_back_link() abort
|
||||
" Jump to previous link (Backspace press, Exported)
|
||||
" Try pop previous link from buffer list
|
||||
let prev_links = vimwiki#vars#get_bufferlocal('prev_links')
|
||||
if !empty(prev_links)
|
||||
@@ -1684,8 +1685,8 @@ function! vimwiki#base#go_back_link() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Goto index file of wiki specified by index
|
||||
function! vimwiki#base#goto_index(wnum, ...) abort
|
||||
" Goto index file of wiki specified by index
|
||||
" if wnum = 0 the current wiki is used
|
||||
if a:wnum == 0
|
||||
let idx = vimwiki#vars#get_bufferlocal('wiki_nr')
|
||||
@@ -1721,8 +1722,8 @@ function! vimwiki#base#goto_index(wnum, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Delete current wiki file
|
||||
function! vimwiki#base#delete_link() abort
|
||||
" Delete current wiki file
|
||||
" Delete wiki file you are in from filesystem
|
||||
let val = input('Delete "'.expand('%').'" [y]es/[N]o? ')
|
||||
if val !~? '^y'
|
||||
@@ -1746,10 +1747,10 @@ function! vimwiki#base#delete_link() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Ask user for a new filepath
|
||||
" Returns: '' if fails
|
||||
" Called: rename_link
|
||||
function! s:input_rename_link() abort
|
||||
" Ask user for a new filepath
|
||||
" Returns: '' if fails
|
||||
" Called: rename_link
|
||||
" Ask confirmation
|
||||
let val = input('Rename "'.expand('%:t:r').'" [y]es/[N]o? ')
|
||||
if val !~? '^y'
|
||||
@@ -1779,10 +1780,10 @@ function! s:input_rename_link() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Rename current file, update all links to it
|
||||
" Param: [new_filepath <string>]
|
||||
" Exported: VimwikiRenameFile
|
||||
function! vimwiki#base#rename_link(...) abort
|
||||
" Rename current file, update all links to it
|
||||
" Param: [new_filepath <string>]
|
||||
" Exported: VimwikiRenameFile
|
||||
" Get filename and dir relative to wiki root
|
||||
let subdir = vimwiki#vars#get_bufferlocal('subdir')
|
||||
" Get old file directory relative to current path
|
||||
@@ -1902,9 +1903,9 @@ function! vimwiki#base#rename_link(...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Spawn User Interface to select wiki project
|
||||
" Called by VimwikiUISelect (Globally Exported)
|
||||
function! vimwiki#base#ui_select() abort
|
||||
" Spawn User Interface to select wiki project
|
||||
" Called by VimwikiUISelect (Globally Exported)
|
||||
call s:print_wiki_list()
|
||||
let idx = input('Select Wiki by number and press <Enter> (empty cancels): ')
|
||||
if idx ==# ''
|
||||
@@ -1918,8 +1919,8 @@ function! vimwiki#base#ui_select() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to next header (Exported for text object)
|
||||
function! vimwiki#base#TO_header(inner, including_subheaders, count) abort
|
||||
" Jump to next header (Exported for text object)
|
||||
let headers = s:collect_headers()
|
||||
if empty(headers)
|
||||
return
|
||||
@@ -1972,8 +1973,8 @@ function! vimwiki#base#TO_header(inner, including_subheaders, count) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to next table cell (Exported for text object)
|
||||
function! vimwiki#base#TO_table_cell(inner, visual) abort
|
||||
" Jump to next table cell (Exported for text object)
|
||||
if col('.') == col('$')-1
|
||||
return
|
||||
endif
|
||||
@@ -2038,8 +2039,8 @@ function! vimwiki#base#TO_table_cell(inner, visual) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to next table col (Exported for text object)
|
||||
function! vimwiki#base#TO_table_col(inner, visual) abort
|
||||
" Jump to next table col (Exported for text object)
|
||||
let t_rows = vimwiki#tbl#get_rows(line('.'))
|
||||
if empty(t_rows)
|
||||
return
|
||||
@@ -2154,8 +2155,8 @@ function! vimwiki#base#TO_table_col(inner, visual) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Increase header level (Exported)
|
||||
function! vimwiki#base#AddHeaderLevel(...) abort
|
||||
" Increase header level (Exported)
|
||||
" Clause, argument must be <= 1
|
||||
" Actually argument is not used :-)
|
||||
if a:1 > 1
|
||||
@@ -2188,8 +2189,8 @@ function! vimwiki#base#AddHeaderLevel(...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Decrease header level (Exported)
|
||||
function! vimwiki#base#RemoveHeaderLevel(...) abort
|
||||
" Decrease header level (Exported)
|
||||
" Clause, argument must be <= 1
|
||||
" Actually argument is not used :-)
|
||||
if a:1 > 1
|
||||
@@ -2227,9 +2228,9 @@ function! vimwiki#base#RemoveHeaderLevel(...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Returns: all the headers in the current buffer as a list of the form
|
||||
" [[line_number, header_level, header_text], [...], [...], ...]
|
||||
function! s:collect_headers() abort
|
||||
" Returns: all the headers in the current buffer as a list of the form
|
||||
" [[line_number, header_level, header_text], [...], [...], ...]
|
||||
" Init loop variables
|
||||
let is_inside_pre_or_math = 0 " 1: inside pre, 2: inside math, 0: outside
|
||||
let headers = []
|
||||
@@ -2286,9 +2287,9 @@ function! s:collect_headers() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Returns: header index at cursor position
|
||||
" Called: by header cursor movements
|
||||
function! s:current_header(headers, line_number) abort
|
||||
" Returns: header index at cursor position
|
||||
" Called: by header cursor movements
|
||||
if empty(a:headers)
|
||||
return -1
|
||||
endif
|
||||
@@ -2305,9 +2306,9 @@ function! s:current_header(headers, line_number) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Returns: heading with link urls
|
||||
" Called: table_of_content
|
||||
function! s:clean_header_text(h_text) abort
|
||||
" Returns: heading with link urls
|
||||
" Called: table_of_content
|
||||
" Note: I hardcode, who cares ?
|
||||
let h_text = a:h_text
|
||||
|
||||
@@ -2321,9 +2322,9 @@ function! s:clean_header_text(h_text) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Returns: index of neighbor header
|
||||
" Called: by header cursor movements
|
||||
function! s:get_another_header(headers, current_index, direction, operation) abort
|
||||
" Returns: index of neighbor header
|
||||
" Called: by header cursor movements
|
||||
if empty(a:headers) || a:current_index < 0
|
||||
return -1
|
||||
endif
|
||||
@@ -2342,8 +2343,8 @@ function! s:get_another_header(headers, current_index, direction, operation) abo
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to parent header
|
||||
function! vimwiki#base#goto_parent_header() abort
|
||||
" Jump to parent header
|
||||
let headers = s:collect_headers()
|
||||
let current_header_index = s:current_header(headers, line('.'))
|
||||
let parent_header = s:get_another_header(headers, current_header_index, -1, '<')
|
||||
@@ -2355,8 +2356,8 @@ function! vimwiki#base#goto_parent_header() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to next header
|
||||
function! vimwiki#base#goto_next_header() abort
|
||||
" Jump to next header
|
||||
let headers = s:collect_headers()
|
||||
let current_header_index = s:current_header(headers, line('.'))
|
||||
if current_header_index >= 0 && current_header_index < len(headers) - 1
|
||||
@@ -2369,8 +2370,8 @@ function! vimwiki#base#goto_next_header() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to previous header
|
||||
function! vimwiki#base#goto_prev_header() abort
|
||||
" Jump to previous header
|
||||
let headers = s:collect_headers()
|
||||
let current_header_index = s:current_header(headers, line('.'))
|
||||
" if the cursor already was on a header, jump to the previous one
|
||||
@@ -2385,8 +2386,8 @@ function! vimwiki#base#goto_prev_header() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to sibling header, next or previous (with same level)
|
||||
function! vimwiki#base#goto_sibling(direction) abort
|
||||
" Jump to sibling header, next or previous (with same level)
|
||||
let headers = s:collect_headers()
|
||||
let current_header_index = s:current_header(headers, line('.'))
|
||||
let next_potential_sibling =
|
||||
@@ -2400,10 +2401,10 @@ function! vimwiki#base#goto_sibling(direction) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Create buffer TOC (Exported)
|
||||
" a:create == 1: creates or updates TOC in current file
|
||||
" a:create == 0: update if TOC exists
|
||||
function! vimwiki#base#table_of_contents(create) abort
|
||||
" Create buffer TOC (Exported)
|
||||
" a:create == 1: creates or updates TOC in current file
|
||||
" a:create == 0: update if TOC exists
|
||||
" Gather heading
|
||||
let headers = s:collect_headers()
|
||||
let toc_header_text = vimwiki#vars#get_wikilocal('toc_header')
|
||||
@@ -2508,13 +2509,13 @@ function! vimwiki#base#table_of_contents(create) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Construct a regular expression matching from template (with special
|
||||
" characters properly escaped), by substituting rxUrl for __LinkUrl__, rxDesc
|
||||
" for __LinkDescription__, rxStyle for __LinkStyle__ and rxExtension for
|
||||
" __FileExtension__. The four arguments rxUrl, rxDesc, rxStyle and
|
||||
" rxExtension are copied verbatim, without any special character escapes or
|
||||
" substitutions.
|
||||
function! vimwiki#base#apply_template(template, rxUrl, rxDesc, rxStyle, rxExtension) abort
|
||||
" Construct a regular expression matching from template (with special
|
||||
" characters properly escaped), by substituting rxUrl for __LinkUrl__, rxDesc
|
||||
" for __LinkDescription__, rxStyle for __LinkStyle__ and rxExtension for
|
||||
" __FileExtension__. The four arguments rxUrl, rxDesc, rxStyle and
|
||||
" rxExtension are copied verbatim, without any special character escapes or
|
||||
" substitutions.
|
||||
let lnk = a:template
|
||||
if a:rxUrl !=? ''
|
||||
let lnk = s:safesubstitute(lnk, '__LinkUrl__', a:rxUrl, 'g')
|
||||
@@ -2532,8 +2533,8 @@ function! vimwiki#base#apply_template(template, rxUrl, rxDesc, rxStyle, rxExtens
|
||||
endfunction
|
||||
|
||||
|
||||
" Helper: Clean url string
|
||||
function! s:clean_url(url) abort
|
||||
" Helper: Clean url string
|
||||
" don't use an extension as part of the description
|
||||
let url = substitute(a:url, '\'.vimwiki#vars#get_wikilocal('ext').'$', '', '')
|
||||
" remove protocol and tld
|
||||
@@ -2562,10 +2563,10 @@ function! s:clean_url(url) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Check if 1.filename is a diary file
|
||||
" An optional second argument allows you to pass in a list of diary files rather
|
||||
" than generating a list on each call to the function.
|
||||
function! vimwiki#base#is_diary_file(filename, ...) abort
|
||||
" Check if 1.filename is a diary file
|
||||
" An optional second argument allows you to pass in a list of diary files rather
|
||||
" than generating a list on each call to the function.
|
||||
let l:diary_file_paths = a:0 > 0 ? a:1 : vimwiki#diary#get_diary_files()
|
||||
let l:normalised_file_paths =
|
||||
\ map(l:diary_file_paths, 'vimwiki#path#normalize(v:val)')
|
||||
@@ -2577,9 +2578,9 @@ function! vimwiki#base#is_diary_file(filename, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Treat link string towards normalization
|
||||
" [__LinkDescription__](__LinkUrl__.__FileExtension__)
|
||||
function! vimwiki#base#normalize_link_helper(str, rxUrl, rxDesc, template) abort
|
||||
" Treat link string towards normalization
|
||||
" [__LinkDescription__](__LinkUrl__.__FileExtension__)
|
||||
let url = matchstr(a:str, a:rxUrl)
|
||||
if vimwiki#vars#get_wikilocal('syntax') ==# 'markdown' && vimwiki#vars#get_wikilocal('markdown_link_ext')
|
||||
" Strip the extension if it exists so it doesn't get added multiple times
|
||||
@@ -2600,8 +2601,8 @@ function! vimwiki#base#normalize_link_helper(str, rxUrl, rxDesc, template) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Treat imagelink string towards normalization
|
||||
function! vimwiki#base#normalize_imagelink_helper(str, rxUrl, rxDesc, rxStyle, template) abort
|
||||
" Treat imagelink string towards normalization
|
||||
let lnk = vimwiki#base#normalize_link_helper(a:str, a:rxUrl, a:rxDesc, a:template)
|
||||
let style = matchstr(a:str, a:rxStyle)
|
||||
let lnk = s:safesubstitute(lnk, '__LinkStyle__', style, '')
|
||||
@@ -2609,9 +2610,9 @@ function! vimwiki#base#normalize_imagelink_helper(str, rxUrl, rxDesc, rxStyle, t
|
||||
endfunction
|
||||
|
||||
|
||||
" Normalize link in a diary file
|
||||
" Refactor: in diary
|
||||
function! vimwiki#base#normalize_link_in_diary(lnk) abort
|
||||
" Normalize link in a diary file
|
||||
" Refactor: in diary
|
||||
let sc = vimwiki#vars#get_wikilocal('links_space_char')
|
||||
let link = a:lnk . vimwiki#vars#get_wikilocal('ext')
|
||||
let link_wiki = substitute(vimwiki#vars#get_wikilocal('path') . '/' . link, '\s', sc, 'g')
|
||||
@@ -2647,8 +2648,8 @@ function! vimwiki#base#normalize_link_in_diary(lnk) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Normalize link in normal mode Enter keypress
|
||||
function! s:normalize_link_syntax_n() abort
|
||||
" Normalize link in normal mode Enter keypress
|
||||
" try WikiLink
|
||||
let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink'))
|
||||
if !empty(lnk)
|
||||
@@ -2696,9 +2697,9 @@ function! s:normalize_link_syntax_n() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" TODO mutualize most code with syntax_n
|
||||
" Normalize link in visual mode Enter keypress
|
||||
function! s:normalize_link_syntax_v() abort
|
||||
" TODO mutualize most code with syntax_n
|
||||
" Normalize link in visual mode Enter keypress
|
||||
" Get selection content
|
||||
let visual_selection = vimwiki#u#get_selection()
|
||||
|
||||
@@ -2728,8 +2729,8 @@ function! s:normalize_link_syntax_v() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Normalize link (Implemented as a switch function)
|
||||
function! vimwiki#base#normalize_link(is_visual_mode) abort
|
||||
" Normalize link (Implemented as a switch function)
|
||||
" If visual mode
|
||||
if a:is_visual_mode
|
||||
return s:normalize_link_syntax_v()
|
||||
@@ -2745,9 +2746,9 @@ function! vimwiki#base#normalize_link(is_visual_mode) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Get nested syntax are present
|
||||
" Return: dictionary of syntaxes
|
||||
function! vimwiki#base#detect_nested_syntax() abort
|
||||
" Get nested syntax are present
|
||||
" Return: dictionary of syntaxes
|
||||
let last_word = '\v.*<(\w+)\s*$'
|
||||
let lines = map(filter(getline(1, '$'), 'v:val =~# "\\%({{{\\|`\\{3,\}\\|\\~\\{3,\}\\)" && v:val =~# last_word'),
|
||||
\ 'substitute(v:val, last_word, "\\=submatch(1)", "")')
|
||||
@@ -2759,15 +2760,15 @@ function! vimwiki#base#detect_nested_syntax() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Complete escaping globlinks
|
||||
function! vimwiki#base#complete_links_escaped(ArgLead, CmdLine, CursorPos) abort
|
||||
" Complete escaping globlinks
|
||||
return vimwiki#base#get_globlinks_escaped(a:ArgLead)
|
||||
endfunction
|
||||
|
||||
|
||||
" Complete filename relatie to current file
|
||||
" Called: rename_link
|
||||
function! vimwiki#base#complete_file(ArgLead, CmdLine, CursorPos) abort
|
||||
" Complete filename relatie to current file
|
||||
" Called: rename_link
|
||||
" Start from current file
|
||||
let base_path = expand('%:h')
|
||||
|
||||
@@ -2782,9 +2783,9 @@ function! vimwiki#base#complete_file(ArgLead, CmdLine, CursorPos) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Read caption
|
||||
" Called: by generate_links
|
||||
function! vimwiki#base#read_caption(file) abort
|
||||
" Read caption
|
||||
" Called: by generate_links
|
||||
let rx_header = vimwiki#vars#get_syntaxlocal('rxHeader')
|
||||
|
||||
if filereadable(a:file)
|
||||
@@ -2799,9 +2800,9 @@ function! vimwiki#base#read_caption(file) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Search for 1.pattern
|
||||
" Called by commands VimwikiSearch and VWS
|
||||
function! vimwiki#base#search(search_pattern) abort
|
||||
" Search for 1.pattern
|
||||
" Called by commands VimwikiSearch and VWS
|
||||
if empty(a:search_pattern)
|
||||
call vimwiki#u#error('No search pattern given.')
|
||||
return
|
||||
@@ -2828,8 +2829,8 @@ function! vimwiki#base#search(search_pattern) abort
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
" used by function linkify to extract web page <title>
|
||||
function! s:get_title(match) abort
|
||||
" used by function linkify to extract web page <title>
|
||||
" Do not overwrite if g:page_title is already set
|
||||
" when there are multiple <title> tags, only use the first one
|
||||
" this is a side effect of the substitute's 'n' flag (count number of
|
||||
@@ -2853,8 +2854,8 @@ function! s:get_title(match) abort
|
||||
let g:page_title = l:title
|
||||
endfunction
|
||||
|
||||
" transform the url under the cursor to a wiki link
|
||||
function! vimwiki#base#linkify() abort
|
||||
" Transform: the url under the cursor to a wiki link
|
||||
let g:page_title = ''
|
||||
|
||||
" save existing value of @u and delete url under the cursor into @u
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
#
|
||||
# This script converts markdown into html, to be used with vimwiki's
|
||||
@@ -26,10 +26,10 @@
|
||||
# internal wiki2html converter.
|
||||
#
|
||||
|
||||
MARKDOWN=markdown
|
||||
MKD2HTML=mkd2html
|
||||
|
||||
|
||||
# shellcheck disable=SC2034 # FORCE appears unused
|
||||
FORCE="$1"
|
||||
SYNTAX="$2"
|
||||
EXTENSION="$3"
|
||||
@@ -37,14 +37,16 @@ OUTPUTDIR="$4"
|
||||
INPUT="$5"
|
||||
CSSFILE="$6"
|
||||
|
||||
FORCEFLAG=
|
||||
|
||||
[ $FORCE -eq 0 ] || { FORCEFLAG="-f"; };
|
||||
[ $SYNTAX = "markdown" ] || { echo "Error: Unsupported syntax"; exit -2; };
|
||||
[[ "$SYNTAX" == "markdown" ]] || { echo "Error: Unsupported syntax"; exit 2; };
|
||||
|
||||
OUTPUT="$OUTPUTDIR"/$(basename "$INPUT" .$EXTENSION).html
|
||||
OUTPUT="$OUTPUTDIR/$(basename "$INPUT" . "$EXTENSION").html"
|
||||
|
||||
# # Method 1:
|
||||
# FORCEFLAG=
|
||||
# (( "$FORCE" == 0 )) || { FORCEFLAG="-f"; };
|
||||
# MARKDOWN=markdown
|
||||
#
|
||||
# # markdown [-d] [-T] [-V] [-b url-base] [-C prefix] [-F bitmap] [-f flags] [-o file] [-s text] [-t text] [textfile]
|
||||
#
|
||||
# URLBASE=http://example.com
|
||||
@@ -57,6 +59,3 @@ OUTPUT="$OUTPUTDIR"/$(basename "$INPUT" .$EXTENSION).html
|
||||
$MKD2HTML -css "$CSSFILE" "$INPUT"
|
||||
OUTPUTTMP=$(dirname "$INPUT")/$(basename "$INPUT" ."$EXTENSION").html
|
||||
mv -f "$OUTPUTTMP" "$OUTPUT"
|
||||
|
||||
|
||||
|
||||
|
||||
+26
-26
@@ -11,8 +11,8 @@ endif
|
||||
let g:loaded_vimwiki_diary_auto = 1
|
||||
|
||||
|
||||
" Add zero prefix to a number
|
||||
function! s:prefix_zero(num) abort
|
||||
" Add zero prefix to a number
|
||||
if a:num < 10
|
||||
return '0'.a:num
|
||||
endif
|
||||
@@ -20,23 +20,23 @@ function! s:prefix_zero(num) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: diary directory path <String>
|
||||
function! s:diary_path(...) abort
|
||||
" Return: diary directory path <String>
|
||||
let idx = a:0 == 0 ? vimwiki#vars#get_bufferlocal('wiki_nr') : a:1
|
||||
return vimwiki#vars#get_wikilocal('path', idx).vimwiki#vars#get_wikilocal('diary_rel_path', idx)
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: diary index file path <String>
|
||||
function! s:diary_index(...) abort
|
||||
" Return: diary index file path <String>
|
||||
let idx = a:0 == 0 ? vimwiki#vars#get_bufferlocal('wiki_nr') : a:1
|
||||
return s:diary_path(idx).vimwiki#vars#get_wikilocal('diary_index', idx).
|
||||
\ vimwiki#vars#get_wikilocal('ext', idx)
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: <String> date
|
||||
function! vimwiki#diary#diary_date_link(...) abort
|
||||
" Return: <String> date
|
||||
if a:0
|
||||
let l:timestamp = a:1
|
||||
else
|
||||
@@ -91,8 +91,8 @@ function! vimwiki#diary#diary_date_link(...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: <int:index, list:links>
|
||||
function! s:get_position_links(link) abort
|
||||
" Return: <int:index, list:links>
|
||||
let idx = -1
|
||||
let links = []
|
||||
if a:link =~# '^\d\{4}-\d\d-\d\d'
|
||||
@@ -108,14 +108,14 @@ function! s:get_position_links(link) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Convert month: number -> name
|
||||
function! s:get_month_name(month) abort
|
||||
" Convert month: number -> name
|
||||
return vimwiki#vars#get_global('diary_months')[str2nr(a:month)]
|
||||
endfunction
|
||||
|
||||
|
||||
" Get the first header in the file within the first s:vimwiki_max_scan_for_caption lines.
|
||||
function! s:get_first_header(fl) abort
|
||||
" Get the first header in the file within the first s:vimwiki_max_scan_for_caption lines.
|
||||
let header_rx = vimwiki#vars#get_syntaxlocal('rxHeader')
|
||||
|
||||
for line in readfile(a:fl, '', g:vimwiki_max_scan_for_caption)
|
||||
@@ -127,9 +127,9 @@ function! s:get_first_header(fl) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Get a list of all headers in a file up to a given level.
|
||||
" Return: list whose elements are pairs [level, title]
|
||||
function! s:get_all_headers(fl, maxlevel) abort
|
||||
" Get a list of all headers in a file up to a given level.
|
||||
" Return: list whose elements are pairs [level, title]
|
||||
let headers_rx = {}
|
||||
for i in range(1, a:maxlevel)
|
||||
let headers_rx[i] = vimwiki#vars#get_syntaxlocal('rxH'.i.'_Text')
|
||||
@@ -147,8 +147,8 @@ function! s:get_all_headers(fl, maxlevel) abort
|
||||
return headers
|
||||
endfunction
|
||||
|
||||
" Count headers with level <= maxlevel in a list of [level, title] pairs.
|
||||
function! s:count_headers_level_less_equal(headers, maxlevel) abort
|
||||
" Count headers with level <= maxlevel in a list of [level, title] pairs.
|
||||
let l:count = 0
|
||||
for [header_level, _] in a:headers
|
||||
if header_level <= a:maxlevel
|
||||
@@ -159,8 +159,8 @@ function! s:count_headers_level_less_equal(headers, maxlevel) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Get the minimum level of any header in a list of [level, title] pairs.
|
||||
function! s:get_min_header_level(headers) abort
|
||||
" Get the minimum level of any header in a list of [level, title] pairs.
|
||||
if len(a:headers) == 0
|
||||
return 0
|
||||
endif
|
||||
@@ -172,9 +172,9 @@ function! s:get_min_header_level(headers) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Read all cpation in 1. <List>files
|
||||
" Return: <Dic>: key -> caption
|
||||
function! s:read_captions(files) abort
|
||||
" Read all cpation in 1. <List>files
|
||||
" Return: <Dic>: key -> caption
|
||||
let result = {}
|
||||
let caption_level = vimwiki#vars#get_wikilocal('diary_caption_level')
|
||||
|
||||
@@ -215,8 +215,8 @@ function! s:read_captions(files) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: <list> diary file names
|
||||
function! vimwiki#diary#get_diary_files() abort
|
||||
" Return: <list> diary file names
|
||||
let rx = '^\d\{4}-\d\d-\d\d'
|
||||
let s_files = glob(vimwiki#vars#get_wikilocal('path').
|
||||
\ vimwiki#vars#get_wikilocal('diary_rel_path').'*'.vimwiki#vars#get_wikilocal('ext'))
|
||||
@@ -230,8 +230,8 @@ function! vimwiki#diary#get_diary_files() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: <dic> nested -> links
|
||||
function! s:group_links(links) abort
|
||||
" Return: <dic> nested -> links
|
||||
let result = {}
|
||||
let p_year = 0
|
||||
let p_month = 0
|
||||
@@ -253,8 +253,8 @@ function! s:group_links(links) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Sort list
|
||||
function! s:sort(lst) abort
|
||||
" Sort list
|
||||
if vimwiki#vars#get_wikilocal('diary_sort') ==? 'desc'
|
||||
return reverse(sort(a:lst))
|
||||
else
|
||||
@@ -266,11 +266,11 @@ function! vimwiki#diary#diary_sort(lst) abort
|
||||
return s:sort(a:lst)
|
||||
endfunction
|
||||
|
||||
" Create note
|
||||
" The given wiki number a:wnum is 1 for the first wiki, 2 for the second and so on. This is in
|
||||
" contrast to most other places, where counting starts with 0. When a:wnum is 0, the current wiki
|
||||
" is used.
|
||||
function! vimwiki#diary#make_note(wnum, ...) abort
|
||||
" Create note
|
||||
" The given wiki number a:wnum is 1 for the first wiki, 2 for the second and so on. This is in
|
||||
" contrast to most other places, where counting starts with 0. When a:wnum is 0, the current wiki
|
||||
" is used.
|
||||
if a:wnum == 0
|
||||
let wiki_nr = vimwiki#vars#get_bufferlocal('wiki_nr')
|
||||
if wiki_nr < 0 " this happens when e.g. VimwikiMakeDiaryNote was called outside a wiki buffer
|
||||
@@ -308,8 +308,8 @@ function! vimwiki#diary#make_note(wnum, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to diary index of 1. <Int> wikinumber
|
||||
function! vimwiki#diary#goto_diary_index(wnum) abort
|
||||
" Jump to diary index of 1. <Int> wikinumber
|
||||
" if wnum = 0 the current wiki is used
|
||||
if a:wnum == 0
|
||||
let idx = vimwiki#vars#get_bufferlocal('wiki_nr')
|
||||
@@ -334,8 +334,8 @@ function! vimwiki#diary#goto_diary_index(wnum) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to next day
|
||||
function! vimwiki#diary#goto_next_day() abort
|
||||
" Jump to next day
|
||||
let link = ''
|
||||
let [idx, links] = s:get_position_links(expand('%:t:r'))
|
||||
|
||||
@@ -356,8 +356,8 @@ function! vimwiki#diary#goto_next_day() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Jump to previous day
|
||||
function! vimwiki#diary#goto_prev_day() abort
|
||||
" Jump to previous day
|
||||
let link = ''
|
||||
let [idx, links] = s:get_position_links(expand('%:t:r'))
|
||||
|
||||
@@ -378,8 +378,8 @@ function! vimwiki#diary#goto_prev_day() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Create diary index content
|
||||
function! vimwiki#diary#generate_diary_section() abort
|
||||
" Create diary index content
|
||||
let GeneratorDiary = copy(l:)
|
||||
function! GeneratorDiary.f() abort
|
||||
let lines = []
|
||||
@@ -476,8 +476,8 @@ function! vimwiki#diary#generate_diary_section() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Callback function for Calendar.vim
|
||||
function! vimwiki#diary#calendar_action(day, month, year, week, dir) abort
|
||||
" Callback function for Calendar.vim
|
||||
let day = s:prefix_zero(a:day)
|
||||
let month = s:prefix_zero(a:month)
|
||||
|
||||
@@ -499,8 +499,8 @@ function! vimwiki#diary#calendar_action(day, month, year, week, dir) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Callback function for Calendar.vim
|
||||
function! vimwiki#diary#calendar_sign(day, month, year) abort
|
||||
" Callback function for Calendar.vim
|
||||
let day = s:prefix_zero(a:day)
|
||||
let month = s:prefix_zero(a:month)
|
||||
let sfile = vimwiki#vars#get_wikilocal('path').vimwiki#vars#get_wikilocal('diary_rel_path').
|
||||
|
||||
@@ -1759,6 +1759,7 @@ let s:emoji_dic = {}
|
||||
|
||||
|
||||
function! vimwiki#emoji#get_dic() abort
|
||||
" Get Dic:
|
||||
if s:emoji_dic == {}
|
||||
call extend(s:emoji_dic, s:emoji_multiple)
|
||||
call extend(s:emoji_dic, s:emoji_single)
|
||||
@@ -1766,17 +1767,17 @@ function! vimwiki#emoji#get_dic() abort
|
||||
return s:emoji_dic
|
||||
endfunction
|
||||
|
||||
" Conceal
|
||||
function! vimwiki#emoji#apply_conceal() abort
|
||||
" Apply Conceal:
|
||||
for [name, emoji] in items(s:emoji_single)
|
||||
exe 'syn keyword VimwikiEmoji :' . name . ': conceal cchar=' . emoji
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
|
||||
" Junegunn fuzzy hack
|
||||
let s:max_score = 1000
|
||||
function! s:score(haystack, needle) abort
|
||||
" Get Score: Junegunn fuzzy hack
|
||||
let idx = stridx(a:haystack, a:needle)
|
||||
if idx < 0 | return idx | endif
|
||||
if idx == 0 | return s:max_score * 2 | endif
|
||||
@@ -1785,8 +1786,8 @@ function! s:score(haystack, needle) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Complete
|
||||
function! vimwiki#emoji#complete(findstart, base) abort
|
||||
" Complete:
|
||||
" Init full list if must
|
||||
if s:emojis == []
|
||||
let s:emojis = map(sort(keys(vimwiki#emoji#get_dic())),
|
||||
|
||||
@@ -417,9 +417,9 @@ function! s:tag_code(value) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" match n-th ARG within {{URL[|ARG1|ARG2|...]}}
|
||||
" *c,d,e),...
|
||||
function! s:incl_match_arg(nn_index) abort
|
||||
" match n-th ARG within {{URL[|ARG1|ARG2|...]}}
|
||||
" *c,d,e),...
|
||||
let rx = vimwiki#vars#get_global('rxWikiInclPrefix'). vimwiki#vars#get_global('rxWikiInclUrl')
|
||||
let rx = rx . repeat(vimwiki#vars#get_global('rxWikiInclSeparator') .
|
||||
\ vimwiki#vars#get_global('rxWikiInclArg'), a:nn_index-1)
|
||||
|
||||
+93
-98
@@ -134,17 +134,17 @@ function! vimwiki#lst#get_list_margin() abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Returns: the column where the text of a line starts (possible list item
|
||||
"markers and checkboxes are skipped)
|
||||
function! s:text_begin(lnum) abort
|
||||
" Returns: the column where the text of a line starts (possible list item
|
||||
" markers and checkboxes are skipped)
|
||||
return s:string_length(matchstr(getline(a:lnum), vimwiki#vars#get_wikilocal('rxListItem')))
|
||||
endfunction
|
||||
|
||||
|
||||
"Returns: 2 if there is a marker and text
|
||||
" 1 for a marker and no text
|
||||
" 0 for no marker at all (empty line or only text)
|
||||
function! s:line_has_marker(lnum) abort
|
||||
" Returns: 2 if there is a marker and text
|
||||
" 1 for a marker and no text
|
||||
" 0 for no marker at all (empty line or only text)
|
||||
if getline(a:lnum) =~# vimwiki#vars#get_wikilocal('rxListItem').'\s*$'
|
||||
return 1
|
||||
elseif getline(a:lnum) =~# vimwiki#vars#get_wikilocal('rxListItem').'\s*\S'
|
||||
@@ -155,8 +155,8 @@ function! s:line_has_marker(lnum) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Remove a list item and it's children (recursive)
|
||||
function! s:remove_including_children(item) abort
|
||||
" Remove a list item and it's children (recursive)
|
||||
let num_removed_lines = 1
|
||||
let child = s:get_first_child(a:item)
|
||||
while child.type != 0
|
||||
@@ -177,13 +177,13 @@ endfunction
|
||||
" get properties of a list item
|
||||
" ---------------------------------------------------------
|
||||
|
||||
"Returns: the mainly used data structure in this file
|
||||
"An item represents a single list item and is a dictionary with the keys
|
||||
"lnum - the line number of the list item
|
||||
"type - 1 for bulleted item, 2 for numbered item, 0 for a regular line (default)
|
||||
"mrkr - the concrete marker, e.g. '**' or 'b)' (default '')
|
||||
"cb - the char in the checkbox or '' if there is no checkbox
|
||||
function! s:get_item(lnum) abort
|
||||
" Returns: the mainly used data structure in this file
|
||||
" An item represents a single list item and is a dictionary with the keys
|
||||
" lnum - the line number of the list item
|
||||
" type - 1 for bulleted item, 2 for numbered item, 0 for a regular line (default)
|
||||
" mrkr - the concrete marker, e.g. '**' or 'b)' (default '')
|
||||
" cb - the char in the checkbox or '' if there is no checkbox
|
||||
" Init default
|
||||
let item = {'lnum': a:lnum}
|
||||
let item.type = 0
|
||||
@@ -220,13 +220,14 @@ endfunction
|
||||
|
||||
|
||||
function! s:empty_item() abort
|
||||
" Craft: empty item
|
||||
return {'type': 0}
|
||||
endfunction
|
||||
|
||||
|
||||
"Returns: level of the line
|
||||
"0 is the 'highest' level
|
||||
function! s:get_level(lnum) abort
|
||||
" Returns: level of the line
|
||||
" 0 is the 'highest' level
|
||||
if getline(a:lnum) =~# '^\s*$'
|
||||
return 0
|
||||
endif
|
||||
@@ -243,10 +244,10 @@ function! s:get_level(lnum) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Returns: 1, a, i, A, I or ''
|
||||
"If in doubt if alphanumeric character or romanian
|
||||
"numeral, peek in the previous line
|
||||
function! s:guess_kind_of_numbered_item(item) abort
|
||||
" Returns: 1, a, i, A, I or ''
|
||||
" If in doubt if alphanumeric character or romanian
|
||||
" numeral, peek in the previous line
|
||||
if a:item.type != 2 | return '' | endif
|
||||
let number_chars = a:item.mrkr[:-2]
|
||||
let divisor = a:item.mrkr[-1:]
|
||||
@@ -324,8 +325,8 @@ function! s:regexp_of_marker(item) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Returns: Whether or not the checkbox of a list item is [X] or [-]
|
||||
function! s:is_closed(item) abort
|
||||
" Returns: Whether or not the checkbox of a list item is [X] or [-]
|
||||
let state = a:item.cb
|
||||
return state ==# vimwiki#vars#get_wikilocal('listsyms_list')[-1]
|
||||
\ || state ==# vimwiki#vars#get_global('listsym_rejected')
|
||||
@@ -335,9 +336,9 @@ endfunction
|
||||
" functions for navigating between items
|
||||
" ---------------------------------------------------------
|
||||
|
||||
"Returns: the list item after a:item or an empty item
|
||||
"If a:ignore_kind is 1, the markers can differ
|
||||
function! s:get_next_list_item(item, ignore_kind) abort
|
||||
" Returns: the list item after a:item or an empty item
|
||||
" If a:ignore_kind is 1, the markers can differ
|
||||
let org_lvl = s:get_level(a:item.lnum)
|
||||
if !a:ignore_kind
|
||||
let org_regex = s:regexp_of_marker(a:item)
|
||||
@@ -359,9 +360,9 @@ function! s:get_next_list_item(item, ignore_kind) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Returns: the list item before a:item or an empty item
|
||||
"If a:ignore_kind is 1, the markers can differ
|
||||
function! s:get_prev_list_item(item, ignore_kind) abort
|
||||
" Returns: the list item before a:item or an empty item
|
||||
" If a:ignore_kind is 1, the markers can differ
|
||||
let org_lvl = s:get_level(a:item.lnum)
|
||||
if !a:ignore_kind
|
||||
let org_regex = s:regexp_of_marker(a:item)
|
||||
@@ -434,11 +435,11 @@ function! s:get_last_item_in_list(item, ignore_kind) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Returns: lnum+1 in most cases, but skips blank lines and preformatted text,
|
||||
"0 in case of nonvalid line.
|
||||
"If there is no second argument, 0 is returned at a header, otherwise the
|
||||
"header is skipped
|
||||
function! s:get_next_line(lnum, ...) abort
|
||||
" Returns: lnum+1 in most cases, but skips blank lines and preformatted text,
|
||||
" 0 in case of nonvalid line.
|
||||
" If there is no second argument, 0 is returned at a header, otherwise the
|
||||
" header is skipped
|
||||
if getline(a:lnum) =~# vimwiki#vars#get_syntaxlocal('rxPreStart')
|
||||
let cur_ln = a:lnum + 1
|
||||
while cur_ln <= line('$') && getline(cur_ln) !~# vimwiki#vars#get_syntaxlocal('rxPreEnd')
|
||||
@@ -464,9 +465,9 @@ function! s:get_next_line(lnum, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Returns: lnum-1 in most cases, but skips blank lines and preformatted text
|
||||
"0 in case of nonvalid line and a header, because a header ends every list
|
||||
function! s:get_prev_line(lnum) abort
|
||||
" Returns: lnum-1 in most cases, but skips blank lines and preformatted text
|
||||
" 0 in case of nonvalid line and a header, because a header ends every list
|
||||
let cur_ln = a:lnum - 1
|
||||
|
||||
if getline(cur_ln) =~# vimwiki#vars#get_syntaxlocal('rxPreEnd')
|
||||
@@ -507,10 +508,10 @@ function! s:get_first_child(item) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Returns: the next sibling of a:child, given the parent item
|
||||
"Used for iterating over children
|
||||
"Note: child items do not necessarily have the same indent, i.e. level
|
||||
function! s:get_next_child_item(parent, child) abort
|
||||
" Returns: the next sibling of a:child, given the parent item
|
||||
" Used for iterating over children
|
||||
" Note: child items do not necessarily have the same indent, i.e. level
|
||||
if a:parent.type == 0 | return s:empty_item() | endif
|
||||
let parent_lvl = s:get_level(a:parent.lnum)
|
||||
let cur_ln = s:get_last_line_of_item_incl_children(a:child)
|
||||
@@ -556,8 +557,8 @@ function! s:get_parent(item) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Returns: the item above or the item below or an empty item
|
||||
function! s:get_a_neighbor_item(item) abort
|
||||
" Returns: the item above or the item below or an empty item
|
||||
let prev_item = s:get_prev_list_item(a:item, 1)
|
||||
if prev_item.type != 0
|
||||
return prev_item
|
||||
@@ -583,9 +584,9 @@ function! s:get_a_neighbor_item_in_column(lnum, column) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Returns: the item if there is one in a:lnum
|
||||
"else the multiline item a:lnum belongs to
|
||||
function! s:get_corresponding_item(lnum) abort
|
||||
" Returns: the item if there is one in a:lnum
|
||||
" else the multiline item a:lnum belongs to
|
||||
let item = s:get_item(a:lnum)
|
||||
if item.type != 0
|
||||
return item
|
||||
@@ -607,8 +608,8 @@ function! s:get_corresponding_item(lnum) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Returns: the last line of a (possibly multiline) item, including all children
|
||||
function! s:get_last_line_of_item_incl_children(item) abort
|
||||
" Returns: the last line of a (possibly multiline) item, including all children
|
||||
let cur_ln = a:item.lnum
|
||||
let org_lvl = s:get_level(a:item.lnum)
|
||||
while 1
|
||||
@@ -621,9 +622,9 @@ function! s:get_last_line_of_item_incl_children(item) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Returns: the last line of a (possibly multiline) item
|
||||
"Note: there can be other list items between the first and last line
|
||||
function! s:get_last_line_of_item(item) abort
|
||||
" Returns: the last line of a (possibly multiline) item
|
||||
" Note: there can be other list items between the first and last line
|
||||
if a:item.type == 0 | return 0 | endif
|
||||
let org_lvl = s:get_level(a:item.lnum)
|
||||
let last_corresponding_line = a:item.lnum
|
||||
@@ -650,9 +651,9 @@ endfunction
|
||||
" renumber list items
|
||||
" ---------------------------------------------------------
|
||||
|
||||
"Renumbers the current list from a:item on downwards
|
||||
"Returns: the last item that was adjusted
|
||||
function! s:adjust_numbered_list_below(item, recursive) abort
|
||||
" Renumbers the current list from a:item on downwards
|
||||
" Returns: the last item that was adjusted
|
||||
if !(a:item.type == 2 || (a:item.type == 1 && a:recursive))
|
||||
return a:item
|
||||
endif
|
||||
@@ -702,11 +703,11 @@ function! s:adjust_items_recursively(parent) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Renumbers the list a:item is in.
|
||||
"If a:ignore_kind == 0, only the items which have the same kind of marker as
|
||||
"a:item are considered, otherwise all items.
|
||||
"Returns: the last item that was adjusted
|
||||
function! s:adjust_numbered_list(item, ignore_kind, recursive) abort
|
||||
" Renumbers the list a:item is in.
|
||||
" If a:ignore_kind == 0, only the items which have the same kind of marker as
|
||||
" a:item are considered, otherwise all items.
|
||||
" Returns: the last item that was adjusted
|
||||
if !(a:item.type == 2 || (a:item.type == 1 && (a:ignore_kind || a:recursive)))
|
||||
return s:empty_item()
|
||||
end
|
||||
@@ -731,9 +732,9 @@ function! s:adjust_numbered_list(item, ignore_kind, recursive) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Renumbers the list the cursor is in
|
||||
"also update its parents checkbox state
|
||||
function! vimwiki#lst#adjust_numbered_list() abort
|
||||
" Renumbers the list the cursor is in
|
||||
" also update its parents checkbox state
|
||||
let cur_item = s:get_corresponding_item(line('.'))
|
||||
if cur_item.type == 0 | return | endif
|
||||
call s:adjust_numbered_list(cur_item, 1, 0)
|
||||
@@ -741,9 +742,9 @@ function! vimwiki#lst#adjust_numbered_list() abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Renumbers all lists of the buffer
|
||||
"of course, this might take some seconds
|
||||
function! vimwiki#lst#adjust_whole_buffer() abort
|
||||
" Renumbers all lists of the buffer
|
||||
" of course, this might take some seconds
|
||||
let cur_ln = 1
|
||||
while 1
|
||||
let cur_item = s:get_item(cur_ln)
|
||||
@@ -762,8 +763,8 @@ endfunction
|
||||
" checkbox stuff
|
||||
" ---------------------------------------------------------
|
||||
|
||||
"Returns: the rate of checkboxed list item in percent
|
||||
function! s:get_rate(item) abort
|
||||
" Returns: the rate of checkboxed list item in percent
|
||||
if a:item.type == 0 || a:item.cb ==? ''
|
||||
return -1
|
||||
endif
|
||||
@@ -776,9 +777,9 @@ function! s:get_rate(item) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Set state of the list item to [ ] or [o] or whatever
|
||||
"Returns: 1 if the state changed, 0 otherwise
|
||||
function! s:set_state(item, new_rate) abort
|
||||
" Set state of the list item to [ ] or [o] or whatever
|
||||
" Returns: 1 if the state changed, 0 otherwise
|
||||
let new_state = s:rate_to_state(a:new_rate)
|
||||
let old_state = s:rate_to_state(s:get_rate(a:item))
|
||||
if new_state !=# old_state
|
||||
@@ -790,10 +791,10 @@ function! s:set_state(item, new_rate) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Sets the state of the list item to [ ] or [o] or whatever. Updates the states of its child items.
|
||||
" If the new state should be [X] or [-], the state of the current list item is changed to this
|
||||
" state, but if a child item already has [X] or [-] it is left alone.
|
||||
function! s:set_state_plus_children(item, new_rate, ...) abort
|
||||
" Sets the state of the list item to [ ] or [o] or whatever. Updates the states of its child items.
|
||||
" If the new state should be [X] or [-], the state of the current list item is changed to this
|
||||
" state, but if a child item already has [X] or [-] it is left alone.
|
||||
let retain_state_if_closed = a:0 > 0 && a:1 > 0
|
||||
|
||||
if !(retain_state_if_closed && (a:new_rate == 100 || a:new_rate == -1) && s:is_closed(a:item))
|
||||
@@ -849,8 +850,8 @@ function! s:set_state_plus_children(item, new_rate, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Returns: the appropriate symbol for a given percent rate
|
||||
function! s:rate_to_state(rate) abort
|
||||
" Returns: the appropriate symbol for a given percent rate
|
||||
let listsyms_list = vimwiki#vars#get_wikilocal('listsyms_list')
|
||||
let state = ''
|
||||
let n = len(listsyms_list)
|
||||
@@ -868,9 +869,8 @@ function! s:rate_to_state(rate) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"updates the symbol of a checkboxed item according to the symbols of its
|
||||
"children
|
||||
function! s:update_state(item) abort
|
||||
" Updates the symbol of a checkboxed item according to the symbols of its children
|
||||
if a:item.type == 0 || a:item.cb ==? '' || vimwiki#vars#get_wikilocal('listsyms_propagate') == 0
|
||||
return
|
||||
endif
|
||||
@@ -923,9 +923,9 @@ function! s:set_state_recursively(item, new_rate) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"Creates checkbox in a list item.
|
||||
"Returns: 1 if successful
|
||||
function! s:create_cb(item, start_rate) abort
|
||||
" Creates checkbox in a list item.
|
||||
" Returns: 1 if successful
|
||||
if a:item.type == 0 || a:item.cb !=? ''
|
||||
return 0
|
||||
endif
|
||||
@@ -950,8 +950,8 @@ function! s:remove_cb(item) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Change state of the checkboxes in the lines of the given range
|
||||
function! s:change_cb(from_line, to_line, new_rate) abort
|
||||
" Change state of the checkboxes in the lines of the given range
|
||||
let from_item = s:get_corresponding_item(a:from_line)
|
||||
if from_item.type == 0
|
||||
return
|
||||
@@ -973,13 +973,12 @@ function! s:change_cb(from_line, to_line, new_rate) abort
|
||||
for parent_item in parent_items_of_lines
|
||||
call s:update_state(parent_item)
|
||||
endfor
|
||||
|
||||
endfunction
|
||||
|
||||
|
||||
" Toggles checkbox between two states in the lines of the given range, creates checkboxes (with
|
||||
" a:start_rate as state) if there aren't any.
|
||||
function! s:toggle_create_cb(from_line, to_line, state1, state2, start_rate) abort
|
||||
" Toggles checkbox between two states in the lines of the given range, creates checkboxes (with
|
||||
" a:start_rate as state) if there aren't any.
|
||||
let from_item = s:get_corresponding_item(a:from_line)
|
||||
if from_item.type == 0
|
||||
return
|
||||
@@ -1014,13 +1013,12 @@ function! s:toggle_create_cb(from_line, to_line, state1, state2, start_rate) abo
|
||||
call s:change_cb(a:from_line, a:to_line, new_rate)
|
||||
|
||||
endif
|
||||
|
||||
endfunction
|
||||
|
||||
|
||||
"Decrement checkbox between [ ] and [X]
|
||||
"in the lines of the given range
|
||||
function! vimwiki#lst#decrement_cb(from_line, to_line) abort
|
||||
" Decrement checkbox between [ ] and [X]
|
||||
" in the lines of the given range
|
||||
let from_item = s:get_corresponding_item(a:from_line)
|
||||
if from_item.type == 0
|
||||
return
|
||||
@@ -1032,13 +1030,12 @@ function! vimwiki#lst#decrement_cb(from_line, to_line) abort
|
||||
let new_rate = max([rate_first_line - 100/(n-1)-1, 0])
|
||||
|
||||
call s:change_cb(a:from_line, a:to_line, new_rate)
|
||||
|
||||
endfunction
|
||||
|
||||
|
||||
"Increment checkbox between [ ] and [X]
|
||||
"in the lines of the given range
|
||||
function! vimwiki#lst#increment_cb(from_line, to_line) abort
|
||||
" Increment checkbox between [ ] and [X]
|
||||
" in the lines of the given range
|
||||
let from_item = s:get_corresponding_item(a:from_line)
|
||||
if from_item.type == 0
|
||||
return
|
||||
@@ -1050,20 +1047,19 @@ function! vimwiki#lst#increment_cb(from_line, to_line) abort
|
||||
let new_rate = min([rate_first_line + 100/(n-1)+1, 100])
|
||||
|
||||
call s:change_cb(a:from_line, a:to_line, new_rate)
|
||||
|
||||
endfunction
|
||||
|
||||
|
||||
"Toggles checkbox between [ ] and [X] or creates one
|
||||
"in the lines of the given range
|
||||
function! vimwiki#lst#toggle_cb(from_line, to_line) abort
|
||||
" Toggles checkbox between [ ] and [X] or creates one
|
||||
" in the lines of the given range
|
||||
return s:toggle_create_cb(a:from_line, a:to_line, 100, 0, 0)
|
||||
endfunction
|
||||
|
||||
|
||||
"Toggles checkbox between [ ] and [-] or creates one
|
||||
"in the lines of the given range
|
||||
function! vimwiki#lst#toggle_rejected_cb(from_line, to_line) abort
|
||||
" Toggles checkbox between [ ] and [-] or creates one
|
||||
" in the lines of the given range
|
||||
return s:toggle_create_cb(a:from_line, a:to_line, -1, 0, -1)
|
||||
endfunction
|
||||
|
||||
@@ -1114,9 +1110,9 @@ function! vimwiki#lst#remove_cb_in_list() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Iterate over given todo list and remove all task that are done
|
||||
" If recursive is true, child items will be checked too
|
||||
function! s:remove_done_in_list(item, recursive) abort
|
||||
" Iterate over given todo list and remove all task that are done
|
||||
" If recursive is true, child items will be checked too
|
||||
" Clause non-null item type
|
||||
if a:item.type == 0
|
||||
return
|
||||
@@ -1151,17 +1147,17 @@ function! s:remove_done_in_list(item, recursive) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Iterate over the list that the cursor is positioned in
|
||||
" and remove all lines of task that are done.
|
||||
" If recursive is true, child items will be checked too
|
||||
function! vimwiki#lst#remove_done_in_current_list(recursive) abort
|
||||
" Iterate over the list that the cursor is positioned in
|
||||
" and remove all lines of task that are done.
|
||||
" If recursive is true, child items will be checked too
|
||||
let item = s:get_corresponding_item(line('.'))
|
||||
call s:remove_done_in_list(item, a:recursive)
|
||||
endfunction
|
||||
|
||||
|
||||
" Remove selected lines if they contain a task that is done
|
||||
function! vimwiki#lst#remove_done_in_range(first_line, last_line) abort
|
||||
" Remove selected lines if they contain a task that is done
|
||||
let first_item = s:get_corresponding_item(a:first_line)
|
||||
let last_item = s:get_corresponding_item(a:last_line)
|
||||
|
||||
@@ -1195,12 +1191,12 @@ function! vimwiki#lst#remove_done_in_range(first_line, last_line) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" wrapper function to distinguish between function used with a range or not
|
||||
" vim 8.0.1089 and newer and corresponding neovim versions allow to use <range> to distinguish if
|
||||
" the function has been called with a range. For older versions we use remove_done_in_range if
|
||||
" first and last line are identical, which means there was either no range or the range was within
|
||||
" one line.
|
||||
function! vimwiki#lst#remove_done(recursive, range, first_line, last_line) abort
|
||||
" wrapper function to distinguish between function used with a range or not
|
||||
" vim 8.0.1089 and newer and corresponding neovim versions allow to use <range> to distinguish if
|
||||
" the function has been called with a range. For older versions we use remove_done_in_range if
|
||||
" first and last line are identical, which means there was either no range or the range was within
|
||||
" one line.
|
||||
if a:range ==# '<range>'
|
||||
let range = a:first_line != a:last_line
|
||||
else
|
||||
@@ -1269,11 +1265,11 @@ function! s:increase_level(item, by) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Cycle through the bullet list markers set in
|
||||
" `bullet_types` based on the indentation level
|
||||
" TODO there is potential to merge this with the change_marker* funcs further
|
||||
" up if we can make them operate on arbitrary lists of characters
|
||||
function! s:indent_cycle_bullets(item, indent_by) abort
|
||||
" Cycle through the bullet list markers set in
|
||||
" `bullet_types` based on the indentation level
|
||||
" TODO there is potential to merge this with the change_marker* funcs further
|
||||
" up if we can make them operate on arbitrary lists of characters
|
||||
" Clause: Check if should work
|
||||
if !vimwiki#vars#get_syntaxlocal('cycle_bullets') || a:item.type != 1
|
||||
return
|
||||
@@ -1287,9 +1283,9 @@ function! s:indent_cycle_bullets(item, indent_by) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Add a:indent_by to the current indent
|
||||
"a:indent_by can be negative
|
||||
function! s:indent_line_by(lnum, indent_by) abort
|
||||
" Add a:indent_by to the current indent
|
||||
"a:indent_by can be negative
|
||||
let item = s:get_item(a:lnum)
|
||||
if a:indent_by > 0
|
||||
call s:increase_level(item, a:indent_by)
|
||||
@@ -1300,8 +1296,8 @@ function! s:indent_line_by(lnum, indent_by) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Change lvl of lines in selection
|
||||
function! s:change_level(from_line, to_line, direction, plus_children) abort
|
||||
" Change lvl of lines in selection
|
||||
let from_item = s:get_corresponding_item(a:from_line)
|
||||
if from_item.type == 0
|
||||
if a:direction ==# 'increase' && a:from_line == a:to_line && empty(getline(a:from_line))
|
||||
@@ -1385,8 +1381,8 @@ function! vimwiki#lst#change_level(from_line, to_line, direction, plus_children)
|
||||
endfunction
|
||||
|
||||
|
||||
"indent line a:lnum to be the continuation of a:prev_item
|
||||
function! s:indent_multiline(prev_item, lnum) abort
|
||||
" Indent line a:lnum to be the continuation of a:prev_item
|
||||
if a:prev_item.type != 0
|
||||
call s:set_indent(a:lnum, s:text_begin(a:prev_item.lnum))
|
||||
endif
|
||||
@@ -1397,8 +1393,8 @@ endfunction
|
||||
" change markers of list items
|
||||
" ---------------------------------------------------------
|
||||
|
||||
"Returns: the position of a marker in g:vimwiki_list_markers
|
||||
function! s:get_idx_list_markers(item) abort
|
||||
" Returns: the position of a marker in g:vimwiki_list_markers
|
||||
if a:item.type == 1
|
||||
let m = s:first_char(a:item.mrkr)
|
||||
else
|
||||
@@ -1408,8 +1404,8 @@ function! s:get_idx_list_markers(item) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"changes the marker of the given item to the next in g:vimwiki_list_markers
|
||||
function! s:get_next_mrkr(item) abort
|
||||
" Changes the marker of the given item to the next in g:vimwiki_list_markers
|
||||
let markers = vimwiki#vars#get_syntaxlocal('list_markers')
|
||||
if a:item.type == 0
|
||||
let new_mrkr = markers[0]
|
||||
@@ -1421,8 +1417,8 @@ function! s:get_next_mrkr(item) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"changes the marker of the given item to the previous in g:vimwiki_list_markers
|
||||
function! s:get_prev_mrkr(item) abort
|
||||
" Changes the marker of the given item to the previous in g:vimwiki_list_markers
|
||||
let markers = vimwiki#vars#get_syntaxlocal('list_markers')
|
||||
if a:item.type == 0
|
||||
return markers[-1]
|
||||
@@ -1519,8 +1515,8 @@ function! vimwiki#lst#change_marker_in_list(new_mrkr) abort
|
||||
endfunction
|
||||
|
||||
|
||||
"sets kind of the item depending on neighbor items and the parent item
|
||||
function! s:adjust_mrkr(item) abort
|
||||
" Sets kind of the item depending on neighbor items and the parent item
|
||||
if a:item.type == 0 || vimwiki#vars#get_syntaxlocal('recurring_bullets')
|
||||
return
|
||||
endif
|
||||
@@ -1771,12 +1767,11 @@ function! vimwiki#lst#kbd_cr(normal, just_mrkr) abort
|
||||
else
|
||||
startinsert
|
||||
endif
|
||||
|
||||
endfunction
|
||||
|
||||
|
||||
"creates a list item in the current line or removes it
|
||||
function! vimwiki#lst#toggle_list_item() abort
|
||||
" Creates a list item in the current line or removes it
|
||||
let cur_col_from_eol = col('$') - col("'^")
|
||||
let cur_item = s:get_item(line('.'))
|
||||
|
||||
|
||||
@@ -34,8 +34,8 @@ function! vimwiki#markdown_base#scan_reflinks() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" try markdown reference links
|
||||
function! vimwiki#markdown_base#open_reflink(link) abort
|
||||
" try markdown reference links
|
||||
let link = a:link
|
||||
let mkd_refs = vimwiki#vars#get_bufferlocal('markdown_refs')
|
||||
if has_key(mkd_refs, link)
|
||||
@@ -106,7 +106,6 @@ function! s:normalize_link_syntax_n() abort
|
||||
call vimwiki#base#replacestr_at_cursor('\V'.lnk, sub)
|
||||
return
|
||||
endif
|
||||
|
||||
endfunction
|
||||
|
||||
|
||||
|
||||
+24
-24
@@ -5,19 +5,19 @@
|
||||
|
||||
|
||||
|
||||
" Unixify path
|
||||
function! s:unixify(path) abort
|
||||
return substitute(a:path, '\', '/', 'g')
|
||||
" Unixify Path:
|
||||
return substitute(a:path, '\', '/', 'g')
|
||||
endfunction
|
||||
|
||||
|
||||
" Windowsify path
|
||||
function! s:windowsify(path) abort
|
||||
return substitute(a:path, '/', '\', 'g')
|
||||
" Windowsify Path:
|
||||
return substitute(a:path, '/', '\', 'g')
|
||||
endfunction
|
||||
|
||||
|
||||
" Define os specific path convertion
|
||||
" Define: os specific path convertion
|
||||
if vimwiki#u#is_windows()
|
||||
function! s:osxify(path) abort
|
||||
return s:windowsify(a:path)
|
||||
@@ -29,8 +29,8 @@ else
|
||||
endif
|
||||
|
||||
|
||||
" Remove last path delimitator (slash or backslash)
|
||||
function! vimwiki#path#chomp_slash(str) abort
|
||||
" Remove Delimiter: of last path (slash or backslash)
|
||||
return substitute(a:str, '[/\\]\+$', '', '')
|
||||
endfunction
|
||||
|
||||
@@ -47,8 +47,8 @@ else
|
||||
endif
|
||||
|
||||
|
||||
" Collapse sections like /a/b/../c to /a/c and /a/b/./c to /a/b/c
|
||||
function! vimwiki#path#normalize(path) abort
|
||||
" Collapse Sections: like /a/b/../c to /a/c and /a/b/./c to /a/b/c
|
||||
let path = a:path
|
||||
while 1
|
||||
let intermediateResult = substitute(path, '/[^/]\+/\.\.', '', '')
|
||||
@@ -62,8 +62,8 @@ function! vimwiki#path#normalize(path) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Normalize path: \ -> / && /// -> / && resolve(symlinks)
|
||||
function! vimwiki#path#path_norm(path) abort
|
||||
" Normalize Path: \ -> / && /// -> / && resolve(symlinks)
|
||||
" return if scp
|
||||
if a:path =~# '^scp:' | return a:path | endif
|
||||
" convert backslash to slash
|
||||
@@ -75,22 +75,22 @@ function! vimwiki#path#path_norm(path) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Check if link is to a directory
|
||||
function! vimwiki#path#is_link_to_dir(link) abort
|
||||
" Check: if link is to a directory
|
||||
" It should be ended with \ or /.
|
||||
return a:link =~# '\m[/\\]$'
|
||||
endfunction
|
||||
|
||||
|
||||
" Get absolute path <- path relative to current file
|
||||
function! vimwiki#path#abs_path_of_link(link) abort
|
||||
" Get: absolute path <- path relative to current file
|
||||
return vimwiki#path#normalize(expand('%:p:h').'/'.a:link)
|
||||
endfunction
|
||||
|
||||
|
||||
" Returns: longest common path prefix of 2 given paths.
|
||||
" Ex: '~/home/usrname/wiki', '~/home/usrname/wiki/shmiki' => '~/home/usrname/wiki'
|
||||
function! vimwiki#path#path_common_pfx(path1, path2) abort
|
||||
" Returns: longest common path prefix of 2 given paths.
|
||||
" Ex: '~/home/usrname/wiki', '~/home/usrname/wiki/shmiki' => '~/home/usrname/wiki'
|
||||
let p1 = split(a:path1, '[/\\]', 1)
|
||||
let p2 = split(a:path2, '[/\\]', 1)
|
||||
|
||||
@@ -107,8 +107,8 @@ function! vimwiki#path#path_common_pfx(path1, path2) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Convert path -> full resolved slashed path
|
||||
function! vimwiki#path#wikify_path(path) abort
|
||||
" Convert: path -> full resolved slashed path
|
||||
let result = resolve(fnamemodify(a:path, ':p'))
|
||||
if vimwiki#u#is_windows()
|
||||
let result = substitute(result, '\\', '/', 'g')
|
||||
@@ -118,14 +118,14 @@ function! vimwiki#path#wikify_path(path) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: Current file path relative
|
||||
function! vimwiki#path#current_wiki_file() abort
|
||||
" Return: Current file path relative
|
||||
return vimwiki#path#wikify_path(expand('%:p'))
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: the relative path from a:dir to a:file
|
||||
function! vimwiki#path#relpath(dir, file) abort
|
||||
" Return: the relative path from a:dir to a:file
|
||||
" Check if dir here ('.') -> return file
|
||||
if empty(a:dir) || a:dir =~# '^\.[/\\]\?$'
|
||||
return a:file
|
||||
@@ -168,11 +168,11 @@ function! vimwiki#path#relpath(dir, file) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Mkdir:
|
||||
" If the optional argument provided and nonzero,
|
||||
" it will ask before creating a directory
|
||||
" Returns: 1 iff directory exists or successfully created
|
||||
function! vimwiki#path#mkdir(path, ...) abort
|
||||
" Mkdir:
|
||||
" if the optional argument provided and nonzero,
|
||||
" it will ask before creating a directory
|
||||
" returns: 1 iff directory exists or successfully created
|
||||
let path = expand(a:path)
|
||||
|
||||
if path =~# '^scp:'
|
||||
@@ -202,8 +202,8 @@ function! vimwiki#path#mkdir(path, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Check: if path is absolute
|
||||
function! vimwiki#path#is_absolute(path) abort
|
||||
" Check: if path is absolute
|
||||
if vimwiki#u#is_windows()
|
||||
return a:path =~? '\m^\a:'
|
||||
else
|
||||
@@ -212,11 +212,11 @@ function! vimwiki#path#is_absolute(path) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Combine: a directory and a file into one path, doesn't generate duplicate
|
||||
" path separator in case the directory is also having an ending / or \. This
|
||||
" is because on windows ~\vimwiki//.tags is invalid but ~\vimwiki/.tags is a
|
||||
" valid path.
|
||||
if vimwiki#u#is_windows()
|
||||
" Combine: a directory and a file into one path, doesn't generate duplicate
|
||||
" path separator in case the directory is also having an ending / or \. This
|
||||
" is because on windows ~\vimwiki//.tags is invalid but ~\vimwiki/.tags is a
|
||||
" valid path.
|
||||
function! vimwiki#path#join_path(directory, file) abort
|
||||
let directory = vimwiki#path#chomp_slash(a:directory)
|
||||
let file = substitute(a:file, '\m^[\\/]\+', '', '')
|
||||
|
||||
+28
-28
@@ -22,11 +22,11 @@
|
||||
let s:TAGS_METADATA_FILE_NAME = '.vimwiki_tags'
|
||||
|
||||
|
||||
" Update tags metadata.
|
||||
" Param: a:full_rebuild == 1: re-scan entire wiki
|
||||
" Param: a:full_rebuild == 0: only re-scan current page
|
||||
" a:all_files == '': only if the file is newer than .tags
|
||||
function! vimwiki#tags#update_tags(full_rebuild, all_files) abort
|
||||
" Update tags metadata.
|
||||
" Param: a:full_rebuild == 1: re-scan entire wiki
|
||||
" Param: a:full_rebuild == 0: only re-scan current page
|
||||
" a:all_files == '': only if the file is newer than .tags
|
||||
let all_files = a:all_files !=? ''
|
||||
if !a:full_rebuild
|
||||
" Updating for one page (current)
|
||||
@@ -60,16 +60,16 @@ function! vimwiki#tags#update_tags(full_rebuild, all_files) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Substitute regexp but do not interpret replace
|
||||
" TODO mutualize with same function in base
|
||||
function! s:safesubstitute(text, search, replace, mode) abort
|
||||
" Substitute regexp but do not interpret replace
|
||||
" TODO mutualize with same function in base
|
||||
let escaped = escape(a:replace, '\&')
|
||||
return substitute(a:text, a:search, escaped, a:mode)
|
||||
endfunction
|
||||
|
||||
|
||||
" Scan the list of text lines (argument) and produces tags metadata as a list of tag entries.
|
||||
function! s:scan_tags(lines, page_name) abort
|
||||
" Scan the list of text lines (argument) and produces tags metadata as a list of tag entries.
|
||||
" Code wireframe to scan for headers -- borrowed from
|
||||
" vimwiki#base#get_anchors(), with minor modifications.
|
||||
|
||||
@@ -155,15 +155,15 @@ function! s:scan_tags(lines, page_name) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: tags metadata file path
|
||||
function! vimwiki#tags#metadata_file_path() abort
|
||||
" Return: tags metadata file path
|
||||
return fnamemodify(vimwiki#path#join_path(vimwiki#vars#get_wikilocal('path'),
|
||||
\ s:TAGS_METADATA_FILE_NAME), ':p')
|
||||
endfunction
|
||||
|
||||
|
||||
" Load tags metadata from file, returns a dictionary
|
||||
function! s:load_tags_metadata() abort
|
||||
" Load tags metadata from file, returns a dictionary
|
||||
let metadata_path = vimwiki#tags#metadata_file_path()
|
||||
if !filereadable(metadata_path)
|
||||
return {}
|
||||
@@ -213,9 +213,9 @@ function! s:load_tags_metadata() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Remove all entries for given page from metadata in-place. Returns updated
|
||||
" metadata (just in case).
|
||||
function! s:remove_page_from_tags(metadata, page_name) abort
|
||||
" Remove all entries for given page from metadata in-place. Returns updated
|
||||
" metadata (just in case).
|
||||
if has_key(a:metadata, a:page_name)
|
||||
call remove(a:metadata, a:page_name)
|
||||
return a:metadata
|
||||
@@ -225,24 +225,24 @@ function! s:remove_page_from_tags(metadata, page_name) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Merge metadata of one file into a:metadata
|
||||
function! s:merge_tags(metadata, pagename, file_metadata) abort
|
||||
" Merge metadata of one file into a:metadata
|
||||
let metadata = a:metadata
|
||||
let metadata[a:pagename] = a:file_metadata
|
||||
return metadata
|
||||
endfunction
|
||||
|
||||
|
||||
" Compare two actual lines from tags file. Return value is in strcmp style.
|
||||
" See help on sort() -- that's what this function is going to be used for.
|
||||
" See also s:write_tags_metadata below -- that's where we compose these tags
|
||||
" file lines.
|
||||
"
|
||||
" This function is needed for tags sorting, since plain sort() compares line
|
||||
" numbers as strings, not integers, and so, for example, tag at line 14
|
||||
" preceeds the same tag on the same page at line 9. (Because string "14" is
|
||||
" alphabetically 'less than' string "9".)
|
||||
function! s:tags_entry_cmp(i1, i2) abort
|
||||
" Compare two actual lines from tags file. Return value is in strcmp style.
|
||||
" See help on sort() -- that's what this function is going to be used for.
|
||||
" See also s:write_tags_metadata below -- that's where we compose these tags
|
||||
" file lines.
|
||||
"
|
||||
" This function is needed for tags sorting, since plain sort() compares line
|
||||
" numbers as strings, not integers, and so, for example, tag at line 14
|
||||
" preceeds the same tag on the same page at line 9. (Because string "14" is
|
||||
" alphabetically 'less than' string "9".)
|
||||
let items = []
|
||||
for orig_item in [a:i1, a:i2]
|
||||
let fields = split(orig_item, "\t")
|
||||
@@ -265,8 +265,8 @@ function! s:tags_entry_cmp(i1, i2) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Save metadata object into a file. Throws exceptions in case of problems.
|
||||
function! s:write_tags_metadata(metadata) abort
|
||||
" Save metadata object into a file. Throws exceptions in case of problems.
|
||||
let metadata_path = vimwiki#tags#metadata_file_path()
|
||||
let tags = []
|
||||
for pagename in keys(a:metadata)
|
||||
@@ -302,8 +302,8 @@ function! s:write_tags_metadata(metadata) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: list of unique tags found in the .tags file
|
||||
function! vimwiki#tags#get_tags() abort
|
||||
" Return: list of unique tags found in the .tags file
|
||||
let metadata = s:load_tags_metadata()
|
||||
let tags = {}
|
||||
for entries in values(metadata)
|
||||
@@ -315,11 +315,11 @@ function! vimwiki#tags#get_tags() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Generate tags in current buffer
|
||||
" Similar to vimwiki#base#generate_links. In the current buffer, appends
|
||||
" tags and references to all their instances. If no arguments (tags) are
|
||||
" specified, outputs all tags.
|
||||
function! vimwiki#tags#generate_tags(create, ...) abort
|
||||
" Generate tags in current buffer
|
||||
" Similar to vimwiki#base#generate_links. In the current buffer, appends
|
||||
" tags and references to all their instances. If no arguments (tags) are
|
||||
" specified, outputs all tags.
|
||||
let specific_tags = a:000
|
||||
let header_level = vimwiki#vars#get_global('tags_header_level')
|
||||
|
||||
@@ -408,8 +408,8 @@ function! vimwiki#tags#generate_tags(create, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Complete tags
|
||||
function! vimwiki#tags#complete_tags(ArgLead, CmdLine, CursorPos) abort
|
||||
" Complete tags
|
||||
" We can safely ignore args if we use -custom=complete option, Vim engine
|
||||
" will do the job of filtering.
|
||||
let taglist = vimwiki#tags#get_tags()
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
" Home: https://github.com/vimwiki/vimwiki/
|
||||
|
||||
|
||||
|
||||
" Clause: Load only once
|
||||
if exists('g:loaded_vimwiki_tbl_auto') || &compatible
|
||||
finish
|
||||
@@ -54,15 +53,15 @@ function! s:sep_splitter() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Check if param:line is in a table
|
||||
function! s:is_table(line) abort
|
||||
" Check if param:line is in a table
|
||||
return s:is_separator(a:line) ||
|
||||
\ (a:line !~# s:rxSep().s:rxSep() && a:line =~# '^\s*'.s:rxSep().'.\+'.s:rxSep().'\s*$')
|
||||
endfunction
|
||||
|
||||
|
||||
" Check if param:line is a separator (ex: | --- | --- |)
|
||||
function! s:is_separator(line) abort
|
||||
" Check if param:line is a separator (ex: | --- | --- |)
|
||||
return a:line =~# '^\s*'.s:rxSep().'\(:\=--\+:\='.s:rxSep().'\)\+\s*$'
|
||||
endfunction
|
||||
|
||||
@@ -417,8 +416,8 @@ function! s:get_aligned_rows(lnum, col1, col2, depth) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Number of the current column. Starts from 0.
|
||||
function! s:cur_column() abort
|
||||
" Number of the current column. Starts from 0.
|
||||
let line = getline('.')
|
||||
if !s:is_table(line)
|
||||
return -1
|
||||
@@ -542,8 +541,8 @@ function! s:kbd_goto_prev_row() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Used in s:kbd_goto_next_col
|
||||
function! vimwiki#tbl#goto_next_col() abort
|
||||
" Used in s:kbd_goto_next_col
|
||||
let curcol = virtcol('.')
|
||||
let lnum = line('.')
|
||||
let depth = 2
|
||||
@@ -577,8 +576,8 @@ function! s:kbd_goto_next_col(jumpdown) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Used in s:kbd_goto_prev_col
|
||||
function! vimwiki#tbl#goto_prev_col() abort
|
||||
" Used in s:kbd_goto_prev_col
|
||||
let curcol = virtcol('.')
|
||||
let lnum = line('.')
|
||||
let depth = 2
|
||||
@@ -757,8 +756,8 @@ function! vimwiki#tbl#align_or_cmd(cmd, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" TODO: move_column_left and move_column_right are good candidates to be refactored.
|
||||
function! vimwiki#tbl#move_column_left() abort
|
||||
" TODO: move_column_left and move_column_right are good candidates to be refactored.
|
||||
" Clause in
|
||||
let line = getline('.')
|
||||
if !s:is_table(line)
|
||||
|
||||
+65
-64
@@ -3,11 +3,11 @@
|
||||
" Description: Utility functions
|
||||
" Home: https://github.com/vimwiki/vimwiki/
|
||||
|
||||
" Echo: msg
|
||||
" :param: (1) <string> highlighting group
|
||||
" :param: (2) <string> echo suffix (ex: 'n', 'm')
|
||||
" :param: (3) <string> message prefix, default Vimwiki
|
||||
function! vimwiki#u#echo(msg, ...) abort
|
||||
" Echo: msg
|
||||
" :param: (1) <string> highlighting group
|
||||
" :param: (2) <string> echo suffix (ex: 'n', 'm')
|
||||
" :param: (3) <string> message prefix, default Vimwiki
|
||||
let hl_group = a:0 > 0 ? a:1 : ''
|
||||
let echo_suffix = a:0 > 1 ? a:2 : ''
|
||||
let msg_prefix = a:0 > 2 ? a:3 : 'Vimwiki: '
|
||||
@@ -27,34 +27,34 @@ function! vimwiki#u#echo(msg, ...) abort
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Debug: msg
|
||||
" let b:vimwiki_debug to trigger
|
||||
function! vimwiki#u#debug(msg) abort
|
||||
" Debug: msg
|
||||
" let b:vimwiki_debug to trigger
|
||||
if !exists('b:vimwiki_debug') || b:vimwiki_debug == 0
|
||||
return
|
||||
endif
|
||||
echomsg 'DEBUG: ' . a:msg
|
||||
endfunction
|
||||
|
||||
" Warn: msg
|
||||
function! vimwiki#u#warn(msg) abort
|
||||
" Warn: msg
|
||||
call vimwiki#u#echo('Warning: ' . a:msg, 'WarningMsg', '')
|
||||
endfunction
|
||||
|
||||
" Error: msg
|
||||
function! vimwiki#u#error(msg) abort
|
||||
" Error: msg
|
||||
call vimwiki#u#echo('Error: ' . a:msg, 'Error', 'msg')
|
||||
endfunction
|
||||
|
||||
" Warn: deprecated feature: old -> new
|
||||
function! vimwiki#u#deprecate(old, new) abort
|
||||
" Warn: deprecated feature: old -> new
|
||||
call vimwiki#u#warn('Deprecated: ' . a:old . ' is deprecated and '
|
||||
\ . 'will be removed in future versions. Use ' . a:new . ' instead.')
|
||||
endfunction
|
||||
|
||||
" Get visual selection text content, optionaly replace its content
|
||||
" :param: Text to replace selection
|
||||
function! vimwiki#u#get_selection(...) abort
|
||||
" Get visual selection text content, optionaly replace its content
|
||||
" :param: Text to replace selection
|
||||
" Copyed from DarkWiiPlayer at stackoverflow
|
||||
" https://stackoverflow.com/a/47051271/2544873
|
||||
" Get selection extremity position,
|
||||
@@ -101,11 +101,12 @@ function! vimwiki#u#get_selection(...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Execute: string v:count times
|
||||
function! vimwiki#u#count_exe(cmd) abort
|
||||
for i in range( max([1, v:count]) )
|
||||
exe a:cmd
|
||||
endfor
|
||||
" Execute: string v:count times
|
||||
" Called: prefixable mapping
|
||||
for i in range( max([1, v:count]) )
|
||||
exe a:cmd
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -119,10 +120,10 @@ function! vimwiki#u#sort_len(list) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Trim spaces: leading and trailing
|
||||
" :param: string in
|
||||
" :param: (1) <string> optional list of character to trim
|
||||
function! vimwiki#u#trim(string, ...) abort
|
||||
" Trim spaces: leading and trailing
|
||||
" :param: string in
|
||||
" :param: (1) <string> optional list of character to trim
|
||||
let chars = ''
|
||||
if a:0 > 0
|
||||
let chars = a:1
|
||||
@@ -133,15 +134,15 @@ function! vimwiki#u#trim(string, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Builtin cursor doesn't work right with unicode characters.
|
||||
function! vimwiki#u#cursor(lnum, cnum) abort
|
||||
" Builtin cursor doesn't work right with unicode characters.
|
||||
exe a:lnum
|
||||
exe 'normal! 0'.a:cnum.'|'
|
||||
endfunction
|
||||
|
||||
|
||||
" Returns: OS name, human readable
|
||||
function! vimwiki#u#os_name() abort
|
||||
" Returns: OS name, human readable
|
||||
if vimwiki#u#is_windows()
|
||||
return 'Windows'
|
||||
elseif vimwiki#u#is_macos()
|
||||
@@ -152,14 +153,14 @@ function! vimwiki#u#os_name() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Check if OS is windows
|
||||
function! vimwiki#u#is_windows() abort
|
||||
" Check if OS is windows
|
||||
return has('win32') || has('win64') || has('win95') || has('win16')
|
||||
endfunction
|
||||
|
||||
|
||||
" Check if OS is mac
|
||||
function! vimwiki#u#is_macos() abort
|
||||
" Check if OS is mac
|
||||
if has('mac') || has('macunix') || has('gui_mac')
|
||||
return 1
|
||||
endif
|
||||
@@ -175,26 +176,26 @@ function! vimwiki#u#count_first_sym(line) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Escape string for literal magic regex match
|
||||
function! vimwiki#u#escape(string) abort
|
||||
" Escape string for literal magic regex match
|
||||
return escape(a:string, '~.*[]\^$')
|
||||
endfunction
|
||||
|
||||
|
||||
" Load concrete Wiki syntax: sets regexes and templates for headers and links
|
||||
function! vimwiki#u#reload_regexes() abort
|
||||
" Load concrete Wiki syntax: sets regexes and templates for headers and links
|
||||
execute 'runtime! syntax/vimwiki_'.vimwiki#vars#get_wikilocal('syntax').'.vim'
|
||||
endfunction
|
||||
|
||||
|
||||
" Load syntax-specific functionality
|
||||
function! vimwiki#u#reload_regexes_custom() abort
|
||||
" Load syntax-specific functionality
|
||||
execute 'runtime! syntax/vimwiki_'.vimwiki#vars#get_wikilocal('syntax').'_custom.vim'
|
||||
endfunction
|
||||
|
||||
|
||||
" Backward compatible version of the built-in function shiftwidth()
|
||||
function! vimwiki#u#sw() abort
|
||||
" Backward compatible version of the built-in function shiftwidth()
|
||||
if exists('*shiftwidth')
|
||||
return shiftwidth()
|
||||
else
|
||||
@@ -202,14 +203,14 @@ function! vimwiki#u#sw() abort
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" a:mode single character indicating the mode as defined by :h maparg
|
||||
" a:key the key sequence to map
|
||||
" a:plug the plug command the key sequence should be mapped to
|
||||
" a:1 optional argument with the following functionality:
|
||||
" if a:1==1 then the hasmapto(<Plug>) check is skipped.
|
||||
" this can be used to map different keys to the same <Plug> definition
|
||||
" if a:1==2 then the mapping is not <buffer> specific i.e. it is global
|
||||
function! vimwiki#u#map_key(mode, key, plug, ...) abort
|
||||
" a:mode single character indicating the mode as defined by :h maparg
|
||||
" a:key the key sequence to map
|
||||
" a:plug the plug command the key sequence should be mapped to
|
||||
" a:1 optional argument with the following functionality:
|
||||
" if a:1==1 then the hasmapto(<Plug>) check is skipped.
|
||||
" this can be used to map different keys to the same <Plug> definition
|
||||
" if a:1==2 then the mapping is not <buffer> specific i.e. it is global
|
||||
if a:0 && a:1 == 2
|
||||
" global mappings
|
||||
if !hasmapto(a:plug, a:mode) && maparg(a:key, a:mode) ==# ''
|
||||
@@ -227,11 +228,11 @@ function! vimwiki#u#map_key(mode, key, plug, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Returns: 1 if line is a code block or math block
|
||||
"
|
||||
" The last two conditions are needed for this to correctly
|
||||
" detect nested syntaxes within code blocks
|
||||
function! vimwiki#u#is_codeblock(lnum) abort
|
||||
" Returns: 1 if line is a code block or math block
|
||||
"
|
||||
" The last two conditions are needed for this to correctly
|
||||
" detect nested syntaxes within code blocks
|
||||
let syn_g = synIDattr(synID(a:lnum,1,1),'name')
|
||||
if syn_g =~# 'Vimwiki\(Pre.*\|IndentedCodeBlock\|Math.*\)'
|
||||
\ || (syn_g !~# 'Vimwiki.*' && syn_g !=? '')
|
||||
@@ -241,10 +242,10 @@ function! vimwiki#u#is_codeblock(lnum) abort
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Sets the filetype to vimwiki
|
||||
" If g:vimwiki_filetypes variable is set
|
||||
" the filetype will be vimwiki.<ft1>.<ft2> etc.
|
||||
function! vimwiki#u#ft_set() abort
|
||||
" Sets the filetype to vimwiki
|
||||
" If g:vimwiki_filetypes variable is set
|
||||
" the filetype will be vimwiki.<ft1>.<ft2> etc.
|
||||
let ftypelist = vimwiki#vars#get_global('filetypes')
|
||||
let ftype = 'vimwiki'
|
||||
for ftypeadd in ftypelist
|
||||
@@ -253,11 +254,11 @@ function! vimwiki#u#ft_set() abort
|
||||
let &filetype = ftype
|
||||
endfunction
|
||||
|
||||
" Returns: 1 if filetype is vimwiki, 0 else
|
||||
" If multiple fileytpes are in use 1 is returned only if the
|
||||
" first ft is vimwiki which should always be the case unless
|
||||
" the user manually changes it to something else
|
||||
function! vimwiki#u#ft_is_vw() abort
|
||||
" Returns: 1 if filetype is vimwiki, 0 else
|
||||
" If multiple fileytpes are in use 1 is returned only if the
|
||||
" first ft is vimwiki which should always be the case unless
|
||||
" the user manually changes it to something else
|
||||
" Clause: is filetype defined
|
||||
if &filetype ==# '' | return 0 | endif
|
||||
if split(&filetype, '\.')[0] ==? 'vimwiki'
|
||||
@@ -268,17 +269,17 @@ function! vimwiki#u#ft_is_vw() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Helper: Getter
|
||||
" :param: syntax <string> to retrive, default to current
|
||||
function! vimwiki#u#get_syntax_dic(...) abort
|
||||
" Helper: Getter
|
||||
" :param: syntax <string> to retrive, default to current
|
||||
let syntax = a:0 ? a:1 : vimwiki#vars#get_wikilocal('syntax')
|
||||
return g:vimwiki_syntaxlocal_vars[syntax]
|
||||
endfunction
|
||||
|
||||
|
||||
" Helper to mutualize
|
||||
" Called: normalize and unnormalize anchor
|
||||
function! vimwiki#u#get_punctuation_regex() abort
|
||||
" Helper: to mutualize
|
||||
" Called: normalize and unnormalize anchor
|
||||
" From: https://gist.github.com/asabaylus/3071099#gistcomment-2563127
|
||||
" Faster
|
||||
" Unused now
|
||||
@@ -291,19 +292,19 @@ function! vimwiki#u#get_punctuation_regex() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Faster
|
||||
function! vimwiki#u#get_punctuation_string() abort
|
||||
" Faster
|
||||
" See: https://github.github.com/gfm/#ascii-punctuation-character
|
||||
return '!"#$%&''()*+,-./:;<=>?@\[\\\]^`{}|~'
|
||||
endfunction
|
||||
|
||||
|
||||
" Helper: Expand regex from reduced typeface delimiters
|
||||
" :param: list<list,delimiters>> with reduced regex
|
||||
" Return: list with extended regex delimiters (not inside a word)
|
||||
" -- [['\*_', '_\*']] -> [['\*_\S\@=', '\S\@<=_\*\%(\s\|$\)\@=']]
|
||||
" See: https://github.github.com/gfm/#left-flanking-delimiter-run
|
||||
function! vimwiki#u#hi_expand_regex(lst) abort
|
||||
" Helper: Expand regex from reduced typeface delimiters
|
||||
" :param: list<list,delimiters>> with reduced regex
|
||||
" Return: list with extended regex delimiters (not inside a word)
|
||||
" -- [['\*_', '_\*']] -> [['\*_\S\@=', '\S\@<=_\*\%(\s\|$\)\@=']]
|
||||
" See: https://github.github.com/gfm/#left-flanking-delimiter-run
|
||||
let res = []
|
||||
let p = vimwiki#u#get_punctuation_string()
|
||||
for delimiters in a:lst
|
||||
@@ -315,13 +316,13 @@ function! vimwiki#u#hi_expand_regex(lst) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Helper: Create highlight region between two tags
|
||||
" :param: tag <string> example '<b>'
|
||||
" :param: syntax_group <string> example: VimwikiBold
|
||||
" :param: contains <string> coma separated and prefixed, default VimwikiHTMLTag
|
||||
" :param: (1) <boolean> is contained
|
||||
" :param: (2) <string> more param ex:oneline
|
||||
function! vimwiki#u#hi_tag(tag_pre, tag_post, syntax_group, contains, ...) abort
|
||||
" Helper: Create highlight region between two tags
|
||||
" :param: tag <string> example '<b>'
|
||||
" :param: syntax_group <string> example: VimwikiBold
|
||||
" :param: contains <string> coma separated and prefixed, default VimwikiHTMLTag
|
||||
" :param: (1) <boolean> is contained
|
||||
" :param: (2) <string> more param ex:oneline
|
||||
let opt_is_contained = a:0 > 0 && a:1 > 0 ? 'contained ' : ''
|
||||
let opt_more = a:0 > 1 ? ' ' . a:2 : ''
|
||||
let opt_contains = ''
|
||||
@@ -340,11 +341,11 @@ function! vimwiki#u#hi_tag(tag_pre, tag_post, syntax_group, contains, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Highight typeface: see $VIMRUNTIME/syntax/html.vim
|
||||
" -- Basically allow nesting with multiple definition contained
|
||||
" :param: dic <dic:list:list> must contain: bold, italic and underline, even if underline is often void,
|
||||
" -- see here for underline not defined: https://stackoverflow.com/questions/3003476
|
||||
function! vimwiki#u#hi_typeface(dic) abort
|
||||
" Highight typeface: see $VIMRUNTIME/syntax/html.vim
|
||||
" -- Basically allow nesting with multiple definition contained
|
||||
" :param: dic <dic:list:list> must contain: bold, italic and underline, even if underline is often void,
|
||||
" -- see here for underline not defined: https://stackoverflow.com/questions/3003476
|
||||
" Italic must go before, otherwise single * takes precedence over ** and ** is considered as
|
||||
" -- a void italic.
|
||||
" Note:
|
||||
|
||||
+64
-68
@@ -3,8 +3,6 @@
|
||||
" Description: Vimwiki variable definition and manipulation
|
||||
" Home: https://github.com/vimwiki/vimwiki/
|
||||
|
||||
|
||||
|
||||
" ------------------------------------------------------------------------------------------------
|
||||
" This file provides functions to manage the various state variables which are needed during a
|
||||
" Vimwiki session.
|
||||
@@ -30,8 +28,8 @@
|
||||
let s:margin_set_by_user = 0
|
||||
|
||||
|
||||
" Init global and local variables
|
||||
function! vimwiki#vars#init() abort
|
||||
" Init global and local variables
|
||||
" Init && Populate: global variable container
|
||||
let g:vimwiki_global_vars = {}
|
||||
call s:populate_global_variables()
|
||||
@@ -42,13 +40,13 @@ function! vimwiki#vars#init() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Helper: Check user setting
|
||||
" warn user with message if not good type
|
||||
" Param: 1: key <string>: varaible name
|
||||
" Param: 2: vimwiki_key <obj>: user value
|
||||
" Param: 3: value_infod <dict>: type and default value
|
||||
" Param: 4: coming from a global variable <bool>
|
||||
function! s:check_users_value(key, users_value, value_infos, comes_from_global_variable) abort
|
||||
" Helper: Check user setting
|
||||
" warn user with message if not good type
|
||||
" Param: 1: key <string>: varaible name
|
||||
" Param: 2: vimwiki_key <obj>: user value
|
||||
" Param: 3: value_infod <dict>: type and default value
|
||||
" Param: 4: coming from a global variable <bool>
|
||||
let type_code_to_name = {
|
||||
\ type(0): 'number',
|
||||
\ type(''): 'string',
|
||||
@@ -106,8 +104,8 @@ function! s:check_users_value(key, users_value, value_infos, comes_from_global_v
|
||||
endfunction
|
||||
|
||||
|
||||
" Helper: Treat special variables
|
||||
function! s:update_key(output_dic, key, old, new) abort
|
||||
" Helper: Treat special variables
|
||||
" Set list margin
|
||||
if a:key ==# 'list_margin'
|
||||
let s:margin_set_by_user = 1
|
||||
@@ -125,15 +123,13 @@ function! s:update_key(output_dic, key, old, new) abort
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
|
||||
" ----------------------------------------------------------
|
||||
" 1. Global {{{1
|
||||
" ----------------------------------------------------------
|
||||
|
||||
" Get default wikilocal values
|
||||
" Please: keep alphabetical sort
|
||||
function! s:get_default_global() abort
|
||||
" Get default wikilocal values
|
||||
" Please: keep alphabetical sort
|
||||
return {
|
||||
\ 'CJK_length': {'type': type(0), 'default': 0, 'min': 0, 'max': 1},
|
||||
\ 'auto_chdir': {'type': type(0), 'default': 0, 'min': 0, 'max': 1},
|
||||
@@ -192,17 +188,17 @@ function! s:get_default_global() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Populate global variable <- user & default
|
||||
" Called: s:vimwiki#vars#init
|
||||
function! s:populate_global_variables() abort
|
||||
" Populate global variable <- user & default
|
||||
" Called: s:vimwiki#vars#init
|
||||
call s:read_global_settings_from_user()
|
||||
call s:normalize_global_settings()
|
||||
call s:internal_global_settings()
|
||||
endfunction
|
||||
|
||||
|
||||
" Read nromalized settings and create some more usefull variables to use internally
|
||||
function! s:internal_global_settings() abort
|
||||
" Read nromalized settings and create some more usefull variables to use internally
|
||||
" non-configurable global variables:
|
||||
|
||||
" Scheme regexes must be defined even if syntax file is not loaded yet cause users should be
|
||||
@@ -308,8 +304,8 @@ function! s:internal_global_settings() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Extend global dictionary <- default <- user
|
||||
function! s:extend_global(output_dic, default_dic) abort
|
||||
" Extend global dictionary <- default <- user
|
||||
" Note: user_dic is unused here because it comes from g:vimwiki_* vars
|
||||
" Copy the user's settings from variables of the form g:vimwiki_<option> into the dict
|
||||
" g:vimwiki_global_vars (or set a default value)
|
||||
@@ -331,9 +327,9 @@ function! s:extend_global(output_dic, default_dic) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Read user global settings
|
||||
" Called: s:populate_global_variables
|
||||
function! s:read_global_settings_from_user() abort
|
||||
" Read user global settings
|
||||
" Called: s:populate_global_variables
|
||||
let default_dic = s:get_default_global()
|
||||
|
||||
" Update batch
|
||||
@@ -363,9 +359,9 @@ function! s:read_global_settings_from_user() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Normalize user global settings
|
||||
" Called: s:populate_global_variables
|
||||
function! s:normalize_global_settings() abort
|
||||
" Normalize user global settings
|
||||
" Called: s:populate_global_variables
|
||||
let keys = keys(g:vimwiki_global_vars.ext2syntax)
|
||||
for ext in keys
|
||||
" for convenience, we also allow the term 'mediawiki'
|
||||
@@ -450,9 +446,9 @@ endfunction
|
||||
" 3. Wiki local {{{1
|
||||
" ----------------------------------------------------------
|
||||
|
||||
" Get default wikilocal values
|
||||
" Please: keep alphabetical sort
|
||||
function! s:get_default_wikilocal() abort
|
||||
" Get default wikilocal values
|
||||
" Please: keep alphabetical sort
|
||||
" Build color_tag_template regular expression
|
||||
" Must be coherent with VimwikiColorize
|
||||
let fg = 'color\s*:\s*__COLORFG__\s*;\s*'
|
||||
@@ -539,8 +535,8 @@ function! s:get_default_wikilocal() abort
|
||||
\ }
|
||||
endfunction
|
||||
|
||||
" Extend syntaxlocal dictionary <- global <- user (default for type check)
|
||||
function! s:extend_local(output_dic, default_dic, global_dic, user_dic) abort
|
||||
" Extend syntaxlocal dictionary <- global <- user (default for type check)
|
||||
" IDEA: can work lazily and not on all wikis at first call
|
||||
" IDEA: have a special variable for wikitmp
|
||||
for key in keys(a:default_dic)
|
||||
@@ -556,9 +552,9 @@ function! s:extend_local(output_dic, default_dic, global_dic, user_dic) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Populate local variable <- user & default
|
||||
" Called: s:vimwiki#vars#init
|
||||
function! s:populate_wikilocal_options() abort
|
||||
" Populate local variable <- user & default
|
||||
" Called: s:vimwiki#vars#init
|
||||
" Retrieve default
|
||||
let default_dic = s:get_default_wikilocal()
|
||||
|
||||
@@ -589,8 +585,8 @@ function! s:populate_wikilocal_options() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Normalize local settings
|
||||
function! s:normalize_wikilocal_settings() abort
|
||||
" Normalize local settings
|
||||
for wiki_settings in g:vimwiki_wikilocal_vars
|
||||
" Check some values individually
|
||||
""""""""""""""""""""""""""""""""
|
||||
@@ -644,9 +640,9 @@ function! s:normalize_wikilocal_settings() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Helper path
|
||||
" TODO move to path: Conflict with: vimwiki#path#path_norm && vimwiki#path#normalize
|
||||
function! s:normalize_path(path) abort
|
||||
" Helper path
|
||||
" TODO move to path: Conflict with: vimwiki#path#path_norm && vimwiki#path#normalize
|
||||
" trim trailing / and \ because otherwise resolve() doesn't work quite right
|
||||
let path = substitute(a:path, '[/\\]\+$', '', '')
|
||||
if path !~# '^scp:'
|
||||
@@ -661,8 +657,8 @@ endfunction
|
||||
" 2. Syntax specific {{{1
|
||||
" ----------------------------------------------------------
|
||||
|
||||
" Get default syntaxlocal variable dictionary
|
||||
function! s:get_default_syntaxlocal() abort
|
||||
" Get default syntaxlocal variable dictionary
|
||||
" type, default, min, max, possible_values, min_length
|
||||
return extend(s:get_common_syntaxlocal(), {
|
||||
\ 'bold_match': {'type': type(''), 'default': '\%(^\|\s\|[[:punct:]]\)\@<=\*__Text__\*\%([[:punct:]]\|\s\|$\)\@='},
|
||||
@@ -814,9 +810,9 @@ function! s:get_common_syntaxlocal() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Populate syntax variable
|
||||
" Exported: syntax/vimwiki.vim
|
||||
function! vimwiki#vars#populate_syntax_vars(syntax) abort
|
||||
" Populate syntax variable
|
||||
" Exported: syntax/vimwiki.vim
|
||||
" TODO refactor <= too big function
|
||||
" TODO permit user conf in some var like g:vimwiki_syntaxlocal_vars
|
||||
" TODO internalize match and search (header and bold)
|
||||
@@ -1036,10 +1032,10 @@ function! vimwiki#vars#populate_syntax_vars(syntax) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Populate list variable
|
||||
" or how to search and treat list (ex: *,-, 1.)
|
||||
" TODO this should be syntax_local
|
||||
function! s:populate_list_vars(wiki) abort
|
||||
" Populate list variable
|
||||
" or how to search and treat list (ex: *,-, 1.)
|
||||
" TODO this should be syntax_local
|
||||
let syntax = a:wiki.syntax
|
||||
|
||||
let a:wiki.rx_bullet_char = '['.escape(join(a:wiki.bullet_types, ''), ']^-\').']'
|
||||
@@ -1097,8 +1093,8 @@ function! s:populate_list_vars(wiki) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Populate markdown specific syntax variables
|
||||
function! s:populate_extra_markdown_vars() abort
|
||||
" Populate markdown specific syntax variables
|
||||
let mkd_syntax = g:vimwiki_syntaxlocal_vars['markdown']
|
||||
|
||||
" 0a) match [[URL|DESCRIPTION]]
|
||||
@@ -1269,10 +1265,10 @@ function! s:populate_extra_markdown_vars() abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Normalize syntax setting
|
||||
" so that we dont have to branch for the syntax at each operation
|
||||
" Called: populate_syntax_vars
|
||||
function! s:normalize_syntax_settings(syntax) abort
|
||||
" Normalize syntax setting
|
||||
" so that we dont have to branch for the syntax at each operation
|
||||
" Called: populate_syntax_vars
|
||||
let syntax_dic = g:vimwiki_syntaxlocal_vars[a:syntax]
|
||||
|
||||
" Link1: used when:
|
||||
@@ -1291,12 +1287,12 @@ endfunction
|
||||
" ----------------------------------------------------------
|
||||
|
||||
|
||||
" Get variable anywhere
|
||||
" Returns: [value, location] where loc=global|wikilocal|syntaxlocal|bufferlocal|none
|
||||
" Called: cmd <- VimwikiVar
|
||||
" TODO get more performant approach when this file has been well refactored:
|
||||
" -- calls only the necessary functions and not syntaxlocal anytime
|
||||
function! s:get_anywhere(key, ...) abort
|
||||
" Get variable anywhere
|
||||
" Returns: [value, location] where loc=global|wikilocal|syntaxlocal|bufferlocal|none
|
||||
" Called: cmd <- VimwikiVar
|
||||
" TODO get more performant approach when this file has been well refactored:
|
||||
" -- calls only the necessary functions and not syntaxlocal anytime
|
||||
" Alias common info
|
||||
let s:syntax = vimwiki#vars#get_wikilocal('syntax')
|
||||
let s:wiki_nr = vimwiki#vars#get_bufferlocal('wiki_nr')
|
||||
@@ -1392,11 +1388,11 @@ function! s:get_anywhere(key, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Set or Get a vimwiki variable
|
||||
" :param: (1) key <string> [space] value <string>
|
||||
" -- name of the variable [space] value to evaluate and set the variable
|
||||
" Called: VimwikiVar
|
||||
function! vimwiki#vars#cmd(arg) abort
|
||||
" Set or Get a vimwiki variable
|
||||
" :param: (1) key <string> [space] value <string>
|
||||
" -- name of the variable [space] value to evaluate and set the variable
|
||||
" Called: VimwikiVar
|
||||
" Get key and value
|
||||
let sep1 = stridx(a:arg, ' ')
|
||||
let sep2 = sep1
|
||||
@@ -1528,10 +1524,10 @@ endfunction
|
||||
" 4. Getter, Setter (exported) {{{1
|
||||
" ----------------------------------------------------------
|
||||
|
||||
" Get syntax variable
|
||||
" Param: 1: key (<string>)
|
||||
" Param: (2): syntax name (<string> ex:'markdown')
|
||||
function! vimwiki#vars#get_syntaxlocal(key, ...) abort
|
||||
" Get syntax variable
|
||||
" Param: 1: key (<string>)
|
||||
" Param: (2): syntax name (<string> ex:'markdown')
|
||||
" Retrieve desired syntax name
|
||||
if a:0
|
||||
let syntax = a:1
|
||||
@@ -1549,10 +1545,10 @@ function! vimwiki#vars#get_syntaxlocal(key, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: buffer local variable
|
||||
" for the buffer we are currently in or for the given buffer (number or name).
|
||||
" Populate the variable, if it doesn't exist.
|
||||
function! vimwiki#vars#get_bufferlocal(key, ...) abort
|
||||
" Return: buffer local variable
|
||||
" for the buffer we are currently in or for the given buffer (number or name).
|
||||
" Populate the variable, if it doesn't exist.
|
||||
let buffer = a:0 ? a:1 : '%'
|
||||
|
||||
" 'get(getbufvar(...' handles vim < v7.3.831 that didn't allow a default value for getbufvar
|
||||
@@ -1584,31 +1580,31 @@ function! vimwiki#vars#get_bufferlocal(key, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Set buffer local variable
|
||||
function! vimwiki#vars#set_bufferlocal(key, value, ...) abort
|
||||
" Set buffer local variable
|
||||
let buffer = a:0 ? a:1 : '%'
|
||||
call setbufvar(buffer, 'vimwiki_' . a:key, a:value)
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: wiki global variable
|
||||
function! vimwiki#vars#get_global(key) abort
|
||||
" Return: wiki global variable
|
||||
return g:vimwiki_global_vars[a:key]
|
||||
endfunction
|
||||
|
||||
|
||||
" Set global variable
|
||||
function! vimwiki#vars#set_global(key, value) abort
|
||||
" Set global variable
|
||||
let g:vimwiki_global_vars[a:key] = a:value
|
||||
return g:vimwiki_global_vars[a:key]
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: wiki local named variable
|
||||
" Param: (1): variable name (alias key, <string>)
|
||||
" Param: (2): wiki number (<int>). When absent, the wiki of the currently active buffer is
|
||||
" used
|
||||
function! vimwiki#vars#get_wikilocal(key, ...) abort
|
||||
" Return: wiki local named variable
|
||||
" Param: (1): variable name (alias key, <string>)
|
||||
" Param: (2): wiki number (<int>). When absent, the wiki of the currently active buffer is
|
||||
" used
|
||||
if a:0
|
||||
return g:vimwiki_wikilocal_vars[a:1][a:key]
|
||||
else
|
||||
@@ -1617,16 +1613,16 @@ function! vimwiki#vars#get_wikilocal(key, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: wiki local variable (of default wiki [index -1])
|
||||
function! vimwiki#vars#get_wikilocal_default(key) abort
|
||||
" Return: wiki local variable (of default wiki [index -1])
|
||||
return g:vimwiki_wikilocal_vars[-1][a:key]
|
||||
endfunction
|
||||
|
||||
|
||||
" Set local variable
|
||||
" Param: (2): wiki number (<int>). When absent, the wiki of the currently active buffer is
|
||||
" used
|
||||
function! vimwiki#vars#set_wikilocal(key, value, ...) abort
|
||||
" Set local variable
|
||||
" Param: (2): wiki number (<int>). When absent, the wiki of the currently active buffer is
|
||||
" used
|
||||
if a:0
|
||||
let wiki_nr = a:1
|
||||
else
|
||||
@@ -1639,8 +1635,8 @@ function! vimwiki#vars#set_wikilocal(key, value, ...) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Append new wiki to wiki list
|
||||
function! vimwiki#vars#add_temporary_wiki(settings) abort
|
||||
" Append new wiki to wiki list
|
||||
let new_temp_wiki_settings = copy(g:vimwiki_wikilocal_vars[-1])
|
||||
for [key, value] in items(a:settings)
|
||||
let new_temp_wiki_settings[key] = value
|
||||
@@ -1652,7 +1648,7 @@ function! vimwiki#vars#add_temporary_wiki(settings) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Return: number of registered wikis + temporary
|
||||
function! vimwiki#vars#number_of_wikis() abort
|
||||
" Return: number of registered wikis + temporary
|
||||
return len(g:vimwiki_wikilocal_vars) - 1
|
||||
endfunction
|
||||
|
||||
@@ -4,6 +4,7 @@ This file is meant to document design decisions and algorithms inside Vimwiki
|
||||
which are too large for code comments, and not necessarily interesting to
|
||||
users. Please create a new section to document each behavior.
|
||||
|
||||
|
||||
## Formatting tables
|
||||
|
||||
In Vimwiki, formatting tables occurs dynamically, when navigating between cells
|
||||
@@ -235,4 +236,18 @@ reasons for such a complex system is:
|
||||
holes"
|
||||
|
||||
|
||||
## Syntax and Highlight
|
||||
|
||||
* [Vimwiki syntax specification](./specification.wiki)
|
||||
* [Syntax region](../syntax/vimwiki.vim)
|
||||
|
||||
TODO currently the typeface delmiters are customized that way:
|
||||
|
||||
```vim
|
||||
" Typeface: -> u.vim
|
||||
let s:typeface_dic = vimwiki#vars#get_syntaxlocal('typeface')
|
||||
call vimwiki#u#hi_typeface(s:typeface_dic)
|
||||
```
|
||||
|
||||
|
||||
<!-- vim: set tw=80: -->
|
||||
|
||||
+5
-1
@@ -985,7 +985,11 @@ Vimwiki has evolved its own syntax that closely resembles Google's wiki
|
||||
markup. This syntax is described in detail below.
|
||||
|
||||
Vimwiki also supports alternative syntaxes, like Markdown and MediaWiki, to
|
||||
varying degrees; see |vimwiki-option-syntax|. Static elements like headers,
|
||||
varying degrees; see |vimwiki-option-syntax|.
|
||||
The Markdown specification Vimwiki is trying to stick to can be found at:
|
||||
https://github.github.com/gfm
|
||||
|
||||
Static elements like headers,
|
||||
quotations, and lists are customized in syntax/vimwiki_xxx.vim, where xxx
|
||||
stands for the chosen syntax.
|
||||
|
||||
|
||||
+15
-15
@@ -3,7 +3,7 @@
|
||||
" Home: https://github.com/vimwiki/vimwiki/
|
||||
|
||||
|
||||
" Cause: load only onces per buffer
|
||||
" Clause: load only onces per buffer
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
@@ -20,7 +20,7 @@ setlocal isfname-=[,]
|
||||
exe 'setlocal tags+=' . escape(vimwiki#tags#metadata_file_path(), ' \|"')
|
||||
|
||||
|
||||
" Help for omnicompletion
|
||||
" Helper: for omnicompletion
|
||||
function! Complete_wikifiles(findstart, base) abort
|
||||
" s:line_context = link | tag | ''
|
||||
if a:findstart == 1
|
||||
@@ -121,7 +121,7 @@ function! Complete_wikifiles(findstart, base) abort
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Set completion
|
||||
" Set Completion:
|
||||
setlocal omnifunc=Complete_wikifiles
|
||||
if and(vimwiki#vars#get_global('emoji_enable'), 2) != 0
|
||||
\ && &completefunc ==# ''
|
||||
@@ -129,13 +129,13 @@ if and(vimwiki#vars#get_global('emoji_enable'), 2) != 0
|
||||
endif
|
||||
|
||||
|
||||
" Declare settings necessary for the automatic formatting of lists
|
||||
" Declare Settings: necessary for the automatic formatting of lists
|
||||
" ------------------------------------------------
|
||||
setlocal autoindent
|
||||
setlocal nosmartindent
|
||||
setlocal nocindent
|
||||
|
||||
" Set comments: to insert and format 'comments' or cheat
|
||||
" Set Comments: to insert and format 'comments' or cheat
|
||||
" Used to break blockquote prepending one on each new line (see: #915)
|
||||
" B like blank character follow
|
||||
" blockquotes
|
||||
@@ -151,7 +151,7 @@ for bullet in vimwiki#vars#get_syntaxlocal('bullet_types')
|
||||
endfor
|
||||
let &l:comments = comments
|
||||
|
||||
" Set format options (:h fo-table)
|
||||
" Set Format Options: (:h fo-table)
|
||||
" Disable autocomment because, vimwiki does it better
|
||||
setlocal formatoptions-=r
|
||||
setlocal formatoptions-=o
|
||||
@@ -200,7 +200,7 @@ function! VimwikiFoldLevel(lnum) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Declare constants used by VimwikiFoldText
|
||||
" Declare Constants: used by VimwikiFoldText
|
||||
" use \u2026 and \u21b2 (or \u2424) if enc=utf-8 to save screen space
|
||||
let s:ellipsis = (&encoding ==? 'utf-8') ? "\u2026" : '...'
|
||||
let s:ell_len = strlen(s:ellipsis)
|
||||
@@ -215,7 +215,7 @@ function! s:shorten_text_simple(text, len) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Shorten text
|
||||
" Shorten Text:
|
||||
" Called: by VimwikiFoldText
|
||||
" s:shorten_text(text, len) = [string, spare] with "spare" = len-strlen(string)
|
||||
" for long enough "text", the string's length is within s:tolerance of "len"
|
||||
@@ -238,7 +238,7 @@ function! s:shorten_text(text, len) abort
|
||||
endfunction
|
||||
|
||||
|
||||
" Fold text chapter
|
||||
" Fold: text chapter
|
||||
function! VimwikiFoldText() abort
|
||||
let line = getline(v:foldstart)
|
||||
let main_text = substitute(line, '^\s*', repeat(' ',indent(v:foldstart)), '')
|
||||
@@ -431,7 +431,7 @@ nnoremap <silent><script><buffer> <Plug>VimwikiDiaryNextDay
|
||||
nnoremap <silent><script><buffer> <Plug>VimwikiDiaryPrevDay
|
||||
\ :VimwikiDiaryPrevDay<CR>
|
||||
|
||||
" default links key mappings
|
||||
" Declare Map: default links key mappings
|
||||
if str2nr(vimwiki#vars#get_global('key_mappings').links)
|
||||
call vimwiki#u#map_key('n', '<CR>', '<Plug>VimwikiFollowLink')
|
||||
call vimwiki#u#map_key('n', '<S-CR>', '<Plug>VimwikiSplitLink')
|
||||
@@ -451,7 +451,7 @@ if str2nr(vimwiki#vars#get_global('key_mappings').links)
|
||||
call vimwiki#u#map_key('n', '<C-Up>', '<Plug>VimwikiDiaryPrevDay')
|
||||
endif
|
||||
|
||||
" <Plug> lists definitions
|
||||
" Map: <Plug> lists definitions
|
||||
nnoremap <silent><script><buffer> <Plug>VimwikiNextTask
|
||||
\ :VimwikiNextTask<CR>
|
||||
nnoremap <silent><script><buffer> <Plug>VimwikiToggleListItem
|
||||
@@ -501,7 +501,7 @@ nnoremap <silent><buffer> <Plug>VimwikiListo
|
||||
nnoremap <silent><buffer> <Plug>VimwikiListO
|
||||
\ :<C-U>call vimwiki#u#count_exe('call vimwiki#lst#kbd_O()')<CR>
|
||||
|
||||
" default lists key mappings
|
||||
" Declare Map: default lists key mappings (again)
|
||||
if str2nr(vimwiki#vars#get_global('key_mappings').lists)
|
||||
call vimwiki#u#map_key('n', 'gnt', '<Plug>VimwikiNextTask')
|
||||
call vimwiki#u#map_key('n', '<C-Space>', '<Plug>VimwikiToggleListItem')
|
||||
@@ -673,7 +673,7 @@ onoremap <silent><buffer> <Plug>VimwikiTextObjListSingle
|
||||
vnoremap <silent><buffer> <Plug>VimwikiTextObjListSingleV
|
||||
\ :<C-U>call vimwiki#lst#TO_list_item(1, 1)<CR>
|
||||
|
||||
" default text object key mappings
|
||||
" Declare Map: default text object key mappings
|
||||
if str2nr(vimwiki#vars#get_global('key_mappings').text_objs)
|
||||
call vimwiki#u#map_key('o', 'ah', '<Plug>VimwikiTextObjHeader')
|
||||
call vimwiki#u#map_key('v', 'ah', '<Plug>VimwikiTextObjHeaderV')
|
||||
@@ -697,7 +697,7 @@ if str2nr(vimwiki#vars#get_global('key_mappings').text_objs)
|
||||
call vimwiki#u#map_key('v', 'il', '<Plug>VimwikiTextObjListSingleV')
|
||||
endif
|
||||
|
||||
" <Plug> header definitions
|
||||
" Map: <Plug> header definitions
|
||||
nnoremap <silent><buffer> <Plug>VimwikiAddHeaderLevel
|
||||
\ :<C-U>call vimwiki#base#AddHeaderLevel(v:count)<CR>
|
||||
nnoremap <silent><buffer> <Plug>VimwikiRemoveHeaderLevel
|
||||
@@ -713,7 +713,7 @@ nnoremap <silent><buffer> <Plug>VimwikiGoToNextSiblingHeader
|
||||
nnoremap <silent><buffer> <Plug>VimwikiGoToPrevSiblingHeader
|
||||
\ :<C-u>call vimwiki#base#goto_sibling(-1)<CR>
|
||||
|
||||
" default header key mappings
|
||||
" Declare Map Header: default header key mappings
|
||||
if str2nr(vimwiki#vars#get_global('key_mappings').headers)
|
||||
call vimwiki#u#map_key('n', '=', '<Plug>VimwikiAddHeaderLevel')
|
||||
call vimwiki#u#map_key('n', '-', '<Plug>VimwikiRemoveHeaderLevel')
|
||||
|
||||
Reference in New Issue
Block a user