Skip to content

Commit

Permalink
Implement the hook mechanism.
Browse files Browse the repository at this point in the history
  • Loading branch information
xuhdev committed May 17, 2012
1 parent a36fc9c commit baef014
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 0 deletions.
59 changes: 59 additions & 0 deletions autoload/editorconfig.vim
@@ -0,0 +1,59 @@
" Copyright (c) 2011-2012 EditorConfig Team
" All rights reserved.
"
" Redistribution and use in source and binary forms, with or without
" modification, are permitted provided that the following conditions are met:
"
" 1. Redistributions of source code must retain the above copyright notice,
" this list of conditions and the following disclaimer.
" 2. Redistributions in binary form must reproduce the above copyright notice,
" this list of conditions and the following disclaimer in the documentation
" and/or other materials provided with the distribution.
"
" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
" POSSIBILITY OF SUCH DAMAGE.
"

if v:version < 700
finish
endif

let s:saved_cpo = &cpo
set cpo&vim

" {{{1 variables
let s:hook_list = []

function editorconfig#AddNewHook(func) " {{{1
" Add a new hook

call add(s:hook_list, a:func)
endfunction

function editorconfig#ApplyHooks(config) " {{{1
" apply hooks

for Hook in s:hook_list
let l:hook_ret = Hook(a:config)

if type(l:hook_ret) != type(0) && l:hook_ret != 0
" TODO print some debug info here
endif
endfor
endfunction

" }}}

let &cpo = s:saved_cpo
unlet! s:saved_cpo

" vim: fdm=marker fdc=3
2 changes: 2 additions & 0 deletions plugin/editorconfig.vim
Expand Up @@ -489,6 +489,8 @@ function! s:ApplyConfig(config) " {{{1
setl fileformat=mac
endif
endif

call editorconfig#ApplyHooks(a:config)
endfunction

" }}}
Expand Down

0 comments on commit baef014

Please sign in to comment.