<appendix id="app-files">
<!-- LWatts (2005-04-30): A lot of this might be better as variable lists, -->
<!-- but  it's not that big a deal.  Something to be done only when there's -->
<!-- a lot of textual changes needed here (e.g., maybe never ) -->

<appendixinfo>
  <authorgroup>
    <author><firstname>Bernd</firstname><surname>Pol</surname></author>
    <!-- ROLES_OF_TRANSLATORS -->
  </authorgroup>
</appendixinfo>

<title>Configuration Files Used by &kdevelop;</title>

<para>
&kdevelop; uses a series of configuration files which are distributed amongst several directories. There are two main groups of configuration files to distinguish:
</para>
<simplelist>
  <member>
    <link linkend="app-files-default">&kdevelop; Default Configuration</link> &mdash; files set up when &kdevelop; was installed.
  </member>
  <member>
    <link linkend="app-files-user">User Oriented Configuration</link> &mdash; files which contain user modifications of the defaults as well as settings made by the &kdevelop; application itself and its plugins.
  </member>
</simplelist>

<sect1 id="app-files-default">
<title>&kdevelop; Default Configuration</title>

<para>
On installation, &kdevelop; writes some default information files for setup and configuration purposes into subdirectories of the <filename class="directory">$<envar>KDEDIR</envar></filename> installation directory (usually something like <filename class="directory">/opt/kde</filename>, <filename class="directory">/usr/local/kde</filename>, or some other user-defined installation directory, see <link linkend="kdevelop-install">Installing &kdevelop;</link>).
</para>

<sect2 id="app-files-default-config">
<title>Default &kdevelop; Configuration</title>

<para>
There is only one &kdevelop; specific default configuration file in the <filename class="directory">$<envar>KDEDIR</envar>/share/config/</filename> directory:
</para>
<variablelist>
  <varlistentry>
  <term><filename>kdeveloprc</filename></term>
  <listitem><para>
  This file contains the basic settings &kdevelop; needs to start. It will be copied to the user's <filename class="directory">$<envar>KDEHOME</envar>/share/config</filename> directory when &kdevelop; does not find a <filename>kdeveloprc</filename> file there on startup.
  </para></listitem>
  </varlistentry>
</variablelist>

</sect2> <!-- app-files-default-config -->

<sect2 id="app-files-default-apps">
<title>Application Specific Defaults</title>

<para>
Most &kdevelop; features are provided by KParts. These are basically applications specially designed to run in the &kdevelop; framework (see the overview in the <link linkend="plugin-tools">Plugin Tools</link> appendix). Each KPart application has its own set of configuration files whose defaults will be stored in several subdirectories of the <filename class="directory">$<envar>KDEDIR</envar>/share/apps/</filename> installation directory.
</para>

<para>
There are quite a lot of default configuration subdirectories in <filename class="directory">$<envar>KDEDIR</envar>/share/apps/</filename> whose names all start with a <filename>kdev</filename> sequence. Most of them are for &kdevelop; internal use only. They might be deliberately grouped for readability as:
<simplelist>
  <member><link linkend="app-files-default-apps-stdalone">Stand-alone Applications</link></member>
  <member><link linkend="app-files-default-apps-task">Task Specific Parts</link></member>
  <member><link linkend="app-files-default-apps-project">Project Generation Parts</link></member>
  <member><link linkend="app-files-default-apps-lang">Language Specific Parts</link></member>
</simplelist>
</para>

<itemizedlist>
  <listitem id="app-files-default-apps-stdalone"><itemizedlist>
    <title>Stand-alone Applications</title>
    <listitem>
      <para><filename class="directory">kdevelop/</filename> &mdash; contains files to configure the &kdevelop; &IDE;:</para>
      <itemizedlist>
        <listitem><para><filename class="directory">licenses/</filename> &mdash; contains various licenses texts.</para></listitem>
        <listitem><para><filename class="directory">pics/</filename> &mdash; contains the picture files used for the &kdevelop;, &kdevelop; Assistant, and &kdevelop; Designer splash screens.</para></listitem>
        <listitem><para><filename class="directory">profiles/</filename> &mdash; contains default plugin profile settings. (Currently there is only a <filename>tiny</filename> profile provided which defines a minimum set of active &kdevelop; plugins.)</para></listitem>
        <listitem><para><filename>eventsrc</filename> &mdash; holds a lot of <quote>Process successful</quote> localization strings.</para></listitem>
        <listitem><para><filename>kdevelopui.rc</filename> &mdash; provides the basic menu and tool bar entries &kdevelop; uses.</para></listitem>
        <listitem><para><filename>kdevhtml_partui.rc</filename> &mdash; provides a <guimenuitem>Print...</guimenuitem> entry in the <guimenu>File</guimenu> menu, a <guimenuitem>Copy</guimenuitem> entry in the <guimenu>Edit</guimenu> menu, and <guilabel>Back</guilabel> and <guilabel>Forward</guilabel> arrows in the <guilabel>Browser Toolbar</guilabel> in case a &HTML; file is browsed from the <guilabel>Documentation</guilabel> plugin.</para></listitem>
      </itemizedlist>
    </listitem>
    <listitem><para><filename class="directory">kdevassistant/</filename> &mdash; provides the menu and tool bars of the stand-alone &kdevelop; Assistant documentation browser.</para></listitem>
    <listitem><para><filename class="directory">kdevdesigner/</filename> and <filename class="directory">kdevdesignerpart/</filename> &mdash; provide menu bar and tool bars of the stand-alone &kdevelop; user interface designer.</para></listitem>
  </itemizedlist></listitem>

  <listitem><itemizedlist id="app-files-default-apps-task">
    <title>Task Specific Parts</title>
    <listitem id="app-files-default-abbrev">
      <para><filename class="directory">kdevabbrev/</filename> &mdash; contains files used by the <guilabel>Abbreviation Expansion</guilabel> plugin:</para>
      <itemizedlist>
        <listitem><para><filename class="directory">sources/</filename> &mdash; contains keyword definition files used by the <guilabel>Expand Text</guilabel> command.</para></listitem>
        <listitem><para><filename class="directory">templates/</filename> &mdash; contains template definition files used by the <guilabel>Expand Abbreviation</guilabel> command.</para></listitem>
        <listitem><para><filename>kdevabbrev.rc</filename> &mdash; provides the <guimenuitem>Expand Text</guimenuitem> and <guimenuitem>Expand Abbreviation</guimenuitem> entries in the <guimenu>Edit</guimenu> menu.</para></listitem>
