diff options
| author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 | 
|---|---|---|
| committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 | 
| commit | 114a878c64ce6f8223cfd22d76a20eb16d177e5e (patch) | |
| tree | acaf47eb0fa12142d3896416a69e74cbf5a72242 /doc/api/Architecture.dox | |
| download | tdevelop-114a878c64ce6f8223cfd22d76a20eb16d177e5e.tar.gz tdevelop-114a878c64ce6f8223cfd22d76a20eb16d177e5e.zip | |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdevelop@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'doc/api/Architecture.dox')
| -rw-r--r-- | doc/api/Architecture.dox | 315 | 
1 files changed, 315 insertions, 0 deletions
| diff --git a/doc/api/Architecture.dox b/doc/api/Architecture.dox new file mode 100644 index 00000000..ae4ef73d --- /dev/null +++ b/doc/api/Architecture.dox @@ -0,0 +1,315 @@ +/** \file  Architecture.dox +  * \brief KDevelop architecture +  */ + +/** \page architecture KDevelop 3 Architecture + +KDevelop uses a plugin based architecture. This will be explained in more +detail in the next sections. To add a new plugin check the \ref howToAddPlugins page. + +\section devteammodel Development Team cooperation model + +KDevelop is the result of the work of many people. To help syncronize the effords and to automate +some tasks, the team uses many tools: + +  - CVS servers +  - KDE Bugzilla +  - Web servers +  - Mailing Lists +  - IRC +  - Doxygen +  - docbook +  - LXR +  - E-mail :) +  - Cron Jobs +  - and of course KDevelop :) +  . + +They get interconnected like this: + +\image html Development.png + + +\section overview Source Overview + +\subsection source-division Main Source Divisions + +The KDevelop 3 source is divided into several parts which correspond to +subdirectories in the KDevelop project directory. There are several main +parts to distinguish, mainly: + +  - src            = The core part of KDevelop +  - lib/interfaces = Plugin handler interface classes +  - parts          = The various parts using the KParts framework ( KDevPlugin children ) +  - languages      = \ref language-parts +  - buildtools     = \ref buildtool-parts +  - vcs            = \ref vcs-parts +  - editors        = \ref editor-parts +  . + +\image html Architecture.png + +This image is not complete there are parts that are not displayed. See below for a more detailed description. + +\subsection core-part The Core Part of KDevelop + +\subsubsection mainwindows Main Window Objects + +There are two types of possible main window objects: + + - MainWindow implements standard MDI user interfaces: +   - Top level mode (see MainWindow::switchToToplevelMode() ) +   - Childframe mode (see MainWindow::switchToChildframeMode() ) +   - Tab page mode (see MainWindow::switchToTabPageMode() ) +   - IDEAl mode (see MainWindow::switchToIDEAlMode() ) +   . + - MainWindowIDEAl implements an enhanced MDI main window providing a set of +   pre-arranged access tabs around user areas. + . + +Both main window classes inherit from the KDevMainWindow class which provides +access to common window features. + +\subsubsection toplevel The TopLevel Object + +There is only one toplevel object of class KDevMainWindow in KDevelop. It can +be accessed through the static function TopLevel::getInstance() (see the +TopLevel class). + +\subsection parts-overview KDevelop Parts Overview + +All parts reside in dedicated subdirectories acording to their function. They can +be viewed according to their functionalities as follows. + +\subsubsection language-parts Programming Language Support Parts + +These parts implement a KDevLanguageSupport Class interface. +To add support for a new programming language check the \ref howToAddProgrammingLanguages page (doc/api/HowToAddProgrammingLanguages.dox file). +Take a look at \ref LangSupportStatus (doc/api/LangSupportStatus.dox file) to see the current status/features of the programming languages currently supported by KDevelop. + +  - languages/ada = Support for Ada +    - (see AdaSupportPart) +    . +  - languages/bash = Support for bash +    - (see BashSupportPart) +    . +  - languages/cpp = Support for C/C++ +    - (see CppSupportPart) +      - languages/cpp/debugger = GNU Debugger frontend +        - (see GDBDebugger::DebuggerPart) +        . +      . +    . +  - languages/fortran = Support for Fortran +    - (see FortranSupportPart) +    . +  - languages/haskell = Support for Haskell +    - (see HaskellSupportPart) +    . +  - languages/java = Support for Java +    - (see JavaSupportPart) +      - languages/java/degugger = Java debugger frontend +        - (JAVADebugger::JavaDebuggerPart) +        . +      . +    . +  - languages/pascal = Support for Pascal +    - (see PascalSupportPart) +    . +  - languages/perl = Support for Perl +    - (see PerlSupportPart) +    . +  - languages/php = Support for PHP +    - (see PHPSupportPart) +    . +  - languages/python = Support for Python +    - (see PythonSupportPart) +    . +  - languages/ruby = Support for Ruby +    - (see RubySupportPart) +    . +  - languages/sql = Support for SQL +    - (see SQLSupportPart) +    . +  . + +\subsubsection buildtool-parts Build tools Parts + +These parts implement a KDevProject Class interface. + +  - buildtools/ada = Ada build tool +    - (see AdaProjectPart) +    . +  - buildtools/ant = ANT build tool +    - (see AntProjectPart) +    . +  - buildtools/autotools = Autotools build tool +    - (see AutoProjectPart) +    . +  - buildtools/custommakefiles = Custom makefiles build tool +    - (see CustomProjectPart) +    . +  - buildtools/generic = Generic build tool +    - (see GenericProjectPart) +    . +  - buildtools/pascal = Pascal build tool +    - (see PascalProjectPart) +    . +  - buildtools/script = Script build tool +    - (see ScriptProjectPart) +    . +  - buildtools/qmake = QMake based build tool +    - (see TrollProjectPart) +    . +  . + + +\subsubsection vcs-parts VCS (Version Control System) Parts + +These parts implement a KDevVersionControl Class interface. + +  - vcs/cervisia = Cervisia Support +    - (see CervisiaPlugin) +    . +  - vcs/clearcase = IBM Rational ClearCase Support +    - (see ClearcasePart) +    . +  - vcs/cvs = CVS Support +    - (see CvsPart) +    . +  - vcs/cvsservice = cvsservice Support (Cervisia interface) +    - (see CvsServicePart) +    . +  - vcs/perforce = Version managment system perforce integration +    - (see PerforcePart) +    . +  - vcs/subversion = Subversion integration +    - (see subversionPart) +    . +  . + + +\subsubsection editor-parts editor support Specific Parts + +These parts implement a KTextEditor Class interface. +Take a look at \ref EditorsSupportStatus (doc/api/EditorsSupportStatus.dox file) to see the current status/features of the editors currently supported by KDevelop. + +  - editors/editor-chooser = Chooses an internal text editor +    - (see EditorChooserPart) +    . +  - editors/nedit = KTextEditor interface for nedit +    - (see KNEditFactory, Document, View) +    . +  - editors/qeditor = QEditor integration +    - (see QEditorPart) +    . +  . + + +\subsubsection global-parts Global Parts + +Some of the parts are considered global - that is, they effect the entire +operation of KDevelop. + +These parts implement a KDevPlugin Class interface. + +  - parts/appwizard = New Project Wizard +    - see AppWizardPart +    - see \ref howToAddApplicationTemplates (doc/api/HowToAddApplicationTemplates.dox file) +    . +  - parts/history = Project history +    - (see HistoryPart) +    . +  - parts/konsole = Embedded Konsole +    - (see KonsoleViewPart) +    . +  - parts/doctreeview = Documentation Viewer +    - (see DocTreeViewPart) +    . +  - parts/openwith = "Open with" menu addon +    - (see OpenWithPart) +    . +  - parts/fileselector = A file selection widget +    - (see FileSelectorPart) +    . +  - parts/uimode = Customize the UI mode +    - (see UIChooserPart) +    . +  - parts/texttools = Additional text tools +    - (see TextToolsPart) +    . +  - parts/tipofday = A tip of the day +    - (see TipOfDayPart) +    . +  - parts/grepview = A graphical grep utility +    - (see GrepViewPart) +    . +  - parts/tools = Toolbar management +    - (see ToolsPart) +    . +  - parts/regexptest = A regular expression tester +    - (see RegexpTestPart) +    . +  - parts/abbrev = Abbreviation Expansion +    - (see AbbrevPart) +    . +  - parts/filter = Shell Filtering and Insertion +    - (see FilterPart) +    . +  - parts/valgrind = A graphical valgrind frontend +    - (see ValgrindPart) +    . +  . + + +\subsubsection project-specific-parts Project Specific Parts + +These parts implement a KDevPlugin Class interface. + +  - parts/astyle = Source code formatter +    - (see AStylePart) +    . +  - parts/buglist = Bug tracking application +    - (see BugList) +    . +  - parts/classview = Classview Manager +    - (see ClassViewPart) +    . +  - parts/ctags = CTags frontend +    - (see CTagsPart) +    . +  - parts/diff = Difference viewer +    - (see DiffPart) +    . +  - parts/distpart = Aids in building and publishing the final project +    - (see DistpartPart) +    . +  - parts/doxygen = Doxygen integration +    - (see DoxygenPart) +    . +  - parts/filecreate = New file creation +    - see FileCreatePart +    - see \ref howToAddFileTemplates (doc/api/HowToAddFileTemplates.dox file) +    . +  - parts/fileview = File groups +    - (see FileViewPart, FileGroupsPart) +    . +  - parts/manager = Document manager +    - (see DocManager, ViewManager) +    . +  - parts/outputviews = Application output views +    - (see AppOutputViewPart, MakeViewPart) +    . +  - parts/scripting = Python scripting interface +    - (see ScriptingPart) +    . +  - parts/sourcenav = Source code navigation +    - (see SourceNavPart) +    . +  - parts/visualboyadvance = VisualBoy Advance integration +    - (see VisualBoyAdvance::VisualBoyAdvancePart) +    . +  . + +*/ + | 
