summaryrefslogtreecommitdiffstats
path: root/doc/kdevelop/editing.docbook
diff options
context:
space:
mode:
Diffstat (limited to 'doc/kdevelop/editing.docbook')
-rw-r--r--doc/kdevelop/editing.docbook401
1 files changed, 401 insertions, 0 deletions
diff --git a/doc/kdevelop/editing.docbook b/doc/kdevelop/editing.docbook
new file mode 100644
index 00000000..54074bdb
--- /dev/null
+++ b/doc/kdevelop/editing.docbook
@@ -0,0 +1,401 @@
+<chapter id="editing">
+<title>Editing Tools</title>
+
+<sect1 id="editing-snippets">
+<title>Code Snippets</title>
+
+<itemizedlist>
+ <title>Features (preliminary overview)</title>
+ <listitem><para>
+ SnippetPart adds a tool-view which by default docks to the right
+ </para></listitem>
+ <listitem><para>
+ Adding, editing and removing of snippets is available via a popup-menu
+ </para></listitem>
+ <listitem><para>
+ Double-clicking a snippet form the list inserts it into to the active view at the current cursor position
+ </para></listitem>
+ <listitem><para>
+ Tool tips show the content of a snippet
+ </para></listitem>
+ <listitem><para>
+ Snippets are stored in the users home-directory, so every user can have his own snippets
+ </para></listitem>
+ <listitem><para>
+ Snippets can contain variables in the style of $<varname>VARNAME</varname>$. On using the snippet the user is prompted to enter replacement value for the variables
+ </para></listitem>
+</itemizedlist>
+</sect1> <!-- editing-snippets -->
+
+<sect1 id="keyboardmapping">
+<title>Keyboard Mapping</title>
+<indexterm zone="keyboardmapping"><primary>keybindings</primary></indexterm>
+
+<para>
+In the following, we will list the default keybindings of the
+default editor. You can configure them as you like (how?)
+</para>
+
+<informaltable>
+<tgroup cols="2">
+<tbody>
+
+<row><entry><para><keycap>
+ Left
+</keycap></para></entry>
+<entry><para>
+ Moves one character left
+</para></entry></row>
+
+<row><entry><para><keycap>
+ Right
+</keycap></para></entry>
+<entry><para>
+ Moves one character right
+</para></entry></row>
+
+<row><entry><para><keycombo>
+&Ctrl;<keycap>
+ Left
+</keycap></keycombo></para></entry>
+<entry><para>
+ Moves one word left
+</para></entry></row>
+
+<row><entry><para><keycombo>
+&Ctrl;<keycap>
+ Right
+</keycap></keycombo></para></entry>
+<entry><para>
+ Moves one word right
+</para></entry></row>
+
+<row><entry><para><keycap>
+ Up
+</keycap></para></entry>
+<entry><para>
+ Moves up one line
+</para></entry></row>
+
+<row><entry><para><keycap>
+ Down
+</keycap></para></entry>
+<entry><para>
+ Moves down one line
+</para></entry></row>
+
+<row><entry><para><keycap>
+ Page Up
+</keycap></para></entry>
+<entry><para>
+ Moves up one page
+</para></entry></row>
+
+<row><entry><para><keycap>
+ Page Down
+</keycap></para></entry>
+<entry><para>
+ Moves down one page
+</para></entry></row>
+
+<row><entry><para><keycombo>&Ctrl;<keycap>
+ Page Down
+</keycap></keycombo></para></entry>
+<entry><para>
+ Moves to the beginning of the file
+</para></entry></row>
+
+<row><entry><para><keycombo>&Ctrl;
+<keycap>
+ Page Down
+</keycap></keycombo></para></entry>
+<entry><para>
+ Moves to the end of the file
+</para></entry></row>
+
+<row><entry><para><keycap>
+ Home
+</keycap></para></entry>
+<entry><para>
+ Moves to the beginning of the line
+</para></entry></row>
+
+<row><entry><para><keycap>
+ End
+</keycap></para></entry>
+<entry><para>
+ Moves to the end of the line
+</para></entry></row>
+
+</tbody>
+</tgroup>
+</informaltable>
+
+<para>
+For all the keys above, the &Shift; key can be pressed additionally,
+to mark from the current cursor position to the one afterwards.
+</para>
+
+<informaltable>
+<tgroup cols="2">
+<tbody>
+
+<row><entry><para><keycap>
+ Backspace
+</keycap></para></entry>
+<entry><para>
+ Deletes one character left
+</para></entry></row>
+
+<row><entry><para><keycap>
+ Delete
+</keycap></para></entry>
+<entry><para>
+ Deletes the character under the cursor
+</para></entry></row>
+
+<row><entry><para><keycombo>
+&Ctrl;
+<keycap>
+ C
+</keycap></keycombo></para></entry>
+<entry><para>
+ Copies the selected text to the clipboard
+</para></entry></row>
+
+<row><entry><para><keycombo>&Ctrl;<keycap>
+ V
+</keycap></keycombo></para></entry>
+<entry><para>
+ Pastes the selected text from the clipboard
+</para></entry></row>
+
+<row><entry><para><keycombo>&Ctrl;<keycap>
+ X
+</keycap></keycombo></para></entry>
+<entry><para>
+ Deletes the selected text and puts it into the clipboard
+</para></entry></row>
+
+<row><entry><para><keycombo>&Ctrl;<keycap>
+ Z
+</keycap></keycombo></para></entry>
+<entry><para>
+ Undo
+</para></entry></row>
+
+<row><entry><para><keycombo>&Shift;&Ctrl;<keycap>
+ Z
+</keycap></keycombo></para></entry>
+<entry><para>
+Redo
+</para></entry></row>
+
+</tbody>
+</tgroup>
+</informaltable>
+
+</sect1> <!-- keyboardmapping -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="editing-reporter">
+<title>The Problem Reporter</title>
+
+<para>
+(... to be written ...)
+</para>
+</sect1> <!-- editing-reporter -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="searchinggrepping">
+<title>Searching and Grepping</title>
+<indexterm zone="searchinggrepping"><primary>searching</primary></indexterm>
+<indexterm zone="searchinggrepping"><primary>finding</primary></indexterm>
+
+<sect2 id="searching">
+<title>Searching for Text</title>
+
+<para>
+<keycombo>&Ctrl;<keycap>F</keycap></keycombo>- Find
+<keycombo>&Ctrl;<keycap>R</keycap></keycombo>- Replace
+</para>
+
+</sect2> <!-- searching -->
+
+
+<sect2 id="isearch">
+<title>ISearch</title>
+<indexterm zone="isearch"><primary>isearch</primary></indexterm>
+<indexterm zone="isearch"><primary>incremental search</primary></indexterm>
+<indexterm zone="isearch"><primary>search</primary><secondary>incremental</secondary></indexterm>
+
+<para>
+The conventional search with <menuchoice><guimenu>Edit</guimenu>
+<guimenuitem>Find</guimenuitem></menuchoice> requires you to specify the full
+search term before starting. Most of the time, it is much faster to search
+incrementally. If you click into the edit field labeled
+<guilabel>ISearch</guilabel> in the toolbar, the search is performed as you
+type. You will find that often the desired term is already found after typing
+in 3 or 4 letters.
+</para>
+
+</sect2> <!-- isearch -->
+
+
+<sect2 id="grep">
+<title>Grep</title>
+<indexterm zone="grep"><primary>search</primary><secondary>in files</secondary></indexterm>
+
+<para>
+Both search mechanisms described above are restricted to searching within one
+source file. An additional tool which allows you to search through a (possibly
+large) number of files is available through the
+<guimenuitem>Search in Files...</guimenuitem> item in the
+<guimenu>Edit</guimenu> menu. It is basically a frontend for the
+&grep;(1) program.
+</para>
+
+<para>
+In the dialog, you can specify which files are searched. There is a number of
+wildcard patterns available in a combobox. In this way, you can easily
+restrict the find mechanism to header files. Furthermore, you specify a
+directory where the search is started. If you check the
+<guibutton>Recursive</guibutton> box, the search iterates through all
+directories in the hierarchy below this one.
+</para>
+
+<para>
+The search term is in general a regular expression following POSIX syntax.
+For example, you can use the term <literal>"\&lt;K.*"</literal> if you want to
+find all words which begin with the letter K. The following characters
+are interpreted in a special way:
+</para>
+
+<informaltable>
+<tgroup cols="2">
+<tbody>
+
+<row><entry>
+ <literal>.</literal>
+</entry><entry>
+ Matches any character
+</entry></row>
+<row><entry>
+ <literal>^</literal>
+</entry><entry>
+Matches the beginning of a line
+</entry></row>
+<row><entry>
+ <literal>$</literal>
+</entry><entry>
+ Matches the end of a line
+</entry></row>
+<row><entry>
+ <literal>\&lt;</literal>
+</entry><entry>
+ Matches the beginning of a word
+</entry></row>
+<row><entry>
+ <literal>\&gt;</literal>
+</entry><entry>
+ Matches the end of a word
+</entry></row>
+<row><entry>
+ <literal>?</literal>
+</entry><entry>
+ The preceding item matches less than once
+</entry></row>
+<row><entry>
+ <literal>*</literal>
+</entry><entry>
+ The preceding item is matched zero or more times
+</entry></row>
+<row><entry>
+ <literal>+</literal>
+</entry><entry>
+ The preceding item is matched once or more times
+</entry></row>
+<row><entry>
+ <literal>{n}</literal>
+</entry><entry>
+ The preceding item is matched exactly n times
+</entry></row>
+<row><entry>
+ <literal>{n,}</literal>
+</entry><entry>
+ The preceding item is matched n or more times
+</entry></row>
+<row><entry>
+ <literal>{,n}</literal>
+</entry><entry>
+ The preceding item matches less than n times
+</entry></row>
+<row><entry>
+ <literal>{n,m}</literal>
+</entry><entry>
+ The preceding item matches at least <literal>n</literal> times but less
+than <literal>m</literal> times
+</entry></row>
+
+</tbody>
+</tgroup>
+</informaltable>
+
+<para>
+Backreferences to bracketed subexpressions are also available by the notation
+<literal>\n</literal>.
+</para>
+
+<para>
+For C++ programmers, as special bonus there are some search templates
+available for typical patterns. These allow you to search for example
+all calls of member functions of a certain object.
+</para>
+
+<para>
+Once you start the search by clicking on the <guibutton>Search</guibutton>
+button, it will be performed by an external, asynchronous process. All found
+items will appear in the view called <guilabel>Grep</guilabel>. You can then
+jump to the found items by clicking on them. Note that grep scans the files
+as they stored in the file system. If you have modified versions of them in
+your editor, you may get some mismatches in the line number, or some found
+items will be invalid. You can avoid this by saving all files beforehand.
+</para>
+
+</sect2> <!-- grep -->
+
+</sect1> <!-- searchinggrepping -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="code-completion">
+<title>Code Completion</title>
+
+<para>
+(... to be written ...)
+</para>
+</sect1> <!-- code-completion -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="newfiles">
+<title>Creating New Files and Classes</title>
+
+<para>
+(... to be written ...)
+</para>
+
+<sect2 id="newfiles-edittemplates">
+<title>Editing the Templates</title>
+
+<para>
+(... to be written ...)
+</para>
+</sect2> <!-- newfiles-edittemplates -->
+
+</sect1> <!-- newfiles -->
+
+</chapter> <!-- editing -->
+<!-- ====================================================================== -->