</itemizedlist>
    </listitem>
    <listitem id="app-files-default-appwizard">
      <para><filename class="directory">kdevappwizard/</filename> &mdash; contains files used by the &appwizard; part:</para>
      <itemizedlist>
        <listitem><para><filename class="directory">importfiles/</filename> &mdash; contains <filename>.kdevelop</filename> project files which control the initialization of a new project.</para></listitem>
        <listitem><para><filename class="directory">imports/</filename> &mdash; contains templates to set up project specific <filename>.desktop</filename> files.</para></listitem>
        <listitem><para><filename class="directory">template-common/</filename> &mdash; contains various files commonly included in the project source directories.</para></listitem>
        <listitem><para><filename class="directory">templates/</filename> &mdash; contains configuration files which describe the information to be included in a given project source directory.</para></listitem>
        <listitem><para><filename>*.png</filename> &mdash; project preview images used by the &appwizard;.</para></listitem>
        <listitem><para><filename>*.tar.gz</filename> &mdash; tarballs containing the source files to be included in a new generated project directory.</para></listitem>
      </itemizedlist>
    </listitem>
    <listitem><para><filename class="directory">kdevastyle/</filename> &mdash; provides the <guimenuitem>Reformat Source</guimenuitem> entry in the <guimenu>Edit</guimenu> menu.</para></listitem>
    <listitem><para><filename class="directory">kdevautoproject/</filename> &mdash; provides most of the entries in the <guimenu>Build</guimenu> menu and the <guilabel>Build Toolbar (&kdevelop;)</guilabel> toolbar.</para></listitem>
    <listitem>
      <para><filename class="directory">kdevclassview/</filename> &mdash; contains files used by the <guilabel>Class View</guilabel> project plugin:</para>
      <itemizedlist>
        <listitem><para><filename class="directory">pics/</filename> &mdash; contains the icons used in the <guilabel>Classes</guilabel> classview tree.</para></listitem>
        <listitem><para><filename>kdevclassview.tc</filename> &mdash; provides the <guimenuitem>Class Inheritance Diagram</guimenuitem> entry in the <guimenu>Projects</guimenu> menu as well as the classes navigation combo box in the <guilabel>Browser Toolbar</guilabel>.</para></listitem>
      </itemizedlist>
    </listitem>
    <listitem><para><filename class="directory">kdevcloser/</filename> &mdash; provides the <guimenu>Windows</guimenu> menu close entries.</para></listitem>
    <listitem><para><filename class="directory">kdevctags/</filename> &mdash; provides the <guimenuitem>CTags</guimenuitem> entry in the <guimenu>Tools</guimenu> menu for the <guilabel>CTags Frontend</guilabel> project plugin.</para></listitem>
    <listitem><para><filename class="directory">kdevcvsservice/</filename> &mdash; provides the icon used by the <guilabel>CvsService</guilabel> tab and a short shell script used to add a new entry to the &cvs; repository, both used by the <guilabel>CVS Integration</guilabel> project plugin.</para></listitem>
    <listitem><para><filename class="directory">kdevdebugger/</filename> &mdash; provides the <guimenu>Debug</guimenu> menu entries for the <guilabel>Debugger Frontend</guilabel> project plugin.</para></listitem>
    <listitem><para><filename class="directory">kdevdiff/</filename> &mdash; provides the <guimenuitem>Difference Viewer</guimenuitem> entry in the <guimenu>Tools</guimenu> menu.</para></listitem>
    <listitem><para><filename class="directory">kdevdistpart/</filename> &mdash; provides the <guimenuitem>Distribution &amp; Publishing</guimenuitem> entry in the <guimenu>Project</guimenu> menu for the <guilabel>Final Packaging Support</guilabel> project plugin.</para></listitem>
    <listitem id="app-files-default-kdevdoc">
      <para><filename class="directory">kdevdocumentation/</filename> &mdash; contains files used by the <guilabel>Documentation</guilabel> plugin:</para>
      <itemizedlist>
        <listitem><para><filename class="directory">en/</filename> and <filename class="directory">pics/</filename> &mdash; contain files used by the <application>htdig</application> search tool.</para></listitem>
        <listitem><para><filename class="directory">tocs/</filename> &mdash; contain the default &kdevelop; documentation content description files (see the description in <link linkend="toc-file-structure">Basic Structure of &kdevelop; TOC Files</link>).</para></listitem>
        <listitem><para><filename>kdevpart_documentation.rc</filename> &mdash; provides the search related entries in the <guimenu>Help</guimenu> menu.</para></listitem>
      </itemizedlist>
    </listitem>
    <listitem><para><filename class="directory">kdevdoxygen/</filename> &mdash; provides the menu entries for the <guilabel>Doxygen Support</guilabel> project plugin.</para></listitem>
    <listitem id="app-files-default-filecreate">
      <para><filename class="directory">kdevfilecreate/</filename> &mdash; contains files used by the <guilabel>New File Wizard:</guilabel>
      <itemizedlist>
        <listitem><para><filename class="directory">file-templates/</filename> &mdash; provides the initial text contents to be put into the new source file of a given type.</para></listitem>
        <listitem><para><filename>kdevpart_filecreate.rc</filename> &mdash; provides the <guimenuitem>New</guimenuitem> entry in the <guimenu>File</guimenu> menu.</para></listitem>
        <listitem><para><filename>template-info.xml</filename> &mdash; contains descriptions of the available file types to be displayed in the <guilabel>New File</guilabel> tool view.</para></listitem>
      </itemizedlist>
    </para></listitem>
    <listitem><para><filename class="directory">kdevfilter/</filename> &mdash; provides the <guimenuitem>Execute Command...</guimenuitem> and <guimenuitem>Filter Selection Through Command...</guimenuitem> entries in the <guimenu>Tools</guimenu> menu used by the <guilabel>Shell Filtering and Insertion</guilabel> plugin.</para></listitem>
    <listitem><para><filename class="directory">kdevfullscreen/</filename> &mdash; provides the <guimenuitem>Full Screen Mode</guimenuitem> entry in the <guimenu>View</guimenu> menu and the according tool bar icon.</para></listitem>
    <listitem><para><filename class="directory">kdevgrepview/</filename> &mdash; provides the <guimenuitem>Find in Files...</guimenuitem>entry in the <guimenu>Edit</guimenu> menu used by the <guilabel>Grep Frontend</guilabel> plugin.</para></listitem>
    <listitem><para><filename class="directory">kdevhistory/</filename> &mdash; provides the <guimenuitem>Back</guimenuitem> and <guimenuitem>Forward</guimenuitem> entries in the <guimenu>View</guimenu> menu.</para></listitem>
    <listitem><para><filename class="directory">kdevjavadebugger/</filename> &mdash; provides a <guimenu>Java Debug</guimenu> menu in order to debug a &Java; application.</para></listitem>
    <listitem><para><filename class="directory">kdevoutputviews/</filename> &mdash; provides the <guimenuitem>Next Error</guimenuitem> and <guimenuitem>Previous Error</guimenuitem> entries in the <guimenu>View</guimenu> menu.</para></listitem>
    <listitem><para><filename class="directory">kdevpartexplorer/</filename> &mdash; provides the <guimenuitem>Part Explorer</guimenuitem> entry in the <guimenu>Tools</guimenu> menu used by the <guilabel>Part Explorer Tool</guilabel> plugin.</para></listitem>
    <listitem><para><filename class="directory">kdevquickopen/</filename> &mdash; provides the <guimenuitem>Quick Open File..</guimenuitem> entry in the <guimenu>File</guimenu> menu and the <guimenuitem>Quick Open Class...</guimenuitem> and <guimenuitem>Quick Open Method</guimenuitem> entries in the <guimenu>Tools</guimenu> menu used by the <guilabel>Quick Open</guilabel> project plugin.</para></listitem>
    <listitem><para><filename class="directory">kdevregexptest/</filename> &mdash; provides the <guimenuitem>Debug Regular Expression...</guimenuitem> entry in the <guimenu>Tools</guimenu> menu used by the <guilabel>Regular Expression Tester</guilabel> plugin.</para></listitem>
    <listitem><para><filename class="directory">kdevreplace/</filename> &mdash; provides the <guimenuitem>Find-Select-Replace...</guimenuitem> entry in the <guimenu>Edit</guimenu> menu used by the <guilabel>Replace Part</guilabel> plugin.</para></listitem>
    <listitem id="app-files-default-tips"><para><filename class="directory">kdevtipofday/</filename> &mdash; provides the <guimenuitem>Tip of the Day</guimenuitem> entry in the <guimenu>Help</guimenu> menu as well as a HTML-File containing the available tips.</para></listitem>
    <listitem><para><filename class="directory">kdevtools/</filename> &mdash; controls various menu entries ceated by <guimenu>Tools Menu</guimenu> and <guilabel>External Tools Menu</guilabel> settings provided by the <guilabel>Tools Menu Addition</guilabel> plugin.</para></listitem>
    <listitem><para><filename class="directory">kdevvalgrind/</filename> &mdash; provides the <guimenuitem>Valgrind Memory Leak Check</guimenuitem> and <guimenuitem>Profile with KCachegrind</guimenuitem> entries in the <guimenu>Debug</guimenu> menu used by the <guilabel>Valgrind Frontend</guilabel> plugin.</para></listitem>
  </itemizedlist></listitem>

  <listitem><itemizedlist id="app-files-default-apps-project">
    <title>Project Generation Parts</title>
    <listitem><para><filename class="directory">kdevadaproject/</filename> &mdash; provides entries for the <guimenu>Build</guimenu> menu and according tool bar icons to build an Ada application.</para></listitem>
    <listitem><para><filename class="directory">kdevantproject/</filename> &mdash; provides entries for the <guimenu>Build</guimenu> menu when the Ant project generator is used.</para></listitem>
    <listitem><para><filename class="directory">kdevautoproject/</filename> &mdash;  provides entries for the <guimenu>Build</guimenu> menu and according tool bar icons when working with the &GNU; Tools based &automake; project generator. Additionally provides the <guimenuitem>Add Translation</guimenuitem> and <guimenuitem>Build Configuration</guimenuitem> entries to the <guimenu>Project</guimenu> menu.</para></listitem>
    <listitem><para><filename class="directory">kdevcustomproject/</filename> &mdash; provides entries for the <guimenu>Build</guimenu> menu and according tool bar icons when the project is based on custom Makefils.</para></listitem>
    <listitem><para><filename class="directory">kdevgenericproject/</filename> &mdash; contains menu definitions for an experimental generic project generator. Currently (version 3.1.0) unused.</para></listitem>
    <listitem><para><filename class="directory">kdevhaskellproject/</filename> &mdash; provides entries for the <guimenu>Build</guimenu> menu and according tool bar icons to build a Haskell application.</para></listitem>
    <listitem><para><filename class="directory">kdevpascalproject/</filename> &mdash; provides entries for the <guimenu>Build</guimenu> menu and according tool bar icons to build a Pascal application.</para></listitem>
    <listitem><para><filename class="directory">kdevtrollproject/</filename> &mdash; provides entries for the <guimenu>Build</guimenu> menu and according tool bar icons to build an application using the &Qt; QMake project manager.</para></listitem>
  </itemizedlist></listitem>

  <listitem><itemizedlist id="app-files-default-apps-lang">
    <title>Language Specific Parts</title>
    <listitem><para><filename class="directory">kdevadasupport/</filename> &mdash; provides entries in the <guimenu>Tools</guimenu> menu and according tool bar icons needed to develop Ada applications.</para></listitem>
    <listitem><para><filename class="directory">kdevbashsupport/</filename> &mdash; provides entries in the <guimenu>Build</guimenu> menu and according tool bar icons needed to develop Bash scripts.</para></listitem>
    <listitem id="app-files-default-apps-lang-cpp">
      <para><filename class="directory">kdevcppsupport/</filename> &mdash; contains files used by the &appwizard; to build C++ applications:</para>
      <itemizedlist>
        <listitem><para><filename class="directory">newclass/</filename> &mdash; contains header and source templates from which the &appwizard; builds the according source files.</para></listitem>
        <listitem><para><filename class="directory">subclassing/</filename> &mdash; contains templates which the &appwizard; uses to set up initial class declarations/definitions in the source files.</para></listitem>
        <listitem><para><filename class="directory">templates</filename> &mdash; contains templates from which the &appwizard; sets up the default header and source template files to be used by the &nfwizard;. </para></listitem>
        <listitem><para><filename>configuration</filename> &mdash; dummy template to add macros.</para></listitem>
        <listitem><para><filename>kdevcppsupport.rc</filename> &mdash; provides the <guimenuitem>Complete Text</guimenuitem> and <guimenuitem>Make Member</guimenuitem> entries fo the <guimenu>Edit</guimenu> menu, the <guimenuitem>Switch Header/Implementation</guimenuitem> entry for the <guimenu>View</guimenu> menu, and the <guimenuitem>New Class</guimenuitem> entry for the <guimenu>Project</guimenu> menu as well as a <guiicon>New Class</guiicon> icon for the <guilabel>Browser Toolbar</guilabel>.</para></listitem>
      </itemizedlist>
    </listitem>
    <listitem><para><filename class="directory">kdevfortransupport/</filename> &mdash; provides entries in the <guimenu>Build</guimenu> menu needed to develop Fortran applications.</para></listitem>
    <listitem><para><filename class="directory">kdevhaskellsupport/</filename> &mdash; provides entries in the <guimenu>Build</guimenu> menu and according tool bar icons needed to develop Haskell applications.</para></listitem>
     <listitem><para><filename class="directory">kdevjavasupport/</filename> &mdash; contains the UI definition needed to develop &Java; applications.</para></listitem>
    <listitem><para><filename class="directory">kdevpascalsupport/</filename> &mdash;  contains the UI definition needed to develop Pascal applications.</para></listitem>
    <listitem><para><filename class="directory">kdevperlsupport/</filename> &mdash; provides <guimenu>Project</guimenu> and <guimenu>Help</guimenu> menu entries needed to develop Perl scripts.</para></listitem>
    <listitem><para><filename class="directory">kdevphpsupport/</filename> &mdash; contains UI and PHP function definition files needed to develop PHP scripts.</para></listitem>
    <listitem><para><filename class="directory">kdevpythonsupport/</filename> &mdash; provides <guimenu>Build</guimenu> and <guimenu>Help</guimenu> menu entries and according tool bar icons needed to develop Python scripts.</para></listitem>
    <listitem><para><filename class="directory">kdevrubysupport/</filename> &mdash; provides <guimenu>Build</guimenu> menu entries and according tool bar icons needed to develop Ruby scripts.</para></listitem>
    <listitem><para><filename class="directory">kdevscriptproject/</filename> &mdash; provides th UI definitions needed to develop custom projects. Currently (version 3.1.0) unused.</para></listitem>
    <listitem><para><filename class="directory">kdevsqlsupport/</filename> &mdash; provides th UI definitions needed to develop SQL projects. Currently (version 3.1.0) unused.</para></listitem>
  </itemizedlist></listitem>

