Configure KDevelop... mixing session & global settings, for plugin enabling it is per-session only (was: Re: How to make the CTags plugin default disabled for only KDevelop, but not Kate?)

Friedrich W. H. Kossebau kossebau at kde.org
Thu Jul 11 16:05:23 BST 2019


Am Donnerstag, 11. Juli 2019, 16:48:35 CEST schrieb Kevin Funk:
> On Thursday, 11 July 2019 16:27:52 CEST santilin wrote:
> > On 10/7/19 23:03, Friedrich W. H. Kossebau wrote:
> > > Hi,
> > > 
> > > 
> > > Opinions? Better ideas?
> > 
> > As a long term user of Kdevelop but a beginner looking inside it, I have
> > always found difficult to understand the Kdevelop settings.
> > 
> > I used to think that when I went to Settings -> Configure Kdevelop, I
> > was setting the session properties unrelated to any loades project, and
> > then, when I went to Project -> Open configuration I could set up the
> > project properties. Not long ago, I understood that Settings ->
> > Configure Kdevelop configures the session (and still I am not a hundred
> > percent sure) from what I have been wondered recently where do I set up
> > the settings prior to the session.
> > 
> > I'm using a slow computer and I want to disable as much plugins as
> > possible, and I find that for every new session, I have to uncheck all
> > the plugins I don't need. If I had a place to tell Kdevelop no to load
> > some plugins when I create a new session, I'd be very happy.
> 
> Heya,
> 
> <hack alert>
> One way to solve this is to set a environment variable in e.g. your 
.bashrc:
> 
> Example:
>   export KDEV_DISABLE_PLUGINS=KDevWelcomePage
> 
> This variable takes a ';'-separated list of plugin IDs which will not be
> loaded. A plugin's ID can be found in the "Id" key in the plugin's .json
> file. </hack alert>
> 
> Sorry, I don't think there's a better solution. I agree that is not 
entirely
> clear where a setting is stored as well. Even I as a maintainer am confused
> about this in KDevelop. :(

Yes, the general settings dialog in KDevelop sadly wildly mixes per-session 
and global settings, without any indication to the user.

That needs badly some proper rewrite/redesign.

When it comes to plugins, which are enabled is defined in this order:
1) If blacklisted in env var KDEV_DISABLE_PLUGINS -> do not load
2) If defined as X-KDevelop-LoadMode=Global (default) -> always load
3) plugin metadata recommends itself to be default or not
  (sadly in kdevelop5 stored in embedded metadata, so cannot be overwritten 
by user)
4) session settings has entry which overwrites plugin recommendation
   (coming from Settings -> Configure KDevelop... with current session)

See code in
https://cgit.kde.org/kdevelop.git/tree/kdevplatform/shell/
plugincontroller.cpp

So Kevin's hack seems the only quick solution for now.

Cheers
Friedrich




More information about the KDevelop-devel mailing list