Saturday, March 26, 2016

Re: Packages: best practices?

On 2016-03-26 17:56:34 +0000, Bram Moolenaar said:

> Nicola wrote:
>
>>> Then, everything should work as before, with the exception of YCM, which must
>>> now be loaded manually. To do so, I need
>>>
>>> :packadd youcompleteme
>>>
>>> but also
>>>
>>> :call youcompleteme#Enable()
>>>
>>> because :packadd does not trigger VimEnter.
>>
>> This is a bit a of a pain. How about having `:packadd` trigger an event that
>> plugins may hook to?
>
> I'm not sure what you mean. Doesn't youcompleteme do its initialization
> when it is being loaded?
>
> Hmm, maybe it relies on being sourced early, and has a VimEnter
> autocommand to trigger initialization?

Exactly. See:

https://github.com/Valloric/YouCompleteMe/blob/master/plugin/youcompleteme.vim#L166


It has:

autocmd VimEnter * call youcompleteme#Enable()

> I suppose there is no easy way to know if VimEnter already fired.
> Perhaps we need a flag that indicatest this, so you can do:
>
> if v:vim_did_enter
> call s:init()
> else
> au VimEnter * call s:init()
> endif
>
> Something like that?

For YCM, that would work. I don't know what else a plugin can do at
startup that
would not do if loaded at a later time (other types of autocmds?).

Nicola


--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments: