The Plugin Problem (was KDevelop UI cleanup initiative)

Jens Dagerbo jens.dagerbo at swipnet.se
Tue Jun 1 14:48:30 UTC 2004


> > 1. The default loading of all plugins.
> >
> >  A new users first start of KDevelop with a C++ project loaded will have
> > every available plugin under the sun loaded, including four VCS plugins
> > and support for Gameboy development. It's hard to fault his/her feeling
> > that KDevelop is "bloated", even if he/she is wrong.. ;)
> >
> > This particular problem could hopefully be fixed with a little less
> > enthusiastic loading of plugins, something I'm working on.
>
> Woo, you kicked that objective public. I bet you're gonna have a discussion
> of similar size that was raised related to template changes. - And i'm
> gonna start with a few of the things we talked about in irc during the last
> half year:

Maybe you're right.. To not mix this discussion with the plain UI cleanup I 
split this off into a different thread.

[snip]

> I think we all agree that the approach of a "bad-list" is not what we
> really want to have. So we should turn that into a "good-list", which
> contains a list of plugins being loaded with the project.

Yes, our current "blacklist approach" should be changed to a "whitelist". This 
is what I want. A project templated .kdevelop file already contains settings 
for some plugins. It then decides what plugins to load by saying what plugins 
it doesn't want loaded. This is clearly not designed with a rising amount of 
available plugins in mind.

> This list would have to be checked against the available plugins at project
> loading (to see if it is actually still a sane configuration)

I'm not sure I understand why. If I, in the template, select exactly the 
plugins I need, isn't it sane to expect I know what these do (and that they 
will work)?

> Creating such a list would involve changing the DOM at project creation
> time - A thing we currently do not support. Though, it might be fun to have
> :)

AFAICT, it is absolutely neccessary for the Plugin Profiles idea I was toying 
with to be implementable.

Note: The only problem I propose to solve is the lack of a sane default set of 
plugins loaded at first creation of a project. Profiles would not come into 
play after that, the plugin set is then fully decided by the .kdevelop file 
as usual.

The basic idea was:

# The template .kdevelop file contains a whitelist. This is the list of 
plugins it "needs" to load. Presumably these are more or less the same 
plugins that have predefined settings in the .kdevelop file already. 

# A list of profiles define what plugin set makes sense for a particular kind 
of project. This is not a large list. I'm imagining some 3-4 profiles would 
be enough. 

# The profiles should be modifiable by the user, new profiles createable and a 
default profile selectable per project type. At least the selecting of a 
profile needs to be doable from the appwizard.

To not change the code too much, we could keep the current mechanism where 
the .kdevelop file keeps a blacklist (what not to load) and rely on that once 
the project has been loaded once and an up to date blacklist created. The 
only immediate downside to this is that a new plugin, installed after the 
project is created, will automatically be loaded, but that's not that big a 
deal, imho.

> With this approach, we could be a big step closed to have support for
> downloadable plugins. But i think there has to be a few things to be done
> before that.

Indeed there will.. ;)


jd




More information about the KDevelop-devel mailing list