</itemizedlist>

</sect2> <!-- app-files-default-apps -->

</sect1> <!-- app-files-default -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="app-files-user">
<title>User Oriented Configuration</title>

<para>
All information about user defined settings is kept in two subdirectories of <filename class="directory">$<envar>KDEHOME</envar></filename>, namely:
<simplelist>
  <member><link linkend="app-files-user-apps">Application Specific Configuration</link> in the <filename class="directory">$<envar>KDEHOME</envar>/share/apps/</filename> directory, and</member>
  <member><link linkend="app-files-user-config">Resource Configuration File</link> in the <filename class="directory">$<envar>KDEHOME</envar>/share/config/</filename> directory.</member>
</simplelist>
</para>

<sect2 id="app-files-user-apps">
<title>Application Specific Configuration</title>

<para>
Any user changes to the <link linkend="app-files-default">&kdevelop; Default Configuration</link> settings as well as user specific settings which are not kept in any of the <link linkend="app-files-user-config">Resource Configuration Files</link> are found in <filename>kdev...</filename> subdirectories of the <filename class="directory">$<envar>KDEHOME</envar>/share/apps/</filename> directory.
</para>
<para>
Most of these configuration files are however used by various &kdevelop; plugins in order to provide some specific menu and/or toolbar entries. Thus they are of interest only in case something went really wrong with the user interface.
</para>
<note><para>
In case the contents of these directories mirror those of the Default Configuration settings, &kdevelop; will have copied them from <filename class="directory">$<envar>KDEDIR</envar>/apps/</filename> into the <filename class="directory">$<envar>KDEHOME</envar>/apps/</filename> directory on its initial start. Any subsequent changes will be made to these copies only. The Default Configuration settings remain unchanged in any case.
</para></note>

