summaryrefslogtreecommitdiff
path: root/runtime/ftplugin.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ftplugin.vim')
-rw-r--r--runtime/ftplugin.vim14
1 files changed, 11 insertions, 3 deletions
diff --git a/runtime/ftplugin.vim b/runtime/ftplugin.vim
index 922656605..64294ca5b 100644
--- a/runtime/ftplugin.vim
+++ b/runtime/ftplugin.vim
@@ -1,7 +1,7 @@
" Vim support file to switch on loading plugins for file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last change: 2005 Mar 25
+" Last change: 2006 Mar 18
if exists("did_load_ftplugin")
finish
@@ -10,18 +10,26 @@ let did_load_ftplugin = 1
augroup filetypeplugin
au FileType * call s:LoadFTPlugin()
+
func! s:LoadFTPlugin()
if exists("b:undo_ftplugin")
exe b:undo_ftplugin
unlet! b:undo_ftplugin b:did_ftplugin
endif
- if expand("<amatch>") != ""
+
+ let s = expand("<amatch>")
+ if s != ""
if &cpo =~# "S" && exists("b:did_ftplugin")
" In compatible mode options are reset to the global values, need to
" set the local values also when a plugin was already used.
unlet b:did_ftplugin
endif
- runtime! ftplugin/<amatch>.vim ftplugin/<amatch>_*.vim ftplugin/<amatch>/*.vim
+
+ " When there is a dot it is used to separate filetype names. Thus for
+ " "aaa.bbb" load "aaa" and then "bbb".
+ for name in split(s, '\.')
+ exe 'runtime! ftplugin/' . name . '.vim ftplugin/' . name . '_*.vim ftplugin/' . name . '/*.vim'
+ endfor
endif
endfunc
augroup END