Editing Tools

Code Snippets

Features (preliminary overview)
SnippetPart adds a tool-view which by default docks to the right
Adding, editing and removing of snippets is available via a popup-menu
Double-clicking a snippet form the list inserts it into to the active view at the current cursor position
Tool tips show the content of a snippet
Snippets are stored in the users home-directory, so every user can have his own snippets
Snippets can contain variables in the style of $VARNAME$. On using the snippet the user is prompted to enter replacement value for the variables

Keyboard Mapping
In the following, we will list the default keybindings of the default editor. You can configure them as you like (how?)
Left	Moves one character left
Right	Moves one character right
Ctrl Left	Moves one word left
Ctrl Right	Moves one word right
Up	Moves up one line
Down	Moves down one line
PgUp	Moves up one page
PgDn	Moves down one page
Ctrl PgUp	Moves to the beginning of the file
Ctrl PgDn	Moves to the end of the file
Home	Moves to the beginning of the line
End	Moves to the end of the line
For all the keys above, the Shift can be pressed additionally, to mark from the current cursor position to the one afterwards.
Backspace	Deletes one character left
Delete	Deletes the character under the cursor
Ctrl C	Copies the selected text to the clipboard
Ctrl V	Pastes the selected text from the clipboard
Ctrl X	Deletes the selected text and puts it into the clipboard
Ctrl Z	Undo
Shift Ctrl Z	Redo

The Problem Reporter
(... to be written ...)

Searching and Grepping

Searching for Text
Ctrl F- Find Ctrl R- Replace

ISearch
The conventional search with Edit Find 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 ISearch 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.

Grep
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 Search in Files... item in the Edit menu. It is basically a frontend for the grep(1) program.
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 Recursive box, the search iterates through all directories in the hierarchy below this one.
The search term is in general a regular expression following POSIX syntax. For example, you can use the term "\<K.*" if you want to find all words which begin with the letter K. The following characters are interpreted in a special way:
.	Matches any character
^	Matches the beginning of a line
$	Matches the end of a line
\<	Matches the beginning of a word
\>	Matches the end of a word
?	The preceding item matches less than once
*	The preceding item is matched zero or more times
+	The preceding item is matched once or more times
{n}	The preceding item is matched exactly n times
{n,}	The preceding item is matched n or more times
{,n}	The preceding item matches less than n times
{n,m}	The preceding item matches at least n times but less than m times
Backreferences to bracketed subexpressions are also available by the notation \n.
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.
Once you start the search by clicking on the Search button, it will be performed by an external, asynchronous process. All found items will appear in the view called Grep. 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.

Code Completion
(... to be written ...)

Creating New Files and Classes
(... to be written ...)

Editing the Templates
(... to be written ...)