|
|
@@ -114,57 +114,18 @@ function! startify#insane_in_the_membrane() abort
|
|
|
call cursor(special ? 4 : 2, 5)
|
|
|
endfunction
|
|
|
|
|
|
-" Function: startify#get_separator {{{1
|
|
|
-function! startify#get_separator() abort
|
|
|
- return !exists('+shellslash') || &shellslash ? '/' : '\'
|
|
|
-endfunction
|
|
|
-
|
|
|
-" Function: startify#get_session_names {{{1
|
|
|
-function! startify#get_session_names(lead, ...) abort
|
|
|
- return map(split(globpath(s:session_dir, '*'.a:lead.'*', '\n')), 'fnamemodify(v:val, ":t")')
|
|
|
-endfunction
|
|
|
-
|
|
|
-" Function: s:get_session_names_as_string {{{1
|
|
|
-function! s:get_session_names_as_string(lead, ...) abort
|
|
|
- return join(map(split(globpath(s:session_dir, '*'.a:lead.'*', '\n')), 'fnamemodify(v:val, ":t")'), "\n")
|
|
|
-endfunction
|
|
|
-
|
|
|
-" Function: s:escape {{{1
|
|
|
-function! s:escape(path) abort
|
|
|
- return !exists('+shellslash') || &shellslash ? fnameescape(a:path) : escape(a:path, '\')
|
|
|
-endfunction
|
|
|
-
|
|
|
-" Function: s:is_in_skiplist {{{1
|
|
|
-function! s:is_in_skiplist(arg) abort
|
|
|
- for regexp in g:startify_skiplist
|
|
|
- if (a:arg =~# regexp)
|
|
|
- return 1
|
|
|
- endif
|
|
|
- endfor
|
|
|
-endfunction
|
|
|
-
|
|
|
-" Function: s:is_bookmark {{{1
|
|
|
-function! s:is_bookmark(arg) abort
|
|
|
- "for foo in filter(map(copy(g:startify_bookmarks), 'resolve(fnamemodify(v:val, ":p"))'), '!isdirectory(v:val)')
|
|
|
- for foo in map(filter(copy(g:startify_bookmarks), '!isdirectory(v:val)'), 'resolve(fnamemodify(v:val, ":p"))')
|
|
|
- if foo == a:arg
|
|
|
- return 1
|
|
|
- endif
|
|
|
- endfor
|
|
|
-endfunction
|
|
|
-
|
|
|
-" Function: startify#delete_session {{{1
|
|
|
-function! startify#delete_session(...) abort
|
|
|
+" Function: startify#session_delete {{{1
|
|
|
+function! startify#session_delete(...) abort
|
|
|
if !isdirectory(s:session_dir)
|
|
|
echo 'The session directory does not exist: '. s:session_dir
|
|
|
return
|
|
|
- elseif empty(s:get_session_names_as_string(''))
|
|
|
+ elseif empty(startify#session_list_as_string(''))
|
|
|
echo 'There are no sessions...'
|
|
|
return
|
|
|
endif
|
|
|
let spath = s:session_dir . startify#get_separator() . (exists('a:1')
|
|
|
\ ? a:1
|
|
|
- \ : input('Delete this session: ', fnamemodify(v:this_session, ':t'), 'custom,s:get_session_names_as_string'))
|
|
|
+ \ : input('Delete this session: ', fnamemodify(v:this_session, ':t'), 'custom,startify#session_list_as_string'))
|
|
|
\ | redraw
|
|
|
echo 'Really delete '. spath .'? [y/n]' | redraw
|
|
|
if (nr2char(getchar()) == 'y')
|
|
|
@@ -178,8 +139,8 @@ function! startify#delete_session(...) abort
|
|
|
endif
|
|
|
endfunction
|
|
|
|
|
|
-" Function: startify#save_session {{{1
|
|
|
-function! startify#save_session(...) abort
|
|
|
+" Function: startify#session_save {{{1
|
|
|
+function! startify#session_save(...) abort
|
|
|
if !isdirectory(s:session_dir)
|
|
|
if exists('*mkdir')
|
|
|
echo 'The session directory does not exist: '. s:session_dir .'. Create it? [y/n]' | redraw
|
|
|
@@ -196,7 +157,7 @@ function! startify#save_session(...) abort
|
|
|
endif
|
|
|
let spath = s:session_dir . startify#get_separator() . (exists('a:1')
|
|
|
\ ? a:1
|
|
|
- \ : input('Save under this session name: ', fnamemodify(v:this_session, ':t'), 'custom,s:get_session_names_as_string'))
|
|
|
+ \ : input('Save under this session name: ', fnamemodify(v:this_session, ':t'), 'custom,startify#session_list_as_string'))
|
|
|
\ | redraw
|
|
|
let spath = s:escape(spath)
|
|
|
if !filereadable(spath)
|
|
|
@@ -211,18 +172,18 @@ function! startify#save_session(...) abort
|
|
|
endif
|
|
|
endfunction
|
|
|
|
|
|
-" Function: startify#load_session {{{1
|
|
|
-function! startify#load_session(...) abort
|
|
|
+" Function: startify#session_load {{{1
|
|
|
+function! startify#session_load(...) abort
|
|
|
if !isdirectory(s:session_dir)
|
|
|
echo 'The session directory does not exist: '. s:session_dir
|
|
|
return
|
|
|
- elseif empty(s:get_session_names_as_string(''))
|
|
|
+ elseif empty(startify#session_list_as_string(''))
|
|
|
echo 'There are no sessions...'
|
|
|
return
|
|
|
endif
|
|
|
let spath = s:session_dir . startify#get_separator() . (exists('a:1')
|
|
|
\ ? a:1
|
|
|
- \ : input('Load this session: ', fnamemodify(v:this_session, ':t'), 'custom,s:get_session_names_as_string'))
|
|
|
+ \ : input('Load this session: ', fnamemodify(v:this_session, ':t'), 'custom,startify#session_list_as_string'))
|
|
|
\ | redraw
|
|
|
if filereadable(spath)
|
|
|
execute 'source '. s:escape(spath)
|
|
|
@@ -231,6 +192,45 @@ function! startify#load_session(...) abort
|
|
|
endif
|
|
|
endfunction
|
|
|
|
|
|
+" Function: startify#session_list {{{1
|
|
|
+function! startify#session_list(lead, ...) abort
|
|
|
+ return map(split(globpath(s:session_dir, '*'.a:lead.'*', '\n')), 'fnamemodify(v:val, ":t")')
|
|
|
+endfunction
|
|
|
+
|
|
|
+" Function: startify#session_list_as_string {{{1
|
|
|
+function! startify#session_list_as_string(lead, ...) abort
|
|
|
+ return join(map(split(globpath(s:session_dir, '*'.a:lead.'*', '\n')), 'fnamemodify(v:val, ":t")'), "\n")
|
|
|
+endfunction
|
|
|
+
|
|
|
+" Function: startify#get_separator {{{1
|
|
|
+function! startify#get_separator() abort
|
|
|
+ return !exists('+shellslash') || &shellslash ? '/' : '\'
|
|
|
+endfunction
|
|
|
+
|
|
|
+" Function: s:escape {{{1
|
|
|
+function! s:escape(path) abort
|
|
|
+ return !exists('+shellslash') || &shellslash ? fnameescape(a:path) : escape(a:path, '\')
|
|
|
+endfunction
|
|
|
+
|
|
|
+" Function: s:is_in_skiplist {{{1
|
|
|
+function! s:is_in_skiplist(arg) abort
|
|
|
+ for regexp in g:startify_skiplist
|
|
|
+ if (a:arg =~# regexp)
|
|
|
+ return 1
|
|
|
+ endif
|
|
|
+ endfor
|
|
|
+endfunction
|
|
|
+
|
|
|
+" Function: s:is_bookmark {{{1
|
|
|
+function! s:is_bookmark(arg) abort
|
|
|
+ "for foo in filter(map(copy(g:startify_bookmarks), 'resolve(fnamemodify(v:val, ":p"))'), '!isdirectory(v:val)')
|
|
|
+ for foo in map(filter(copy(g:startify_bookmarks), '!isdirectory(v:val)'), 'resolve(fnamemodify(v:val, ":p"))')
|
|
|
+ if foo == a:arg
|
|
|
+ return 1
|
|
|
+ endif
|
|
|
+ endfor
|
|
|
+endfunction
|
|
|
+
|
|
|
" Function: s:open_buffers {{{1
|
|
|
function! s:open_buffers(cword) abort
|
|
|
if exists('s:marked') && !empty(s:marked)
|