<itemizedlist>
  <listitem>
    <para><filename class="directory">kdevabbrev/</filename> &mdash;  contains files used by the <guilabel>Abbreviation Expansion</guilabel> plugin:</para>
    <itemizedlist>
      <listitem><para><filename class="directory">sources/</filename> &mdash; currently empty; &kdevelop; uses the <link linkend="app-files-default-abbrev">default keyword definition</link> files for <guilabel>Expand Text</guilabel> commands.</para></listitem>
      <listitem><para><filename class="directory">templates/</filename> &mdash; contains the user modified template definition files used by the <guilabel>Expand Abbreviation</guilabel> command.</para></listitem>
      <listitem><para><filename>kdevabbrev.rc</filename> &mdash; provides the <guimenuitem>Expand Text</guimenuitem> and <guimenuitem>Expand Abbreviation</guimenuitem> entries in the <guimenu>Edit</guimenu> menu.</para></listitem>
    </itemizedlist>    
  </listitem>
  <listitem>
    <para><filename class="directory">kdevappwizard/</filename> &mdash; only provides the <guimenuitem>New Project...</guimenuitem> and <guimenuitem>Import Existing Project...</guimenuitem> entries in the <guimenu>Projects</guimenu> menu. The &appwizard; will use the <link linkend="app-files-default-appwizard">default configuration settings</link> for its actual works.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevastyle/</filename> &mdash; provides the actual <guimenuitem>Reformat Source</guimenuitem> entry in the <guimenu>Edit</guimenu> menu.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevautoproject/</filename> &mdash; provides the actual entries in the <guimenu>Build</guimenu> menu and the <guilabel>Build Toolbar (KDevelop)</guilabel> toolbar.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevclassview/</filename> &mdash; provides the <guimenuitem>Class Inheritance Diagram</guimenuitem> entry in the <guimenu>Project</guimenu> menu and the class browser combo box in the <guilabel>Browser Toolbar</guilabel> by the <guilabel>Class View</guilabel> project plugin.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevcloser/</filename> &mdash; provides the <guimenuitem>Close Selected Windows...</guimenuitem> entry in the <guimenu>Windows</guimenu> menu.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevcppsupport/</filename> &mdash; holds the acual configuration used by the &appwizard; to build C++ applications. The &appwizard; however uses its main bulk of configuration information directly from the <link linkend="app-files-default-apps-lang-cpp">default configuration directory</link>. See there for more detail.</para>
    <itemizedlist>
      <listitem>
        <para><filename class="directory">newclass/</filename> &mdash; contains the actual header and source templates from which the &appwizard; builds the according source files.</para>
      </listitem>
      <listitem>
        <para><filename class="directory">pcs/</filename> &mdash; contains database files &kdevelop; uses build the actual Persistent Code Store (<filename>.pcs</filename>) file of a &kde; C++ project.</para>
      </listitem>
      <listitem>
        <para><filename>kdevcppsupport.rc</filename> &mdash; provides the <guimenuitem>Complete Text</guimenuitem> and <guimenuitem>Make Member</guimenuitem> entries fo the <guimenu>Edit</guimenu> menu, the <guimenuitem>Switch Header/Implementation</guimenuitem> entry for the <guimenu>View</guimenu> menu, and the <guimenuitem>New Class</guimenuitem> entry for the <guimenu>Project</guimenu> menu as well as a <guiicon>New Class</guiicon> icon for the <guilabel>Browser Toolbar</guilabel>.</para>
      </listitem>
    </itemizedlist>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevctags/</filename> &mdash; provides the <guimenuitem>CTags</guimenuitem> entry in the <guimenu>Tools</guimenu> menu for the <guilabel>CTags Frontend</guilabel> project plugin.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevdebugger/</filename> &mdash; provides the <guimenu>Debug</guimenu> menu entries for the <guilabel>Debugger Frontend</guilabel> project plugin.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevdiff/</filename> &mdash; provides the <guimenuitem>Difference Viewer</guimenuitem> entry in the <guimenu>Tools</guimenu> menu.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevdocumentation/</filename> &mdash; contains the actual files used by the <guilabel>Documentation</guilabel> plugin in addition to the <link linkend="app-files-default-kdevdoc"> default configuration files</link>. See there for more detail.</para>
    <para>The directories in <filename class="directory">kdevdocumentation/</filename> mainly hold actual bookkeeping information. The actually set up documentation files are kept in <link linkend="app-files-user-config-doc"> <quote><filename>doc...pluginrc</filename></quote> files</link> in the <filename class="directory">$<envar>KDEHOME</envar>/share/config/</filename> directory.</para>
    <itemizedlist>
      <listitem>
        <para><filename class="directory">bookmarks/</filename> &mdash; maintains the entries in the <guilabel>Bookmarks</guilabel> tab of the &kdevelop; <guilabel>Documentation</guilabel> plugin.</para>
      </listitem>
      <listitem>
        <para><filename class="directory">index/</filename> &mdash; holds various cache files &kdevelop; uses to speed up indexed documentation searches in the <guilabel>Index</guilabel> tab of the <guilabel>Documentation</guilabel> plugin.</para>
      </listitem>
      <listitem>
        <para><filename class="directory">search/</filename> &mdash; contains files used by the <application>htdig</application> search tool which serves search calls from the <guilabel>Search</guilabel> tab of the <guilabel>Documentation</guilabel> plugin.</para>
      </listitem>
      <listitem>
        <para><filename>kdevpart_documentation.rc</filename> &mdash; provides the search related entries in the <guimenu>Help</guimenu> menu.</para>
      </listitem>
    </itemizedlist>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevdoxygen/</filename> &mdash; provides the menu entries for the <guilabel>Doxygen Support</guilabel> project plugin.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevelop/</filename> &mdash; contains some actual settings &kdevelop; uses for its basic setup:</para>
    <itemizedlist>
      <listitem><para><filename class="directory">profiles/</filename> &mdash; provides actual plugin profile setting. (Initially there is only a <filename>FullIDE</filename> profile which defines a full set of initially active &kdevelop; plugins.)</para></listitem>
      <listitem><para><filename>kdevelopui.rc</filename> &mdash; provides the basic menu and tool bar entries &kdevelop; uses.</para></listitem>
    </itemizedlist>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevfilecreate/</filename> &mdash; contains files used by the <guilabel>New File Wizard:</guilabel></para>
      <itemizedlist>
        <listitem><para><filename class="directory">file-templates/</filename> &mdash; provides the actually used text contents to be put into the new source file of a given type. More file templates are found in the <link linkend="app-files-default-filecreate">default configuration files</link> directory.</para></listitem>
        <listitem><para><filename>kdevpart_filecreate.rc</filename> &mdash; provides the <guimenuitem>New</guimenuitem> entry in the <guimenu>File</guimenu> menu.</para></listitem>
        <listitem><para><filename>template-info.xml</filename> &mdash; contains descriptions of the available file types to be displayed in the <guilabel>New File</guilabel> tool view.</para></listitem>
      </itemizedlist>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevfilter/</filename> &mdash; provides the <guimenuitem>Execute Command...</guimenuitem> and <guimenuitem>Filter Selection Through Command...</guimenuitem> entries in the <guimenu>Tools</guimenu> menu used by the <guilabel>Shell Filtering and Insertion</guilabel> plugin.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevfullscreen/</filename> &mdash; provides the <guimenuitem>Full Screen Mode</guimenuitem> entry in the <guimenu>View</guimenu> menu and the according tool bar icon.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevgrepview/</filename> &mdash; provides the <guimenuitem>Find in Files...</guimenuitem>entry in the <guimenu>Edit</guimenu> menu used by the <guilabel>Grep Frontend</guilabel> plugin.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevoutputviews/</filename> &mdash; provides the <guimenuitem>Next Error</guimenuitem> and <guimenuitem>Previous Error</guimenuitem> entries in the <guimenu>View</guimenu> menu.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevpartexplorer/</filename> &mdash; provides the <guimenuitem>Part Explorer</guimenuitem> entry in the <guimenu>Tools</guimenu> menu used by the <guilabel>Part Explorer Tool</guilabel> plugin.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevquickopen/</filename> &mdash; provides the <guimenuitem>Quick Open File..</guimenuitem> entry in the <guimenu>File</guimenu> menu and the <guimenuitem>Quick Open Class...</guimenuitem> and <guimenuitem>Quick Open Method</guimenuitem> entries in the <guimenu>Tools</guimenu> menu used by the <guilabel>Quick Open</guilabel> project plugin.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevregexptest/</filename> &mdash; provides the <guimenuitem>Debug Regular Expression...</guimenuitem> entry in the <guimenu>Tools</guimenu> menu used by the <guilabel>Regular Expression Tester</guilabel> plugin.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevreplace/</filename> &mdash; provides the <guimenuitem>Find-Select-Replace...</guimenuitem> entry in the <guimenu>Edit</guimenu> menu used by the <guilabel>Replace Part</guilabel> plugin.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevtipofday/</filename> &mdash;provides the <guimenuitem>Tip of the Day</guimenuitem> entry in the <guimenu>Help</guimenu> menu. The HTML-File containing the available tips is provided as a <link linkend="app-files-default-tips">default configuration file</link> only.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevtools/</filename> &mdash; controls various menu entries ceated by <guimenu>Tools Menu</guimenu> and <guilabel>External Tools Menu</guilabel> settings provided by the <guilabel>Tools Menu Addition</guilabel> plugin.</para>
  </listitem>
  <listitem>
    <para><filename class="directory">kdevvalgrind/</filename> &mdash; provides the <guimenuitem>Valgrind Memory Leak Check</guimenuitem> and <guimenuitem>Profile with KCachegrind</guimenuitem> entries in the <guimenu>Debug</guimenu> menu used by the <guilabel>Valgrind Frontend</guilabel> plugin.</para>
  </listitem>
