Skip to content

Commit ec6ad51

Browse files
blueyedtpope
authored andcommitted
Improve triggering of ProjectionistDetect
1. Use `<nomodeline>` when available. 2. Do not use `:silent`, but check for existing User autocommands instead.
1 parent 6d2095b commit ec6ad51

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

plugin/projectionist.vim

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,26 @@ function! ProjectionistDetect(path) abort
5151
let root = fnamemodify(root, ':h')
5252
endwhile
5353

54-
let modelines = &modelines
55-
try
56-
set modelines=0
57-
let g:projectionist_file = file
58-
silent doautocmd User ProjectionistDetect
59-
finally
60-
let &modelines = modelines
61-
unlet! g:projectionist_file
62-
endtry
54+
if exists('#User#ProjectionistDetect')
55+
if v:version >= 704 || (v:version == 703 && has('patch442'))
56+
try
57+
let g:projectionist_file = file
58+
doautocmd <nomodeline> User ProjectionistDetect
59+
finally
60+
unlet! g:projectionist_file
61+
endtry
62+
else
63+
let modelines = &modelines
64+
try
65+
set modelines=0
66+
let g:projectionist_file = file
67+
doautocmd User ProjectionistDetect
68+
finally
69+
let &modelines = modelines
70+
unlet! g:projectionist_file
71+
endtry
72+
endif
73+
endif
6374

6475
if !empty(b:projectionist)
6576
let b:projectionist_file = file

0 commit comments

Comments
 (0)