From fd327db40d0ee6130b42e18ffaee04951c33399f Mon Sep 17 00:00:00 2001 From: Takahiro Yoshihara Date: Thu, 21 Jun 2018 23:52:57 +0900 Subject: [PATCH] Fix filetype detection mechanism Close #453 --- autoload/ctrlp.vim | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/autoload/ctrlp.vim b/autoload/ctrlp.vim index e43d4242..1286fbd9 100644 --- a/autoload/ctrlp.vim +++ b/autoload/ctrlp.vim @@ -2595,6 +2595,20 @@ fu! s:ExitIfSingleCandidate() return 0 endfu +fu! s:IsBuiltin() + let builtins = ['tag', 'dir', 'bft', 'rts', 'bkd', 'lns', 'chs', 'mix', 'udo', 'qfx'] + let curtype = s:getextvar('sname') + return s:itemtype < len(s:coretypes) || index(builtins, curtype) > -1 +endfu + +fu! s:DetectFileType(type, ft) + if s:IsBuiltin() || empty(a:ft) + retu 'ctrlp' + el + retu 'ctrlp.' . a:ft + en +endfu + fu! ctrlp#init(type, ...) if exists('s:init') || s:iscmdwin() | retu | en let [s:ermsg, v:errmsg] = [v:errmsg, ''] @@ -2618,7 +2632,7 @@ fu! ctrlp#init(type, ...) en en cal ctrlp#setlines(s:settype(type)) - let &filetype = empty(&filetype) ? 'ctrlp' : 'ctrlp.' . &filetype + let &filetype = s:DetectFileType(type, &filetype) cal ctrlp#syntax() cal s:SetDefTxt() let curName = s:CurTypeName()