Allow additional filetypes to be registered to vimwiki files.
This options allow third party plugins to register and enable additonal functionality by setting the filetype to vimwiki.other_ft.other_ft2 etc. This option should be used with care since vimwiki functionality can be overwritten by other plugins. See Issue #461 for an example use case.
This commit is contained in:
parent
ae67790ad5
commit
1e74443b5a
@ -309,7 +309,7 @@ function! vimwiki#base#open_link(cmd, link, ...)
|
||||
if update_prev_link
|
||||
if a:0
|
||||
let vimwiki_prev_link = [a:1, []]
|
||||
elseif &ft ==# 'vimwiki'
|
||||
elseif vimwiki#u#ft_is_vw()
|
||||
let vimwiki_prev_link = [vimwiki#path#current_wiki_file(), getpos('.')]
|
||||
endif
|
||||
endif
|
||||
@ -811,8 +811,8 @@ function! vimwiki#base#edit_file(command, filename, anchor, ...)
|
||||
" Make sure no other plugin takes ownership over the new file. Vimwiki
|
||||
" rules them all! Well, except for directories, which may be opened with
|
||||
" Netrw
|
||||
if &filetype != 'vimwiki' && fname !~ '\m/$'
|
||||
setfiletype vimwiki
|
||||
if !vimwiki#u#ft_is_vw() && fname !~? '\m/$'
|
||||
call vimwiki#u#ft_set()
|
||||
endif
|
||||
endif
|
||||
if a:anchor != ''
|
||||
|
@ -676,7 +676,7 @@ endfunction
|
||||
|
||||
|
||||
function! vimwiki#tbl#format(lnum, ...)
|
||||
if !(&filetype ==? 'vimwiki')
|
||||
if !vimwiki#u#ft_is_vw()
|
||||
return
|
||||
endif
|
||||
let line = getline(a:lnum)
|
||||
@ -759,7 +759,7 @@ endfunction
|
||||
|
||||
|
||||
function! vimwiki#tbl#reset_tw(lnum)
|
||||
if !(&filetype ==? 'vimwiki')
|
||||
if !vimwiki#u#ft_is_vw()
|
||||
return
|
||||
endif
|
||||
let line = getline(a:lnum)
|
||||
|
@ -70,3 +70,28 @@ else
|
||||
endfunc
|
||||
endif
|
||||
|
||||
|
||||
" 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()
|
||||
let ftypelist = vimwiki#vars#get_global('filetypes')
|
||||
let ftype = 'vimwiki'
|
||||
for ftypeadd in ftypelist
|
||||
let ftype = ftype . '.' . ftypeadd
|
||||
endfor
|
||||
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()
|
||||
if split(&filetype, '\.')[0] ==? 'vimwiki'
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
endfunction
|
||||
|
@ -160,6 +160,7 @@ function! s:read_global_settings_from_user()
|
||||
\ 'folding': {'type': type(''), 'default': '', 'possible_values': ['', 'expr', 'syntax',
|
||||
\ 'list', 'custom', ':quick', 'expr:quick', 'syntax:quick', 'list:quick',
|
||||
\ 'custom:quick']},
|
||||
\ 'filetypes': {'type': type([]), 'default': []},
|
||||
\ 'global_ext': {'type': type(0), 'default': 1, 'min': 0, 'max': 1},
|
||||
\ 'hl_cb_checked': {'type': type(0), 'default': 0, 'min': 0, 'max': 2},
|
||||
\ 'hl_headers': {'type': type(0), 'default': 0, 'min': 0, 'max': 1},
|
||||
|
@ -3161,6 +3161,21 @@ values are from 0 to 2.
|
||||
The default is 1.
|
||||
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
*g:vimwiki_filetypes*
|
||||
|
||||
A list of additional fileypes that should be registered to vimwiki files: >
|
||||
|
||||
let g:vimwiki_filetypes = ['markdown', 'pandoc']
|
||||
|
||||
Would result in the filetype being set to `vimwiki.markdown.pandoc`. This can
|
||||
be used to enable third party plugins such as custom folding. WARNING: this
|
||||
option can allow other plugins to overwrite vimwiki settings and operation so
|
||||
take care when using it. Any plugin that uses a set filetype will be enabled.
|
||||
|
||||
The default is `[ ]`
|
||||
|
||||
|
||||
==============================================================================
|
||||
13. Getting help *vimwiki-help*
|
||||
|
||||
|
@ -89,7 +89,7 @@ function! s:setup_new_wiki_buffer()
|
||||
|
||||
" this makes that ftplugin/vimwiki.vim and afterwards syntax/vimwiki.vim are
|
||||
" sourced
|
||||
setfiletype vimwiki
|
||||
call vimwiki#u#ft_set()
|
||||
|
||||
endfunction
|
||||
|
||||
@ -102,8 +102,8 @@ function! s:setup_buffer_enter()
|
||||
return
|
||||
endif
|
||||
|
||||
if &filetype != 'vimwiki'
|
||||
setfiletype vimwiki
|
||||
if !vimwiki#u#ft_is_vw()
|
||||
call vimwiki#u#ft_set()
|
||||
endif
|
||||
|
||||
call s:set_global_options()
|
||||
|
Loading…
Reference in New Issue
Block a user