Marco Hinz 10 лет назад
Родитель
Сommit
06b117451a
1 измененных файлов с 18 добавлено и 42 удалено
  1. 18 42
      autoload/startify.vim

+ 18 - 42
autoload/startify.vim

@@ -74,25 +74,14 @@ function! startify#insane_in_the_membrane() abort
 
   if s:show_special
     call append('$', ['   [e]  <empty buffer>', ''])
-    let s:entries[line('$')-1] = {
-          \ 'index':  'e',
-          \ 'type':   'special',
-          \ 'cmd':    'enew',
-          \ 'path':   '',
-          \ 'marked': 0,
-          \ }
+    call s:register(line('$')-1, 'e', 'special', 'enew', '')
   endif
 
   let s:entry_number = 0
   if filereadable('Session.vim')
     call append('$', ['   [0]  '. getcwd() . s:sep .'Session.vim', ''])
-    let s:entries[line('$')-1] = {
-          \ 'index':  '0',
-          \ 'type':   'session',
-          \ 'cmd':    'call startify#session_delete_buffers() | source',
-          \ 'path':   'Session.vim',
-          \ 'marked': 0,
-          \ }
+    call s:register(line('$')-1, '0', 'session',
+          \ 'call startify#session_delete_buffers() | source', 'Session.vim')
     let s:entry_number = 1
     let l:show_session = 1
   endif
@@ -128,13 +117,7 @@ function! startify#insane_in_the_membrane() abort
 
   if s:show_special
     call append('$', ['', '   [q]  <quit>'])
-    let s:entries[line('$')] = {
-          \ 'index':  'q',
-          \ 'type':   'special',
-          \ 'cmd':    'call <sid>close()',
-          \ 'path':   '',
-          \ 'marked': 0,
-          \ }
+    call s:register(line('$'), 'q', 'special', 'call s:close()', '')
   endif
 
   " compute first line offset
@@ -414,13 +397,7 @@ function! s:display_by_path(path_prefix, path_format) abort
       if has('win32')
         let absolute_path = substitute(absolute_path, '\[', '\[[]', 'g')
       endif
-      let s:entries[line('$')] = {
-            \ 'index':  index,
-            \ 'type':   'file',
-            \ 'cmd':    'edit',
-            \ 'path':   absolute_path,
-            \ 'marked': 0,
-            \ }
+      call s:register(line('$'), index, 'file', 'edit', absolute_path)
       let s:entry_number += 1
     endfor
 
@@ -520,13 +497,7 @@ function! s:show_sessions() abort
     if has('win32')
       let fname = substitute(fname, '\[', '\[[]', 'g')
     endif
-    let s:entries[line('$')] = {
-          \ 'index':  index,
-          \ 'type':   'session',
-          \ 'cmd':    'SLoad',
-          \ 'path':   fname,
-          \ 'marked': 0,
-          \ }
+    call s:register(line('$'), index, 'session', 'SLoad', fname)
     let s:entry_number += 1
   endfor
 
@@ -549,13 +520,7 @@ function! s:show_bookmarks() abort
     if has('win32')
       let absolute_path = substitute(fname, '\[', '\[[]', 'g')
     endif
-    let s:entries[line('$')] = {
-          \ 'index':  index,
-          \ 'type':   'file',
-          \ 'cmd':    'edit',
-          \ 'path':   fname,
-          \ 'marked': 0,
-          \ }
+    call s:register(line('$'), index, 'file', 'edit', fname)
     let s:entry_number += 1
   endfor
 
@@ -737,3 +702,14 @@ function! s:print_section_header() abort
   call append('$', s:last_message + [''])
   unlet s:last_message
 endfunction
+
+" Function: s:register {{{1
+function! s:register(line, index, type, cmd, path)
+  let s:entries[a:line] = {
+        \ 'index':  a:index,
+        \ 'type':   a:type,
+        \ 'cmd':    a:cmd,
+        \ 'path':   a:path,
+        \ 'marked': 0,
+        \ }
+endfunction