You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Run Vim with vim -u vimrc and then run :silent! call maktaba#plugin#Detect(), and the result is:
Error detected while processing function maktaba#plugin#Detect[2]..maktaba#plugin#GetOrInstall[18]..<SNR>4_CreatePluginObject[31]..maktaba#plugin#AddonInfo:
line 8:
E484: Can't open file bar/addon-info.json
Error detected while processing function maktaba#plugin#Detect[2]..maktaba#plugin#GetOrInstall[18]..<SNR>4_CreatePluginObject[31]..maktaba#plugin#AddonInfo[8]..<SNR>4_EvalJSON:
line 8:
E15: Invalid expression:
E15: Invalid expression:
The weird part here is the first error (and in the real situation that prompted this report, that's all we see); it makes no sense to see an E484 from maktaba#plugin#AddonInfo(), since it surrounds everything with a try..catch /E48[45]:/.
Running without :silent! shows the real problem:
Error detected while processing function maktaba#plugin#Detect[2]..maktaba#plugin#GetOrInstall:
line 11:
E605: Exception not caught: ERROR(AlreadyExists): Conflict for plugin "foo": foo/ and foo.vim/
Error detected while processing function maktaba#plugin#Detect:
line 2:
E170: Missing :endfor
It seems wrong that calling with :silent! causes a different exception to be reported (or be reported at all, given that :silent! is supposed to suppress them). Is this just an artifact of how Vim's exception handling works, or is Maktaba doing something wrong?
(The real code I'm looking at is calling maktaba#plugin#RegisteredPlugins() in the context of a :silent! call in order to track plugin usage.)
The text was updated successfully, but these errors were encountered:
The docs on error handling (like :h except-compat) are really confusing, but seem to say that :silent! makes it continue execution after errors (even with abort functions?). We could file a bug in the vim tracker to ask if it's intended behavior.
Raised as vim/vim#538. Bizarrely it seems that the behaviour of :silent! is as we expect when an exception is thrown from a builtin function, just not when it's thrown from :throw.
This may not really be a Maktaba problem at all, but it's odd nonetheless.
Given the following
.vimrc
, and Vim 7.4.922:(The
&rtp
directories don't need to exist.)Run Vim with
vim -u vimrc
and then run:silent! call maktaba#plugin#Detect()
, and the result is:The weird part here is the first error (and in the real situation that prompted this report, that's all we see); it makes no sense to see an E484 from
maktaba#plugin#AddonInfo()
, since it surrounds everything with atry..catch /E48[45]:/
.Running without
:silent!
shows the real problem:It seems wrong that calling with
:silent!
causes a different exception to be reported (or be reported at all, given that:silent!
is supposed to suppress them). Is this just an artifact of how Vim's exception handling works, or is Maktaba doing something wrong?(The real code I'm looking at is calling
maktaba#plugin#RegisteredPlugins()
in the context of a:silent!
call in order to track plugin usage.)The text was updated successfully, but these errors were encountered: