Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
108 lines
3.5 KiB
VimL
108 lines
3.5 KiB
VimL
"=============================================================================
|
|
" $Id: option.vim 246 2010-09-19 22:40:58Z luc.hermitte $
|
|
" File: autoload/lh/option.vim {{{1
|
|
" Author: Luc Hermitte <EMAIL:hermitte {at} free {dot} fr>
|
|
" <URL:http://code.google.com/p/lh-vim/>
|
|
" Version: 2.2.1
|
|
" Created: 24th Jul 2004
|
|
" Last Update: $Date: 2010-09-19 18:40:58 -0400 (Sun, 19 Sep 2010) $ (07th Oct 2006)
|
|
"------------------------------------------------------------------------
|
|
" Description:
|
|
" Defines the global function lh#option#get().
|
|
" Aimed at (ft)plugin writers.
|
|
"
|
|
"------------------------------------------------------------------------
|
|
" Installation:
|
|
" Drop this file into {rtp}/autoload/lh/
|
|
" Requires Vim 7+
|
|
" History:
|
|
" v2.0.5
|
|
" (*) lh#option#get_non_empty() manages Lists and Dictionaries
|
|
" (*) lh#option#get() doesn't test emptyness anymore
|
|
" v2.0.0
|
|
" Code moved from {rtp}/macros/
|
|
" }}}1
|
|
"=============================================================================
|
|
|
|
|
|
"=============================================================================
|
|
let s:cpo_save=&cpo
|
|
set cpo&vim
|
|
|
|
"------------------------------------------------------------------------
|
|
" ## Functions {{{1
|
|
" # Debug {{{2
|
|
function! lh#option#verbose(level)
|
|
let s:verbose = a:level
|
|
endfunction
|
|
|
|
function! s:Verbose(expr)
|
|
if exists('s:verbose') && s:verbose
|
|
echomsg a:expr
|
|
endif
|
|
endfunction
|
|
|
|
function! lh#option#debug(expr)
|
|
return eval(a:expr)
|
|
endfunction
|
|
|
|
" # Public {{{2
|
|
" Function: lh#option#get(name, default [, scope]) {{{3
|
|
" @return b:{name} if it exists, or g:{name} if it exists, or {default}
|
|
" otherwise
|
|
" The order of the variables checked can be specified through the optional
|
|
" argument {scope}
|
|
function! lh#option#get(name,default,...)
|
|
let scope = (a:0 == 1) ? a:1 : 'bg'
|
|
let name = a:name
|
|
let i = 0
|
|
while i != strlen(scope)
|
|
if exists(scope[i].':'.name)
|
|
" \ && (0 != strlen({scope[i]}:{name}))
|
|
return {scope[i]}:{name}
|
|
endif
|
|
let i += 1
|
|
endwhile
|
|
return a:default
|
|
endfunction
|
|
function! lh#option#Get(name,default,...)
|
|
let scope = (a:0 == 1) ? a:1 : 'bg'
|
|
return lh#option#get(a:name, a:default, scope)
|
|
endfunction
|
|
|
|
function! s:IsEmpty(variable)
|
|
if type(a:variable) == type('string') | return 0 == strlen(a:variable)
|
|
elseif type(a:variable) == type(42) | return 0 == a:variable
|
|
elseif type(a:variable) == type([]) | return 0 == len(a:variable)
|
|
elseif type(a:variable) == type({}) | return 0 == len(a:variable)
|
|
else | return false
|
|
endif
|
|
endfunction
|
|
|
|
" Function: lh#option#get_non_empty(name, default [, scope]) {{{3
|
|
" @return of b:{name}, g:{name}, or {default} the first which exists and is not empty
|
|
" The order of the variables checked can be specified through the optional
|
|
" argument {scope}
|
|
function! lh#option#get_non_empty(name,default,...)
|
|
let scope = (a:0 == 1) ? a:1 : 'bg'
|
|
let name = a:name
|
|
let i = 0
|
|
while i != strlen(scope)
|
|
if exists(scope[i].':'.name) && !s:IsEmpty({scope[i]}:{name})
|
|
return {scope[i]}:{name}
|
|
endif
|
|
let i += 1
|
|
endwhile
|
|
return a:default
|
|
endfunction
|
|
function! lh#option#GetNonEmpty(name,default,...)
|
|
let scope = (a:0 == 1) ? a:1 : 'bg'
|
|
return lh#option#get_non_empty(a:name, a:default, scope)
|
|
endfunction
|
|
|
|
" Functions }}}1
|
|
"------------------------------------------------------------------------
|
|
let &cpo=s:cpo_save
|
|
"=============================================================================
|
|
" vim600: set fdm=marker:
|