"============================================================================= " FILE: variables.vim " AUTHOR: Shougo Matsushita " License: MIT license {{{ " Permission is hereby granted, free of charge, to any person obtaining " a copy of this software and associated documentation files (the " "Software"), to deal in the Software without restriction, including " without limitation the rights to use, copy, modify, merge, publish, " distribute, sublicense, and/or sell copies of the Software, and to " permit persons to whom the Software is furnished to do so, subject to " the following conditions: " " The above copyright notice and this permission notice shall be included " in all copies or substantial portions of the Software. " " THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS " OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF " MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. " IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY " CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, " TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE " SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. " }}} "============================================================================= let s:save_cpo = &cpo set cpo&vim 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'))), \ ':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"}}} let &cpo = s:save_cpo unlet s:save_cpo " vim: foldmethod=marker