diff options
author | ben <benjaminfranzke@googlemail.com> | 2010-02-25 20:24:41 +0100 |
---|---|---|
committer | ben <benjaminfranzke@googlemail.com> | 2010-02-25 20:24:41 +0100 |
commit | bd7323d84a593bfc31f0aeb112ba442886581257 (patch) | |
tree | 4202c1e515aeee77c20705d2c4925c1b0d9f029f /.config/vim/autoload/omni/common/utils.vim | |
parent | 571bdeb566dafd17ee4879db434e199d4eab00c9 (diff) | |
download | dotfiles-bd7323d84a593bfc31f0aeb112ba442886581257.tar.gz dotfiles-bd7323d84a593bfc31f0aeb112ba442886581257.tar.bz2 dotfiles-bd7323d84a593bfc31f0aeb112ba442886581257.zip |
mv vim`s runtimepath to .config/vim instead .vim
Diffstat (limited to '.config/vim/autoload/omni/common/utils.vim')
-rw-r--r-- | .config/vim/autoload/omni/common/utils.vim | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/.config/vim/autoload/omni/common/utils.vim b/.config/vim/autoload/omni/common/utils.vim new file mode 100644 index 0000000..c880ad2 --- /dev/null +++ b/.config/vim/autoload/omni/common/utils.vim @@ -0,0 +1,67 @@ +" Description: Omni completion utils +" Maintainer: Vissale NEANG +" Last Change: 26 sept. 2007 + +" For sort numbers in list +function! omni#common#utils#CompareNumber(i1, i2) + let num1 = eval(a:i1) + let num2 = eval(a:i2) + return num1 == num2 ? 0 : num1 > num2 ? 1 : -1 +endfunc + +" TagList function calling the vim taglist() with try catch +" The only throwed exception is 'TagList:UserInterrupt' +" We also force the noignorecase option to avoid linear search when calling +" taglist() +function! omni#common#utils#TagList(szTagQuery) + let result = [] + let bUserIgnoreCase = &ignorecase + " Forcing noignorecase search => binary search can be used in taglist() + " if tags in the tag file are sorted + if bUserIgnoreCase + set noignorecase + endif + try + let result = taglist(a:szTagQuery) + catch /^Vim:Interrupt$/ + " Restoring user's setting + if bUserIgnoreCase + set ignorecase + endif + throw 'TagList:UserInterrupt' + catch + "Note: it seems that ctags can generate corrupted files, in this case + "taglist() will fail to read the tagfile and an exception from + "has_add() is thrown + endtry + + " Restoring user's setting + if bUserIgnoreCase + set ignorecase + endif + return result +endfunc + +" Same as TagList but don't throw exception +function! omni#common#utils#TagListNoThrow(szTagQuery) + let result = [] + try + let result = omni#common#utils#TagList(a:szTagQuery) + catch + endtry + return result +endfunc + +" Get the word under the cursor +function! omni#common#utils#GetWordUnderCursor() + let szLine = getline('.') + let startPos = getpos('.')[2]-1 + let startPos = (startPos < 0)? 0 : startPos + if szLine[startPos] =~ '\w' + let startPos = searchpos('\<\w\+', 'cbn', line('.'))[1] - 1 + endif + + let startPos = (startPos < 0)? 0 : startPos + let szResult = matchstr(szLine, '\w\+', startPos) + return szResult +endfunc |