Fix #294 improve snippet initialization

This commit is contained in:
Shougo Matsushita 2015-10-23 08:15:02 +09:00
parent e13b0c4036
commit 97e0886596
2 changed files with 26 additions and 39 deletions

View File

@ -29,7 +29,6 @@ set cpo&vim
function! neosnippet#init#_initialize() "{{{ function! neosnippet#init#_initialize() "{{{
let s:is_initialized = 1 let s:is_initialized = 1
call s:initialize_script_variables()
call s:initialize_others() call s:initialize_others()
call s:initialize_cache() call s:initialize_cache()
endfunction"}}} endfunction"}}}
@ -40,37 +39,6 @@ function! neosnippet#init#check() "{{{
endif endif
endfunction"}}} endfunction"}}}
function! s:initialize_script_variables() "{{{
" Set runtime dir.
let runtime_dir = neosnippet#variables#runtime_dir()
let runtime_dir += split(globpath(&runtimepath, 'neosnippets'), '\n')
if empty(runtime_dir) && empty(g:neosnippet#disable_runtime_snippets)
call neosnippet#util#print_error(
\ 'neosnippet default snippets cannot be loaded.')
call neosnippet#util#print_error(
\ 'You must install neosnippet-snippets or disable runtime snippets.')
endif
if g:neosnippet#enable_snipmate_compatibility
" Load snipMate snippet directories.
let runtime_dir += split(globpath(&runtimepath,
\ 'snippets'), '\n')
if exists('g:snippets_dir')
let runtime_dir += neosnippet#util#option2list(g:snippets_dir)
endif
endif
call map(runtime_dir, 'substitute(v:val, "[\\\\/]$", "", "")')
" Set snippets_dir.
let snippets_dir = neosnippet#variables#snippets_dir()
for dir in neosnippet#util#option2list(g:neosnippet#snippets_directory)
let dir = neosnippet#util#expand(dir)
if !isdirectory(dir) && !neosnippet#util#is_sudo()
call mkdir(dir, 'p')
endif
call add(snippets_dir, dir)
endfor
call map(snippets_dir, 'substitute(v:val, "[\\\\/]$", "", "")')
endfunction"}}}
function! s:initialize_cache() "{{{ function! s:initialize_cache() "{{{
" Make cache for _ snippets. " Make cache for _ snippets.
call neosnippet#commands#_make_cache('_') call neosnippet#commands#_make_cache('_')

View File

@ -64,18 +64,37 @@ function! neosnippet#variables#set_snippets(list) "{{{
let s:snippets = a:list let s:snippets = a:list
endfunction"}}} endfunction"}}}
function! neosnippet#variables#snippets_dir() "{{{ function! neosnippet#variables#snippets_dir() "{{{
if !exists('s:snippets_dir') " Set snippets_dir.
let s:snippets_dir = [] let snippets_dir = []
for dir in neosnippet#util#option2list(g:neosnippet#snippets_directory)
let dir = neosnippet#util#expand(dir)
if !isdirectory(dir) && !neosnippet#util#is_sudo()
call mkdir(dir, 'p')
endif endif
call add(snippets_dir, dir)
endfor
return s:snippets_dir return map(snippets_dir, 'substitute(v:val, "[\\\\/]$", "", "")')
endfunction"}}} endfunction"}}}
function! neosnippet#variables#runtime_dir() "{{{ function! neosnippet#variables#runtime_dir() "{{{
if !exists('s:runtime_dir') " Set runtime dir.
let s:runtime_dir = [] let runtime_dir = split(globpath(&runtimepath, 'neosnippets'), '\n')
if empty(runtime_dir) && empty(g:neosnippet#disable_runtime_snippets)
call neosnippet#util#print_error(
\ 'neosnippet default snippets cannot be loaded.')
call neosnippet#util#print_error(
\ 'You must install neosnippet-snippets or disable runtime snippets.')
endif
if g:neosnippet#enable_snipmate_compatibility
" Load snipMate snippet directories.
let runtime_dir += split(globpath(&runtimepath,
\ 'snippets'), '\n')
if exists('g:snippets_dir')
let runtime_dir += neosnippet#util#option2list(g:snippets_dir)
endif
endif endif
return s:runtime_dir return map(runtime_dir, 'substitute(v:val, "[\\\\/]$", "", "")')
endfunction"}}} endfunction"}}}
function! neosnippet#variables#data_dir() "{{{ function! neosnippet#variables#data_dir() "{{{
let g:neosnippet#data_directory = let g:neosnippet#data_directory =