</itemizedlist>

</sect2> <!-- app-files-user-apps -->

<sect2 id="app-files-user-config">
<title>Resource Configuration Files</title>

<para>
There are two groups of &kdevelop; configuration files in the <filename class="directory">$<envar>KDEHOME</envar>/share/config/</filename> directory, distiguished by their surrounding character sequences:
<simplelist>
  <member><quote><filename>doc...pluginrc</filename></quote> denotes <link linkend="app-files-user-config-doc">files used by the documentation plugin.</link></member>
  <member><quote><filename>kdev...rc</filename></quote> denotes configuration <link linkend="app-files-user-config-kdev">files used by &kdevelop;</link> itself and its available plugins.</member>
</simplelist>
</para>

<itemizedlist id="app-files-user-config-kdev">
<title>Configuration Files Used by &kdevelop;</title>
  <listitem>
    <para><filename>kdevabbrevrc</filename> &mdash; holds the current state of the <guilabel>Abbreviations</guilabel> configuration provided by the <guilabel>Abbreviation Expansion</guilabel> plugin.</para>
    <note><para>This only records whether the abbreviations will be used or not. The actual definitions of new abbreviations will go into the <filename>$<envar>KDEHOME</envar>/share/apps/kdevabbrev/templates/templates</filename> file.</para></note>
  </listitem>
  <listitem>
    <para><filename>kdevassistantrc</filename> &mdash; holds some configuration states specific of the stand-alone  &kdevelop; Assistant documentation browser.</para>
    <note><para>Most common configuration settings are shared with the &kdevelop; IDE <filename>kdeveloprc</filename> file.</para></note>
  </listitem>
  <listitem><para><filename>kdevassistantuimode4rc</filename> &mdash; holds the current MDI configuration states (dock positions &etc;) of the stand-alone  &kdevelop; Assistant documentation browser.</para></listitem>
  <listitem>
    <para><filename>kdevclassviewrc</filename> &mdash; holds the <guilabel>View Mode</guilabel> setting of the <guilabel>Classes</guilabel> class browser tab provided by the <guilabel>Class View</guilabel> project plugin.</para>
    <note><para>This is a global setting, although the <guilabel>Class View</guilabel> plugin may be disabled on a per project basis. Any change in this setting will be globally updated whenever the current project is closed and thus affect all subsequently loaded projects.</para></note>
  </listitem>
  <listitem><para><filename>kdevcppsupportrc</filename> &mdash; holds some settings used to set up CPP source files. In particular you will find the settings made on the <guilabel>C++ Class Generator</guilabel> configuration dialog in here.</para></listitem>
  <listitem><para><filename>kdevdocumentationrc</filename> &mdash; holds actual settings the <guilabel>Documentation</guilabel> plugin uses.</para></listitem>
  <listitem><para><filename>kdeveloprc</filename> &mdash; holds the global settings the &kdevelop; IDE and the &kdevelop; Assistant stand-alone documentation browser will use.</para></listitem>
  <listitem><para><filename>kdevelopuimode4rc</filename> &mdash;  holds the current MDI configuration states (dock positions &etc;) of the  &kdevelop; IDE.</para></listitem>
  <listitem><para><filename>kdevfileselectorrc</filename> &mdash; holds actual settings the <guilabel>File Selector</guilabel> plugin uses.</para></listitem>
  <listitem><para><filename>kdevfileviewrc</filename> &mdash; holds the actual filename color settings the <guilabel>CVS Integration (Cervisia)</guilabel> project plugin uses for display.</para></listitem>
  <listitem><para><filename>kdevfilterrc</filename> &mdash; holds actual settings the <guilabel>Shell Filtering and Insertion</guilabel> plugin uses.</para></listitem>
  <listitem><para><filename>kdevgrepviewrc</filename> &mdash; holds actual settings the <guilabel>Grep Frontend</guilabel> plugin uses.</para></listitem>
  <listitem><para><filename>kdevsnippetrc</filename> &mdash; holds actual settings the <guilabel>Code Snippets</guilabel> plugin uses.</para></listitem>
  <listitem><para><filename>kdevtoolsrc</filename> &mdash; holds actual settings the <guilabel>Tools Menu Addition</guilabel> plugin uses.</para></listitem>
