tests/bundled/lh-vim-lib/autoload/lh/option.vim @ c839b22aa015
defer "can't load gundo" warning
Only inform that gundo didn't load when an attempt is made to invoke it.
Too many hosts still don't have vim 7.3, but I'd like to do a straight
update of my vimfiles from my dvcs without needing any fiddly
conditionals in order to load vim without a warning message.
author |
Seth Milliken <seth@janrain.com> |
date |
Wed, 29 Dec 2010 15:16:33 -0800 |
parents |
2b3d5ee5c4a4 |
children |
(none) |
"=============================================================================
" $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: