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
Jedi has a plugin architecture, but the plugin registration is hard-coded in jedi/plugins/registry.py. It could be useful to allow users to install their third party plugins, so that frameworks, libraries, or even just big projects could offer plugins that allow Jedi to understand the non-standard things they do.
Having Jedi import plugins from a project the user works on is too risky, but maybe the users can install them separately and configure them in some ~/.config/jedi/config.py file or something?
The text was updated successfully, but these errors were encountered:
It was originally thought to be a public thing. However I decided against publishing it for the following reasons:
The current plugin architecture exposes a ton of internal concepts that are not well documented. They would all need to be documented well.
I'm not sure I want to export those internals. There's a good reason the jedi.api package exists. I want to avoid not being able to refactor things. At that point plugins would either often break or Jedi couldn't change its internals anymore. Of course you could also make an abstraction around this kind of stuff, but that's really a ton of work as well that I'm not sure I want.
I feel like with stubs coming to Python there are almost no reasons for a plugin system anymore. You can simply annotate most things. If you cannot do that, you probably (90% chance) messed up and should change your code.
It causes me a lot of work that I don't like as much as rewriting Jedi in Rust :).
For all of these reasons I'm still choosing not make it public.
Jedi has a plugin architecture, but the plugin registration is hard-coded in
jedi/plugins/registry.py
. It could be useful to allow users to install their third party plugins, so that frameworks, libraries, or even just big projects could offer plugins that allow Jedi to understand the non-standard things they do.Having Jedi import plugins from a project the user works on is too risky, but maybe the users can install them separately and configure them in some
~/.config/jedi/config.py
file or something?The text was updated successfully, but these errors were encountered: