mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-03 05:00:04 +08:00
111 lines
3.5 KiB
VimL
111 lines
3.5 KiB
VimL
"=============================================================================
|
|
" FILE: variables.vim
|
|
" AUTHOR: Shougo Matsushita <Shougo.Matsu at gmail.com>
|
|
" License: MIT license
|
|
"=============================================================================
|
|
|
|
function! vimfiler#variables#get_clipboard() abort
|
|
if !exists('s:clipboard')
|
|
let s:clipboard = {'operation' : '', 'files' : []}
|
|
endif
|
|
|
|
return s:clipboard
|
|
endfunction
|
|
|
|
function! vimfiler#variables#get_data_directory() abort
|
|
let g:vimfiler_data_directory =
|
|
\ substitute(fnamemodify(get(
|
|
\ g:, 'vimfiler_data_directory',
|
|
\ ($XDG_CACHE_HOME != '' ?
|
|
\ $XDG_CACHE_HOME . '/vimfiler' : expand('~/.cache/vimfiler', 1))),
|
|
\ ':p'), '\\', '/', 'g')
|
|
if !isdirectory(g:vimfiler_data_directory) && !vimfiler#util#is_sudo()
|
|
call mkdir(g:vimfiler_data_directory, 'p')
|
|
endif
|
|
|
|
return g:vimfiler_data_directory
|
|
endfunction
|
|
|
|
function! vimfiler#variables#default_context() abort
|
|
if !exists('s:default_context')
|
|
call s:initialize_default_options()
|
|
endif
|
|
|
|
return deepcopy(s:default_context)
|
|
endfunction
|
|
|
|
function! vimfiler#variables#options() abort
|
|
if !exists('s:options')
|
|
let s:options = map(filter(items(vimfiler#variables#default_context()),
|
|
\ "v:val[0] !~ '^vimfiler__'"),
|
|
\ "'-' . substitute(v:val[0], '_', '-', 'g') .
|
|
\ (type(v:val[1]) == type(0) && (v:val[1] == 0 || v:val[1] == 1) ?
|
|
\ '' : '=')")
|
|
|
|
" Generic no options.
|
|
let s:options += map(filter(copy(s:options),
|
|
\ "v:val[-1:] != '='"), "'-no' . v:val")
|
|
endif
|
|
|
|
return deepcopy(s:options)
|
|
endfunction
|
|
|
|
function! s:initialize_default_options() abort
|
|
let s:default_context = {
|
|
\ 'buffer_name' : 'default',
|
|
\ 'quit' : 1,
|
|
\ 'force_quit' : 0,
|
|
\ 'force_hide' : 0,
|
|
\ 'toggle' : 0,
|
|
\ 'create' : 0,
|
|
\ 'simple' : 0,
|
|
\ 'double' : 0,
|
|
\ 'split' : 0,
|
|
\ 'status' : 0,
|
|
\ 'parent' : 1,
|
|
\ 'horizontal' : 0,
|
|
\ 'winheight' : -1,
|
|
\ 'winwidth' : -1,
|
|
\ 'winminwidth' : -1,
|
|
\ 'direction' : 'topleft',
|
|
\ 'auto_cd' : 0,
|
|
\ 'explorer' : 0,
|
|
\ 'reverse' : 0,
|
|
\ 'project' : 0,
|
|
\ 'find' : 0,
|
|
\ 'tab' : 0,
|
|
\ 'alternate_buffer' : bufnr('%'),
|
|
\ 'prev_winsaveview' : winsaveview(),
|
|
\ 'focus' : 1,
|
|
\ 'invisible' : 0,
|
|
\ 'columns' : 'type:size:time',
|
|
\ 'explorer_columns' : '',
|
|
\ 'safe' : 1,
|
|
\ 'auto_expand' : 0,
|
|
\ 'sort_type' : 'filename',
|
|
\ 'edit_action' : 'open',
|
|
\ 'split_action' : 'right',
|
|
\ 'preview_action' : 'preview',
|
|
\ 'fnamewidth' : -1,
|
|
\ 'vimfiler__prev_bufnr' : bufnr('%'),
|
|
\ 'vimfiler__prev_winnr' : winnr(),
|
|
\ 'vimfiler__winfixwidth' : &l:winfixwidth,
|
|
\ 'vimfiler__winfixheight' : &l:winfixheight,
|
|
\ }
|
|
|
|
" For compatibility(deprecated variables)
|
|
for [context, var] in filter([
|
|
\ ['direction', 'g:vimfiler_split_rule'],
|
|
\ ['auto_cd', 'g:vimfiler_enable_auto_cd'],
|
|
\ ['columns', 'g:vimfiler_default_columns'],
|
|
\ ['explorer_columns', 'g:vimfiler_explorer_columns'],
|
|
\ ['safe', 'g:vimfiler_safe_mode_by_default'],
|
|
\ ['sort_type', 'g:vimfiler_sort_type'],
|
|
\ ['split_action', 'g:vimfiler_split_action'],
|
|
\ ['edit_action', 'g:vimfiler_edit_action'],
|
|
\ ['preview_action', 'g:vimfiler_preview_action'],
|
|
\ ], "exists(v:val[1])")
|
|
let s:default_context[context] = {var}
|
|
endfor
|
|
endfunction
|