</itemizedlist>

<itemizedlist id="app-files-user-config-doc">
<title>Configuration Files Used by the Documentation Plugin</title>
  <listitem><para><filename>docchmpluginrc</filename> &mdash; holds information about the actual &Microsoft; CHM help files as defined on the <guilabel>CHM Documentation Collection</guilabel> configuration page.</para></listitem>
  <listitem><para><filename>doccustompluginrc</filename> &mdash; holds information about any custom documentation file defined on the <guilabel>Custom Documentation Collection</guilabel> configuration page.</para></listitem>
  <listitem><para><filename>docdevhelppluginrc</filename> &mdash; holds information about the actual GNOME 2 DevHelp documentation files as defined on the <guilabel>Devhelp Documentation Collection</guilabel> configuration page.</para></listitem>
  <listitem><para><filename>docdoxygenpluginrc</filename> &mdash; holds information about the actual Doxygen generated API documentations as defined on the <guilabel>Doxygen Documentation Collection</guilabel> configuration page.</para></listitem>
  <listitem><para><filename>dockdevtocpluginrc</filename> &mdash; holds information about the actual KDevelopTOC structured documentation files as defined on the <guilabel>KDevelopTOC Documentation Collection</guilabel> configuration page.</para></listitem>
  <listitem><para><filename>docqtpluginrc</filename> &mdash; holds information about the QT documentation files actually included on the <guilabel> Documentation Collection</guilabel>Qt configuration page.</para></listitem>
