slim kdevelop

Alexander Dymo adymo at mksat.net
Thu Oct 7 23:22:07 UTC 2004


On Thursday 07 October 2004 20:03, Ian Reinhart Geiser wrote:
> Also Is it also possible to remove the Diff plugin, and the application
> information console?  Then bind these to projects.
> Next we need to add a filter for the new project wizard.  This filter will
> keep C++ projects from polluting HTML projects, and HTML projects from
> cluttering C++ projects.
> Lastly I am wondering how hard it would be to replace the splash screen
> and the about data for KDevelop, so we can make it say other things.
I already thought about it a bit. My suggestions were on our wiki but wiki is
dead atm, so look at attachment.

> IMHO this would bring us a pretty solid base for making KDevelop a
> platform for building IDEs.


-- 
Alexander Dymo
ICST Department, National University of Shipbuilding, Mykolayiv, Ukraine
-------------- next part --------------
1. How would I like to see profiles in KDevelop

Plugin profiles should form a tree-like hierarchy:

KDevelop                                     this keeps a list of enabled plugins for a kdevelop ide which loads w/o profiles
|                                            only global profiles are listed here; this list keeps minumum number of plugins necessary
|
|--Compiled Language Development             this keeps a list of enabled and disabled global and a list of enabled project plugins
|  |                                         for all compiled language 
|  |
|  |--C&C++ Development                      this keeps a list of enabled and disabled global and a list of enabled project plugins
|  |                                         used for c/c++ projects
|  |--Java Development
|  |--etc.
|
|--Scripting Language Development
|  |--Python Development
|  |--etc.
|
|--Full IDE                                  this is a virtual profile - everything is enabled

Profiles inherit settings from their parents but can override them.


2. What is the profile
- Profile is a directory somewhere in $KDEDIR/share/kdevelop/profiles
    example: Full IDE profile would reside in $KDEDIR/share/kdevelop/profiles/KDevelop/Full IDE
- Profile keeps a list of files named <plugin_name>.enable and/or <plugin_name>.disable
    example: in $KDEDIR/share/kdevelop/profiles/KDevelop/Compiled Language Development/C&C++ Development we could have files:
        KDevAbbrev.enable
        KDevFileView.disable
- Plugin is considered as disabled by default. I.e. if for given profile and all its parents there are no <plugin_name>.enable file then
plugin is disabled for the profile.

3. Why profile is not a ini-like file
We need to provide a way for plugin developers to specify which profile this plugin fits to. 
And this would be a matter of installing file <plugin_name>.enable into the profile dir.
For example KDevDocumentation.enable could go to $KDEDIR/share/kdevelop/profiles/KDevelop/Full IDE during installation.


4. How to run KDevelop with a profile.
4.1 at startup: kdevelop --profile=... and plugin controller will take care about loading necessary plugins.
4.2 at project startup: project has it's own setting for a profile and kdevelop will unload disabled global 
plugins for the profile and load enabled global plugins for the profile;
project loader will load only plugins in profile;
_additionally_: signals unloadedProfile(name) and loadedProfile(name) would be emitted

5. How to deal with plugins which need to react to the profile change
- application wizard (limit the number of app templates in the list)
- documentation plugin (limit the number of doc plugins loaded and/or limit a number of documentation catalog)
- etc.

Solution: plugin will react on unloadedProfile(name) and loadedProfile(name) and perform necessary operations



More information about the KDevelop-devel mailing list