- Changed g:neosnippet#disable_runtime_snippets behavior.

This commit is contained in:
Shougo Matsushita 2012-10-04 17:51:15 +09:00
parent 725151160e
commit e370a62d44
3 changed files with 54 additions and 25 deletions

View File

@ -28,11 +28,13 @@ let s:save_cpo = &cpo
set cpo&vim set cpo&vim
" Global options definition."{{{ " Global options definition."{{{
call neosnippet#util#set_default('g:neosnippet#disable_runtime_snippets', call neosnippet#util#set_default(
\ 0, 'g:neocomplcache_snippets_disable_runtime_snippets') \ 'g:neosnippet#disable_runtime_snippets', {})
call neosnippet#util#set_default('g:neosnippet#snippets_directory', call neosnippet#util#set_default(
\ 'g:neosnippet#snippets_directory',
\ '', 'g:neocomplcache_snippets_dir') \ '', 'g:neocomplcache_snippets_dir')
call neosnippet#util#set_default('g:neosnippet#disable_select_mode_mappings', call neosnippet#util#set_default(
\ 'g:neosnippet#disable_select_mode_mappings',
\ 0, 'g:neocomplcache_disable_select_mode_mappings') \ 0, 'g:neocomplcache_disable_select_mode_mappings')
"}}} "}}}
@ -47,18 +49,21 @@ function! s:initialize()"{{{
" Initialize. " Initialize.
let s:snippets_expand_stack = [] let s:snippets_expand_stack = []
let s:snippets_dir = [] if get(g:, 'neocomplcache_snippets_disable_runtime_snippets', 0)
let s:runtime_dir = split(globpath(&runtimepath, " Set for backward compatibility.
\ 'autoload/neosnippet/snippets'), '\n') let g:neosnippet#disable_runtime_snippets._ = 1
if !g:neosnippet#disable_runtime_snippets
" Set snippets dir.
let s:snippets_dir += (exists('g:snippets_dir') ?
\ split(g:snippets_dir, '\s*,\s*')
\ : split(globpath(&runtimepath, 'snippets'), '\n'))
\ + s:runtime_dir
endif endif
" Set runtime dir.
let s:runtime_dir = split(globpath(&runtimepath,
\ 'autoload/neosnippet/snippets'), '\n')
let s:runtime_dir += (exists('g:snippets_dir') ?
\ split(g:snippets_dir, '\s*,\s*')
\ : split(globpath(&runtimepath, 'snippets'), '\n'))
call map(s:runtime_dir, 'substitute(v:val, "[\\\\/]$", "", "")')
" Set snippets_dir.
let s:snippets_dir = []
for dir in split(g:neosnippet#snippets_directory, '\s*,\s*') for dir in split(g:neosnippet#snippets_directory, '\s*,\s*')
let dir = neosnippet#util#expand(dir) let dir = neosnippet#util#expand(dir)
if !isdirectory(dir) if !isdirectory(dir)
@ -294,15 +299,16 @@ function! neosnippet#make_cache(filetype)"{{{
let filetype = 'nothing' let filetype = 'nothing'
endif endif
let snippets_dir = neosnippet#get_snippets_directory()
let snippet = {} let snippet = {}
let snippets_files = let snippets_files =
\ split(globpath(join(s:snippets_dir, ','), \ split(globpath(join(snippets_dir, ','),
\ filetype . '.snip*'), '\n') \ filetype . '.snip*'), '\n')
\ + split(globpath(join(s:snippets_dir, ','), \ + split(globpath(join(snippets_dir, ','),
\ filetype . '_*.snip*'), '\n') \ filetype . '_*.snip*'), '\n')
\ + split(globpath(join(s:snippets_dir, ','), \ + split(globpath(join(snippets_dir, ','),
\ filetype . '/*.snip*'), '\n') \ filetype . '/*.snip*'), '\n')
for snippets_file in snippets_files for snippets_file in reverse(snippets_files)
call s:load_snippets(snippet, snippets_file) call s:load_snippets(snippet, snippets_file)
endfor endfor
@ -324,7 +330,9 @@ function! s:load_snippets(snippet, snippets_file)"{{{
if line =~ '^include' if line =~ '^include'
" Include snippets. " Include snippets.
let snippet_file = matchstr(line, '^include\s\+\zs.*$') let snippet_file = matchstr(line, '^include\s\+\zs.*$')
for snippets_file in split(globpath(join(s:snippets_dir, ','),
for snippets_file in split(globpath(join(
\ neosnippet#get_snippets_directory(), ','),
\ snippet_file), '\n') \ snippet_file), '\n')
call s:load_snippets(a:snippet, snippets_file) call s:load_snippets(a:snippet, snippets_file)
endfor endfor
@ -830,7 +838,14 @@ function! neosnippet#get_snippets()"{{{
\ || v:val.prev_word ==# %s", string(prev_word))) \ || v:val.prev_word ==# %s", string(prev_word)))
endfunction"}}} endfunction"}}}
function! neosnippet#get_snippets_directory()"{{{ function! neosnippet#get_snippets_directory()"{{{
return s:snippets_dir let snippets_dir = copy(s:snippets_dir)
if !get(g:neosnippet#disable_runtime_snippets,
\ neosnippet#get_filetype(),
\ get(g:neosnippet#disable_runtime_snippets, '_', 0))
let snippets_dir += s:runtime_dir
endif
return snippets_dir
endfunction"}}} endfunction"}}}
function! neosnippet#get_filetype()"{{{ function! neosnippet#get_filetype()"{{{
return exists('*neocomplcache#get_context_filetype') ? return exists('*neocomplcache#get_context_filetype') ?

