Platform Overview
From KDevelop
This page gives a short overview over the design of KDevelop 4 Platform and what it should be used for.
Contents |
[edit] Platform VS Others
The idea is that platform code (currently in lib/) contains:
- everything to create platform plugins
- everything to create platform applications
- commonly used/important plugins
[edit] Platform Code Layout
Platform consists of
- lib/interfaces
- interfaces that expose everything necessary for plugins
- lib/shell
- shell that implements interfaces and basically provides a ready-to-use and extend application
- lib/sublime
- the user interface library
- lib/project and lib/language
- additional libraries for project managers and language supports (usable for other plugins as well)
- lib/config, lib/editor, etc.
- additional libraries usable for both shell and plugins
[edit] What to Use in Plugins
- plugins need to link to interfaces
- plugins shall never link to shell
- plugins need not to link to sublime library
- plugins can optionally link to other helper libraries in platform when necessary
[edit] Current Platform Coding Conventions
- preferred coding style is http://www.kdevelop.org/mediawiki/index.php/Coding_Guidelines
- all platform classes shall be in KDevelop namespace
- all files have to be named without kdev* prefix
- all files have to be installed in subdirectories under ${INCLUDE_INSTALL_DIR}/kdevelop/
- all interfaces are named KDevelop::IFoo and their files ifoo.h/cpp
- all interface implementations are named KDevelop::Foo and their files foo.h/cpp