</itemizedlist>

</sect2> <!-- app-files-user-config -->

</sect1> <!-- app-files-user -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="app-files-project">
<title>Project Dependent Configuration</title>

<para>
Most project dependend configuration is kept in the <filename>&lt;project-name&gt;.kdevelop</filename> and <filename>&lt;project-name&gt;.kdevses</filename> &kdevelop; project configuration files rather than in separate files as the other, more global, configuration settings. In short, those files are meant for:
</para>
<simplelist>
  <member><filename>&lt;project-name&gt;.kdevelop</filename> &mdash; global project configuration information.</member>
  <member><filename>&lt;project-name&gt;.kdevses</filename> &mdash; configuration information needed to restore the specific behaviours of the running session.</member>
</simplelist>
<para>
Both are &XML; coded files. They can be viewed and (cautiously) altered using any text editor.
</para>

<sect2>
<title>Persistent Code Store Files</title>

<para>There is a third project dependend configuration file, the <filename>&lt;project-name&gt;.kdevelop.pcs</filename> Persistant Code Store. This is a binary coded file holding an internal parser cache for the most part in order to speed up the loading sequence of the project. Additionally, this Persistant Code Store keeps information use by the <guilabel>Code Completion</guilabel> facility of &kdevelop;.
</para>

<note><para>
There can be additional Persistant Code Store files be set up on the <guilabel>Code Completion</guilabel> tab of the <guilabel>C++ Specific</guilabel> project configuration page. Information about these additional <filename>.pcs</filename> is kept globally in the <filename class="directory">$<envar>KDEHOME</envar>/share/apps/kdevcppsupport/pcs/</filename> directory.
</para></note>
</sect2>

</sect1> <!-- app-files-project -->

</appendix> <!-- app-files -->