View File

@ -16,7 +16,7 @@ prev_word '^'
if ${1:condition} if ${1:condition}
${2} ${2}
else else
${3} ${3}
endif endif
snippet for snippet for

View File

@ -141,8 +141,7 @@ g:neosnippet#disable_select_mode_mappings
This variable controls whether to disable Key-mappings in This variable controls whether to disable Key-mappings in
|Select-mode| when snippets_complete performs. Usually you |Select-mode| when snippets_complete performs. Usually you
had better enable it. had better enable it.
Note: It must be set in .vimrc.
*g:neocomplcache_disable_select_mode_mappings* *g:neocomplcache_disable_select_mode_mappings*
Note: |g:neocomplcache_disable_select_mode_mappings| is Note: |g:neocomplcache_disable_select_mode_mappings| is
obsolute name. obsolute name.
@ -151,15 +150,29 @@ g:neosnippet#disable_select_mode_mappings
g:neosnippet#disable_runtime_snippets g:neosnippet#disable_runtime_snippets
*g:neosnippet#disable_runtime_snippets* *g:neosnippet#disable_runtime_snippets*
If this variable is 1, runtime snippets won't be loaded. This is dictionary variable. The key is filetype. If the
value is 1, runtime snippets won't be loaded.
If the key is "_", it will be used for default filetype.
This variable is useful to avoid snippets conflictions. This variable is useful to avoid snippets conflictions.
Note: It must be set in .vimrc. Note: It must be set in .vimrc.
For example:
>
let g:neosnippet#disable_runtime_snippets = {
\ 'c' : 1, 'cpp' : 1,
\ }
" Like g:neocomplcache_snippets_disable_runtime_snippets
" behavior.
let g:neosnippet#disable_runtime_snippets = {
\ '_' : 1,
\ }
<
*g:neocomplcache_snippets_disable_runtime_snippets* *g:neocomplcache_snippets_disable_runtime_snippets*
Note: |g:neocomplcache_snippets_disable_runtime_snippets| is Note: |g:neocomplcache_snippets_disable_runtime_snippets| is
obsolute name. obsolute name.
Default value is 0. Default value is {}.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
KEY MAPPINGS *neosnippet-key-mappings* KEY MAPPINGS *neosnippet-key-mappings*
@ -399,6 +412,7 @@ CHANGELOG *neosnippet-changelog*
- Changed :NeoSnippetEdit behavior. - Changed :NeoSnippetEdit behavior.
- Added scala snip. - Added scala snip.
- Fixed s:get_cursor_snippet(). - Fixed s:get_cursor_snippet().
- Changed g:neosnippet#disable_runtime_snippets behavior.
2012-10-01 2012-10-01
- Deleted neosnippet#force_expandable(). - Deleted neosnippet#force_expandable().