642889e97a
Added new command line option --line to set the initial line for the first opened file. git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@863 ea778897-0a13-0410-b9d1-a72fbfd435f5
1783 lines
67 KiB
XML
1783 lines
67 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
|
|
<!ENTITY app "Geany">
|
|
<!ENTITY app_small "geany">
|
|
<!ENTITY appversion "0.9">
|
|
<!ENTITY appurl "http://geany.uvena.de">
|
|
<!ENTITY author_mail "enrico.troeger@uvena.de">
|
|
<!ENTITY date "September 29, 2006">
|
|
<!ENTITY legal SYSTEM "geany_gpl.docbook">
|
|
<!ENTITY scikeybinding SYSTEM "scikeybinding.docbook">
|
|
]>
|
|
|
|
<book lang="en">
|
|
<bookinfo>
|
|
<author>
|
|
<firstname>Enrico</firstname>
|
|
<surname>Tröger</surname>
|
|
<address><email>&author_mail;</email></address>
|
|
</author>
|
|
<author>
|
|
<firstname>Nick</firstname>
|
|
<surname>Treleaven</surname>
|
|
<address><email>nick.treleaven@btinternet.com</email></address>
|
|
</author>
|
|
<author>
|
|
<firstname>Frank</firstname>
|
|
<surname>Lanitz</surname>
|
|
<address><email>frank@frank.uvena.de</email></address>
|
|
</author>
|
|
<copyright>
|
|
<year>2005-2006</year>
|
|
</copyright>
|
|
<legalnotice>
|
|
<para>
|
|
This document is distributed under the terms of the GNU General Public License as published by the Free
|
|
Software Foundation; either version 2 of the License, or (at your option) any later version.
|
|
A copy of this license can be found in the file COPYING included with the source code of this
|
|
program and see <xref linkend="geany-gpl"/>.
|
|
</para>
|
|
</legalnotice>
|
|
<title>
|
|
&app; &appversion;
|
|
</title>
|
|
</bookinfo>
|
|
|
|
<chapter id="intro">
|
|
<title>
|
|
Introduction
|
|
</title>
|
|
<section>
|
|
<title>About Geany</title>
|
|
<para>
|
|
<application>&app;</application> is a small and lightweight Integrated Development Environment.
|
|
It was developed to provide a small and fast IDE, which has only a few dependencies from other
|
|
packages. Another goal was to be as independent as possible from a special Desktop Environment
|
|
like KDE or GNOME, so <application>&app;</application> only requires the GTK2 toolkit
|
|
and therefore you only need the GTK2 runtime libraries installed to run it.
|
|
</para>
|
|
<para>
|
|
The basic features of <application>&app;</application> are:
|
|
<itemizedlist>
|
|
<listitem><para>Syntax highlighting</para></listitem>
|
|
<listitem><para>Code completion</para></listitem>
|
|
<listitem><para>Auto completion of often used constructs like if, for and while</para></listitem>
|
|
<listitem><para>Auto completion of XML and HTML tags</para></listitem>
|
|
<listitem><para>Call tips</para></listitem>
|
|
<listitem><para>Many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal</para></listitem>
|
|
<listitem><para>Tag/Symbol lists</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>About this document</title>
|
|
<para>
|
|
This documentation is available in various formats like HTML, text and PDF. The latest version is
|
|
always available at <ulink url="&appurl;">&appurl;</ulink>.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Where to get it</title>
|
|
<para>
|
|
You can obtain <application>&app;</application> from <ulink url="&appurl;">&appurl;</ulink>
|
|
or perhaps from your distributor.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>License</title>
|
|
<para>
|
|
<application>&app;</application> is distributed under the terms of the GNU General Public License as published
|
|
by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
|
|
A copy of this license can be found in the file COPYING included with the source code of this
|
|
program or see <xref linkend="geany-gpl"/>.
|
|
</para>
|
|
<para>
|
|
The included Scintilla library (found in the subdirectory scintilla/) has its own
|
|
license, which can be found in the appendix (see <xref linkend="scintilla-license"/>).
|
|
</para>
|
|
</section>
|
|
</chapter>
|
|
|
|
<chapter id="installation">
|
|
<title>
|
|
Installation
|
|
</title>
|
|
<section>
|
|
<title>Requirements</title>
|
|
<para>
|
|
For compiling <application>&app;</application> yourself, you will need the GTK (>= 2.6.0)
|
|
libraries and header files. You will also need the Pango, Glib and ATK libraries and header files.
|
|
All these files are available at <ulink url="http://www.gtk.org">http://www.gtk.org</ulink>.
|
|
</para>
|
|
<para>
|
|
Furthermore you need, of course, a C compiler and the Make tool; a C++ compiler is
|
|
also required for the included Scintilla library. The GNU versions of these tools are
|
|
recommended.
|
|
</para>
|
|
</section>
|
|
<section id="source_compilation">
|
|
<title>Source compilation</title>
|
|
<para>
|
|
Compiling <application>&app;</application> is quite easy. The following should do it:
|
|
<screen>
|
|
<prompt>%</prompt> <userinput><command>./configure</command></userinput>
|
|
<prompt>%</prompt> <userinput><command>make</command></userinput>
|
|
<prompt>%</prompt> <userinput><command>make</command> install</userinput></screen>
|
|
</para>
|
|
<para>
|
|
The configure script supports several common options, for a detailed list, type
|
|
<screen>
|
|
<prompt>%</prompt> <userinput><command>./configure</command> --help</userinput></screen>
|
|
</para>
|
|
<para>
|
|
In the case that your system lacks dynamic linking loader support, you probably want
|
|
to pass the option --disable-vte to the configure script. This prevents compiling
|
|
&app; with dynamic linking loader support to automatically load
|
|
<filename>libvte.so.4</filename> if available.
|
|
</para>
|
|
<para>&app; has been successfully compiled and tested under Debian 3.1 Sarge, Debian 3.2 Etch,
|
|
Fedora Core 4, LinuxFromScratch and FreeBSD 6.0. It also compiles under
|
|
<trademark class="trade">Microsoft Windows</trademark>, but there are lots of changes
|
|
to the makefiles necessary.
|
|
</para>
|
|
<para>
|
|
If there are any errors during compilation, check your build environment and try to find the error,
|
|
otherwise contact the author at <email>&author_mail;</email>.
|
|
</para>
|
|
</section>
|
|
<section id="binary_packages">
|
|
<title>Binary packages</title>
|
|
<section>
|
|
<title>Fedora</title>
|
|
<para>
|
|
You can use the Fedora Core 4 repository from
|
|
<ulink url="http://naturidentisch.de/packages/fc4/">http://naturidentisch.de/packages/fc4/</ulink>.
|
|
</para>
|
|
<para>
|
|
You can also use the Fedora Core 5 repository from
|
|
<ulink url="http://naturidentisch.de/packages/fc5/">http://naturidentisch.de/packages/fc5/</ulink>.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Debian</title>
|
|
<para>
|
|
Geany is available through the official Debian archives.
|
|
</para>
|
|
<para>
|
|
<command>apt-get install geany</command>
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>SuSE</title>
|
|
<para>
|
|
Packages for SuSE are not yet available.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Gentoo</title>
|
|
<para>
|
|
An ebuild for Gentoo can be found on <ulink url="https://bugs.gentoo.org/show_bug.cgi?id=114815">http://bugs.gentoo.de</ulink>.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
</chapter>
|
|
|
|
<chapter id="usage">
|
|
<title>Usage</title>
|
|
<section id="getting_started">
|
|
<title>Getting started</title>
|
|
<para>
|
|
You can start <application>&app;</application> in the following ways:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
From the Desktop Environment menu
|
|
</para>
|
|
<para>
|
|
Choose in your application menu of your used Desktop Environment:
|
|
<menuchoice>
|
|
<guisubmenu>Development</guisubmenu>
|
|
<guimenuitem>&app;</guimenuitem>
|
|
</menuchoice>.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
From the command line
|
|
</para>
|
|
<para>
|
|
To start <application>&app;</application> from a command line, type the following
|
|
and press <keycap>Return</keycap>:
|
|
<screen>
|
|
<prompt>%</prompt> <userinput><command>&app_small;</command></userinput></screen>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</section>
|
|
<section id="clo">
|
|
<title>Command line options</title>
|
|
<para>
|
|
<table frame="all">
|
|
<title>Command line Options</title>
|
|
<tgroup cols="3">
|
|
<?dbhtml cellpadding="4" ?>
|
|
<?dbhtml cellspacing="0" ?>
|
|
<colspec colnum="1" colname="col1"/>
|
|
<colspec colnum="2" colname="col2"/>
|
|
<colspec colnum="3" colname="col3"/>
|
|
<thead>
|
|
<row>
|
|
<entry>Short option</entry>
|
|
<entry>Long option</entry>
|
|
<entry>Function</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>-c dir_name</entry>
|
|
<entry>--config=directory_name</entry>
|
|
<entry>Use an alternate configuration directory. Default
|
|
configuration directory is <filename>~/.&app_small;/</filename>
|
|
and there resides <filename>&app_small;.conf</filename> and
|
|
other configuration files.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>-d</entry>
|
|
<entry>--debug</entry>
|
|
<entry>Run &app; in debug mode, which means being verbose
|
|
and printing lots of information.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>-i</entry>
|
|
<entry>--new-instance</entry>
|
|
<entry>Do not open files in a running instance, force opening a new instance.
|
|
Only available if &app; was compiled with support for Sockets.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>-l</entry>
|
|
<entry>--line</entry>
|
|
<entry>Set initial line number for the first opened file.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>-m</entry>
|
|
<entry>--no-msgwin</entry>
|
|
<entry>Do not show the message window. Use this option if you do not
|
|
need compiler messages or VTE support.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>-n</entry>
|
|
<entry>--no-ctags</entry>
|
|
<entry>Do not load auto completion and call tip data.
|
|
Use this option if you do not want to use them.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>-s</entry>
|
|
<entry>--no-session</entry>
|
|
<entry>Don't load the previous session's files.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>-t</entry>
|
|
<entry>--no-terminal</entry>
|
|
<entry>Do not load terminal support. Use this option if you do not
|
|
want to load the virtual terminal emulator widget at startup.
|
|
If you do not have <filename>libvte.so.4</filename> installed,
|
|
then terminal-support is automatically disabled. Only available
|
|
if &app; was compiled with support for VTE.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry></entry>
|
|
<entry>--vte-lib</entry>
|
|
<entry>Specify explicitly the path including filename or only the filename
|
|
to the VTE library, e.g. <filename>/usr/lib/libvte.so</filename> or
|
|
<filename>libvte.so</filename>. This option is only needed when the
|
|
autodetection does not work. Only available if &app; was compiled
|
|
with support for VTE.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>-v</entry>
|
|
<entry>--version</entry>
|
|
<entry>Show version information and exit.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>-?</entry>
|
|
<entry>--help</entry>
|
|
<entry>Show help information and exit.</entry>
|
|
</row>
|
|
<row>
|
|
<entry></entry>
|
|
<entry>[files ...]</entry>
|
|
<entry>Open all given files at startup. This option causes &app; to
|
|
ignore loading stored files from the last session (if enabled).
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
&app; supports all generic GTK options, a list is available on the help screen.
|
|
</para>
|
|
</section>
|
|
<section id="general">
|
|
<title>General</title>
|
|
<section id="general_startup">
|
|
<title>Startup</title>
|
|
<para>
|
|
At startup, &app; loads the first 15 files from the last time
|
|
<application>&app;</application> was launched. You can disable this feature in the
|
|
preferences dialog(see <xref linkend="confdialog_gen"/>). If you specify some files on
|
|
the command line, only these files will be opened, but you can find the files from the
|
|
last session in the file menu under the "Recent files" item. This contains the last
|
|
15 recently opened files. It may be that &app; loads not exactly 15 session files, this depends
|
|
on the compile time option GEANY_SESSION_FILES; the default is 15. For details see
|
|
<xref linkend="cto"/>.
|
|
</para>
|
|
<para>
|
|
You can start several instances of Geany, but only the first will load files
|
|
from the last session. To run a second instance of Geany, do not specify any
|
|
filenames on the command-line, or disable opening files in a running instance
|
|
using the appropriate command line option.
|
|
</para>
|
|
</section>
|
|
<section id="general_instance">
|
|
<title>Opening files from the command-line in a running instance</title>
|
|
<para>
|
|
&app; detects an already running instance of itself and opens files from the
|
|
command-line in the already running instance.
|
|
So, &app; can be used to view and edit files by opening them from other
|
|
programs such as a file manager. If you do not like this for some reason,
|
|
you can disable using the first instance by using the appropriate command line
|
|
option - see <xref linkend="clo"/>.
|
|
</para>
|
|
</section>
|
|
<section id="general_vte">
|
|
<title>Virtual terminal emulator widget (VTE)</title>
|
|
<para>
|
|
If you have installed <filename>libvte.so</filename> in your system, it is loaded
|
|
automatically by <application>&app;</application>, and you will have a terminal widget
|
|
in the notebook at the bottom.
|
|
</para>
|
|
<para>
|
|
If <application>&app;</application> cannot find <filename>libvte.so</filename> at
|
|
startup, the terminal widget will not be loaded. So there is no need to install the
|
|
package containing this file in order to run <application>&app;</application>.
|
|
Additionally, you can disable the use of the terminal widget by command line option,
|
|
for more information see <xref linkend="clo"/>.
|
|
</para>
|
|
<para>
|
|
You can use this terminal (from now on called VTE) nearly as an usual terminal program
|
|
like xterm. There is basic clipboard support. You can paste the contents
|
|
of the clipboard by pressing the right mouse button to open the popup menu and
|
|
choosing Paste.
|
|
To copy text from the VTE, just select the desired text and then press the
|
|
right mouse button and choose Copy from the popup menu.
|
|
On systems running the X Window System you can paste the last selected text by
|
|
pressing the middle mouse button in the VTE (on 2-button mice,
|
|
the middle button can often be simulated by pressing both mouse buttons together).
|
|
</para>
|
|
<note>
|
|
<para>&app; tries to load <filename>libvte.so</filename>. If this fails, it tries to
|
|
load <filename>libvte.so.4</filename>. If this fails too, you should check whether
|
|
you installed libvte correctly. Again, &app; also runs without this library.
|
|
</para>
|
|
<para>
|
|
It could be, that the library is called something else than
|
|
<filename>libvte.so.4</filename> (e.g. on FreeBSD 6.0 it is called
|
|
<filename>libvte.so.8</filename>). So please set a link to the correct file (as root).
|
|
<screen><prompt>#</prompt> <userinput><command>ln -s /usr/lib/libvte.so.X /usr/lib/libvte.so.4</command></userinput></screen>
|
|
Obviously, you have to adjust the paths and set X to the number of your
|
|
<filename>libvte.so</filename>.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
</section>
|
|
<section id="charset">
|
|
<title>Character sets and Unicode Byte-Order-Mark (BOM)</title>
|
|
<para>
|
|
<application>&app;</application> provides support for detecting and converting
|
|
character sets. So you can open and save files in different character sets and
|
|
even can convert a file from a character set to another one.
|
|
To do this, <application>&app;</application> uses the character conversion
|
|
capabilities of the GLib.
|
|
</para>
|
|
<para>
|
|
Furthermore, Geany detects an Unicode Byte Order Mark
|
|
(see <ulink url="http://en.wikipedia.org/wiki/Byte_Order_Mark">
|
|
<citetitle>http://en.wikipedia.org/wiki/Byte_Order_Mark</citetitle>
|
|
</ulink> for details). Of course, this feature is only available if the opened file
|
|
is in an unicode encoding. The Byte Order Mark helps to detect the encoding of a
|
|
file, e.g. whether it is UTF-16LE or UTF-16BE and so on. On Unix-like systems using
|
|
a Byte Order Mark could cause some problems, e.g. the gcc stops with stray errors,
|
|
PHP does not parse a script containing a BOM and script files starting with a
|
|
she-bang maybe cannot be started.
|
|
In the status bar you can easily see whether the file starts with a BOM or not.
|
|
If you want to set a BOM for a file or if you want to remove it from a file, just
|
|
use the document menu and toggle the checkbox.
|
|
<note>
|
|
<para>
|
|
If you are unsure what a BOM is or if you do not understand where to use it,
|
|
then it is not important for you and you can safely ignore it.
|
|
</para>
|
|
</note>
|
|
</para>
|
|
</section>
|
|
<section id="search_replace">
|
|
<title>Search, replace and go to</title>
|
|
<para>
|
|
This section describes search-related commands from the Search menu and
|
|
the editor window's popup menu:
|
|
</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem><para>Find</para></listitem>
|
|
<listitem><para>Find usage *</para></listitem>
|
|
<listitem><para>Find in files</para></listitem>
|
|
<listitem><para>Replace</para></listitem>
|
|
<listitem><para>Go to tag definition *</para></listitem>
|
|
<listitem><para>Go to tag declaration *</para></listitem>
|
|
<listitem><para>Go to line</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>
|
|
* These items are available from the editor window's popup menu, or by
|
|
using a keyboard shortcut (see <xref linkend="keybindings"/>).
|
|
</para>
|
|
<section>
|
|
<title>Find</title>
|
|
<para>
|
|
The Find dialog is used for finding text within the current document.
|
|
The syntax for the "Use regular expressions" option is shown in
|
|
<xref linkend="regexp"/>.
|
|
</para>
|
|
<para>
|
|
<figure>
|
|
<title>Find dialog</title>
|
|
<graphic fileref="images/find_dialog.jpg"></graphic>
|
|
</figure>
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Find usage</title>
|
|
<para>
|
|
Find usage searches all open files. If there is a selection, then it is used
|
|
as the search text; otherwise the current word is used.
|
|
The current word is either taken from the word nearest the edit cursor, or
|
|
the word underneath the popup menu click position when the popup menu is
|
|
used.
|
|
The search results are shown in the Messages window.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Find in files</title>
|
|
<para>
|
|
Find in files is a more powerful version of Find usage that searches all files
|
|
in a certain directory using the Grep tool. The Grep tool must be correctly set
|
|
in Preferences to the path of the system's Grep utility.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Replace</title>
|
|
<para>
|
|
The Replace dialog has the same options for finding text as the Find
|
|
dialog. There is also a "Replace in all files" option, which is used with the
|
|
Replace All button to perform the replacement for all open files.
|
|
</para>
|
|
<para>
|
|
The "Use regular expressions" option applies both to the search string and
|
|
to the replacement text; for the latter back references can be used -
|
|
see the entry for '\n' in <xref linkend="regexp"/>.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Go to tag definition</title>
|
|
<para>
|
|
If the current word is the name of a function and the file containing the
|
|
function definition (a.k.a. function body) is open, Go to tag definition will
|
|
switch to that file and go to the corresponding line number.
|
|
The current word is either taken from the word nearest the edit cursor, or
|
|
the word underneath the popup menu click position when the popup menu is
|
|
used.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Go to tag declaration</title>
|
|
<para>
|
|
Like Go to tag definition, but for a forward function declaration (a.k.a.
|
|
function prototype) instead of a function definition.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Go to line</title>
|
|
<para>
|
|
Go to a particular line number in the current file.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Regular expressions</title>
|
|
<para>
|
|
You can use regular expressions in the Find and Replace dialogs by
|
|
selecting the "Use regular expressions" check box.
|
|
The syntax is POSIX-like, as described below in <xref linkend="regexp"/>.
|
|
<note><para>
|
|
Searching backwards with regular expressions is not supported.
|
|
</para></note>
|
|
</para>
|
|
<para>
|
|
<table frame="all" id="regexp">
|
|
<title>Regular expressions</title>
|
|
<tgroup cols="2">
|
|
<?dbhtml cellpadding="4" ?>
|
|
<?dbhtml cellspacing="0" ?>
|
|
<colspec colnum="1" colname="col1"/>
|
|
<colspec colnum="2" colname="col2"/>
|
|
<spanspec spanname="hspan" namest="col1" nameend="col2" align="left"/>
|
|
<thead>
|
|
<row>
|
|
<entry spanname="hspan">
|
|
In a regular expression, the following characters are interpreted:
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>.</entry>
|
|
<entry>Matches any character.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>(</entry>
|
|
<entry>This marks the start of a region for tagging a match.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>)</entry>
|
|
<entry>This marks the end of a tagged region.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>\n</entry>
|
|
<entry>Where n is 1 through 9 refers to the first through ninth tagged region
|
|
when replacing. For example, if the search string was Fred([1-9])XXX
|
|
and the replace string was Sam\1YYY, when applied to Fred2XXX this would
|
|
generate Sam2YYY.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>\<</entry>
|
|
<entry>This matches the start of a word.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>\></entry>
|
|
<entry>This matches the end of a word.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>\x</entry>
|
|
<entry>This allows you to use a character x that would otherwise have a special
|
|
meaning. For example, \[ would be interpreted as [ and not as the start
|
|
of a character set. Use \\ for a literal backslash.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>[...]</entry>
|
|
<entry>This indicates a set of characters, for example, [abc] means any of the
|
|
characters a, b or c. You can also use ranges, for example [a-z] for any
|
|
lower case character.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>[^...]</entry>
|
|
<entry>The complement of the characters in the set. For example, [^A-Za-z] means
|
|
any character except an alphabetic character.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>^</entry>
|
|
<entry>This matches the start of a line (unless used inside a set, see above).</entry>
|
|
</row>
|
|
<row>
|
|
<entry>$</entry>
|
|
<entry>This matches the end of a line.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>*</entry>
|
|
<entry>This matches 0 or more times. For example, Sa*m matches Sm, Sam, Saam, Saaam and so on.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>+</entry>
|
|
<entry>This matches 1 or more times. For example, Sa+m matches Sam, Saam, Saaam and so on.</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
<note>
|
|
<title>Partial POSIX compatibility</title>
|
|
<para>
|
|
Note that the POSIX '?' regular expression character for optional matching
|
|
is not supported by the Find and Replace dialogs.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
</section>
|
|
<section id="confdialog">
|
|
<title>Preferences</title>
|
|
<para>
|
|
should be written
|
|
<!-- I know that <mediaobject> is better than <graphic> but <mediaobject> does not work with PDF -->
|
|
<figure id="confdialog_gen">
|
|
<title>General tab in preferences dialog</title>
|
|
<graphic fileref="images/pref_dialog_gen.jpg"></graphic>
|
|
</figure>
|
|
<figure>
|
|
<title>Interface tab in preferences dialog</title>
|
|
<graphic fileref="images/pref_dialog_interface.jpg"></graphic>
|
|
</figure>
|
|
<figure>
|
|
<title>Toolbar tab in preferences dialog</title>
|
|
<graphic fileref="images/pref_dialog_toolbar.jpg"></graphic>
|
|
</figure>
|
|
<figure>
|
|
<title>Editor tab in preferences dialog</title>
|
|
<graphic fileref="images/pref_dialog_edit.jpg"></graphic>
|
|
</figure>
|
|
<figure>
|
|
<title>Tools tab in preferences dialog</title>
|
|
<graphic fileref="images/pref_dialog_tools.jpg"></graphic>
|
|
</figure>
|
|
<figure id="confdialog_templ">
|
|
<title>Template tab in preferences dialog</title>
|
|
<graphic fileref="images/pref_dialog_templ.jpg"></graphic>
|
|
</figure>
|
|
<figure id="confdialog_keys">
|
|
<title>Keybinding tab in preferences dialog</title>
|
|
<graphic fileref="images/pref_dialog_keys.jpg"></graphic>
|
|
</figure>
|
|
<note>
|
|
<para>For more information see <xref linkend="keybindings"/>.</para>
|
|
</note>
|
|
<figure id="confdialog_vte">
|
|
<title>VTE tab in preferences dialog</title>
|
|
<graphic fileref="images/pref_dialog_vte.jpg"></graphic>
|
|
</figure>
|
|
</para>
|
|
<section id="cto">
|
|
<title>Compile time options</title>
|
|
<para>
|
|
There are some options which can only be changed at compile time. To change these
|
|
options, edit the file <filename>src/geany.h</filename>.
|
|
Look for a block of lines starting with <quote>#define GEANY_*</quote>.
|
|
Any definitions which are not listed here should not be changed.
|
|
<table frame="all">
|
|
<title>Compile time options</title>
|
|
<tgroup cols="3">
|
|
<?dbhtml cellpadding="4" ?>
|
|
<?dbhtml cellspacing="0" ?>
|
|
<colspec colnum="1" colname="col1"/>
|
|
<colspec colnum="2" colname="col2"/>
|
|
<colspec colnum="3" colname="col3"/>
|
|
<spanspec spanname="hspan" namest="col1" nameend="col3" align="left"/>
|
|
<thead>
|
|
<row>
|
|
<entry>Option</entry>
|
|
<entry>Description</entry>
|
|
<entry>Default</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>GEANY_MAX_OPEN_FILES</entry>
|
|
<entry>The limit to how many files can be open at the same time.</entry>
|
|
<entry>25</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_SESSION_FILES</entry>
|
|
<entry>How many files should be reopened from the last run. Obviously,
|
|
the value should be smaller than GEANY_MAX_OPEN_FILES.</entry>
|
|
<entry>15</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_WORDCHARS</entry>
|
|
<entry>These characters define word boundaries.</entry>
|
|
<entry>(look at sourcecode)</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_MAX_AUTOCOMPLETE_WORDS</entry>
|
|
<entry>How many auto completion suggestions should &app; provide.</entry>
|
|
<entry>30</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_STRING_UNTITLED</entry>
|
|
<entry>A string used as the default name for new files. Be aware
|
|
that the string can be translated,
|
|
so change it only if you know what you are doing.</entry>
|
|
<entry>untitled</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_CHECK_FILE_DELAY</entry>
|
|
<entry>Time in seconds between checking a file for external
|
|
changes.</entry>
|
|
<entry>30</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_WINDOW_MINIMAL_WIDTH</entry>
|
|
<entry>The minimal width of the main window.</entry>
|
|
<entry>620</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_WINDOW_MINIMAL_HEIGHT</entry>
|
|
<entry>The minimal height of the main window.</entry>
|
|
<entry>440</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_WINDOW_DEFAULT_WIDTH</entry>
|
|
<entry>The default width of the main window at the first start.</entry>
|
|
<entry>900</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_WINDOW_DEFAULT_HEIGHT</entry>
|
|
<entry>The default height of the main window at the first start.</entry>
|
|
<entry>600</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" spanname="hspan">Default values</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_DEFAULT_TOOLS_MAKE</entry>
|
|
<entry>The make tool. This can also include a path.</entry>
|
|
<entry>"make"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_DEFAULT_TOOLS_TERMINAL</entry>
|
|
<entry>A terminal emulator. It has to accept the command line
|
|
option "-e". This can also include a path.</entry>
|
|
<entry>"xterm"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_DEFAULT_TOOLS_BROWSER</entry>
|
|
<entry>A web browser. This can also include a path.</entry>
|
|
<entry>"mozilla"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_DEFAULT_TOOLS_PRINTCMD</entry>
|
|
<entry>A printing tool. It should be able to accept and process
|
|
plain text files. This can also include a path.</entry>
|
|
<entry>"lpr"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_DEFAULT_TOOLS_GREP</entry>
|
|
<entry>A grep tool. It should be compatible with GNU grep.
|
|
This can also include a path.</entry>
|
|
<entry>"grep"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_DEFAULT_MRU_LENGHTH</entry>
|
|
<entry>The length of the "Recent files" list.</entry>
|
|
<entry>"10"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_DEFAULT_FONT_SYMBOL_LIST</entry>
|
|
<entry>The font used in sidebar to show symbols and open files.
|
|
</entry>
|
|
<entry>"Cursor 8"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_DEFAULT_FONT_MSG_WINDOW</entry>
|
|
<entry>The font used in the messages window.</entry>
|
|
<entry>"Cursor 8"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>GEANY_DEFAULT_FONT_EDITOR</entry>
|
|
<entry>The font used in the editor window.</entry>
|
|
<entry>"Courier New 9"</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="build_system">
|
|
<title>Build system</title>
|
|
<para>
|
|
<application>&app;</application> has an integrated build system.
|
|
Firstly this means that the current source file will be saved before
|
|
it is processed. This is for convenience so that you don't need to keep saving
|
|
small changes to the current file before building.
|
|
</para>
|
|
<para>
|
|
Secondly the output for Compile, Build and Make actions will be captured
|
|
in the Compiler notebook tab of the messages window (assuming you have it visible).
|
|
If there are any warnings or errors with line numbers shown in the Compiler output tab,
|
|
you can double click on them and <application>&app;</application> will switch to
|
|
the relevant source file (if it is open) and mark the line number so the problem
|
|
can be corrected. <application>&app;</application> will also set indicators for
|
|
warnings or errors with line numbers.
|
|
</para>
|
|
<para>
|
|
Depending on the current file's filetype, the Build menu will contain the following
|
|
items:
|
|
<itemizedlist>
|
|
<listitem><para>Compile</para></listitem>
|
|
<listitem><para>Build</para></listitem>
|
|
<listitem><para>Make all</para></listitem>
|
|
<listitem><para>Make custom target</para></listitem>
|
|
<listitem><para>Make object</para></listitem>
|
|
<listitem><para>Execute</para></listitem>
|
|
<listitem><para>Set Includes and Arguments</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<section>
|
|
<title>Compile</title>
|
|
<para>
|
|
The Compile command has different uses for different kinds of files.
|
|
</para>
|
|
<para>
|
|
For compilable languages such as C and C++, the Compile command is setup
|
|
to compile the current source file into a binary object file.
|
|
</para>
|
|
<para>
|
|
Java source files will be compiled to class file bytecode.
|
|
Interpreted languages such as Perl, Python, Ruby will
|
|
compile to bytecode if the language supports it, or will run a syntax check,
|
|
or failing that will run the file in its language interpreter.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Build</title>
|
|
<para>
|
|
For compilable languages such as C and C++, the Build command will link the
|
|
current source file's equivalent object file into an executable. If the object
|
|
file does not exist, the source will be compiled and linked in one step,
|
|
producing just the executable binary.
|
|
</para>
|
|
<para>
|
|
Interpreted languages do not use the Build command.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Make all</title>
|
|
<para>
|
|
This effectively runs "make all" in the same directory as the current file.
|
|
<note><para>
|
|
For each of the Make commands, The Make tool path must be correctly set
|
|
in the Tools tab of the Preferences dialog.
|
|
</para></note>
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Make custom target</title>
|
|
<para>
|
|
This is similar to running 'Make all' but you will be prompted
|
|
for the make target name to be passed to the Make tool. For example,
|
|
typing 'clean' in the dialog prompt will run "make clean".
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Make object</title>
|
|
<para>
|
|
Make object will run "make current_file.o" in the same directory as the current
|
|
file, using its prefix for 'current_file'. It is useful for compiling just the
|
|
current file without building the whole project.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Execute</title>
|
|
<para>
|
|
Execute will run the corresponding executable file, shell script or interpreted
|
|
script in a terminal window. Note that the Terminal tool path must be correctly
|
|
set in the Tools tab of the Preferences dialog - you can use any terminal
|
|
program that runs a Bourne compatible shell.
|
|
</para>
|
|
<para>
|
|
After your program or script has finished executing, you will be prompted to
|
|
press the return key. This allows you to review any text output from the program
|
|
before the terminal window is closed.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Set Includes and Arguments</title>
|
|
<para>
|
|
By default the Compile and Build commands invoke the compiler and linker with
|
|
only the basic arguments needed by all programs.
|
|
Using Set Includes and Arguments you can add any include
|
|
paths and compile flags for the compiler, any library names and paths for the
|
|
linker, and any arguments you want to use when running Execute.
|
|
</para>
|
|
<note><para>
|
|
If you are using the Build command to compile and link in one step, you will need
|
|
to set both the compiler arguments and the linker arguments in the linker
|
|
command setting.
|
|
</para></note>
|
|
<para>
|
|
These settings are not saved when <application>&app;</application> is shut
|
|
down. See below for how to set permanent arguments.
|
|
</para>
|
|
<para>
|
|
If you need complex settings for your build system, or several different
|
|
settings, then writing a Makefile and using the Make commands is recommended.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Indicators</title>
|
|
<para>
|
|
Indicators are red squiggly underlines which are used to highlight errors which
|
|
occured while compiling the current file. So you can easily see where your code
|
|
failed to compile. To remove the indicators, just click on
|
|
"Remove all indicators" in the document file menu.
|
|
</para>
|
|
<para>
|
|
If you do not like this feature, you can disable it in the preferences dialog.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>File type configuration settings</title>
|
|
<para>
|
|
You can set the commands to run for compiling, building or executing
|
|
by opening the relevant <filename>filetypes.*</filename> configuration file,
|
|
and checking the [build_settings] section. See <xref linkend="filetypes"/> for more
|
|
information.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="printing">
|
|
<title>Printing support</title>
|
|
<para>
|
|
Geany has basic printing support. This means you can print a file by passing the
|
|
filename of the current file to a command which actually prints the file. However,
|
|
the printed document contains no syntax highlighting. You can adjust the command
|
|
to which the filename is passed in the preferences dialog. The default command is:
|
|
<screen><prompt>%</prompt> <userinput><command>lpr</command> %f</userinput></screen>
|
|
%f will be substituted by the filename of the current file.
|
|
<application>&app;</application> will not show errors from the command itself, so
|
|
you should make sure that it works before(e.g. by trying to execute it from the
|
|
command line).
|
|
</para>
|
|
<para>
|
|
A nicer example, which I prefer is:
|
|
<screen><prompt>%</prompt> <userinput><command>a2ps</command> -1 --medium=A4 -o - %f | xfprint4</userinput></screen>
|
|
But this depends on a2ps and xfprint4. As a replacement for xfprint4, gtklp or similar
|
|
programs can be used.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
The printing support of Geany will be improved in the future. With GTK 2.10, better
|
|
printing (including syntax highlighting) will be possible.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
<section id="keybindings">
|
|
<title>Keybindings</title>
|
|
<para>
|
|
<application>&app;</application> supports the default keyboard shortcuts for the
|
|
Scintilla editing widget. For a list of these commands, see
|
|
<xref linkend="scikeybinding"/>.
|
|
The Scintilla keyboard shortcuts will be overridden by any custom keybindings
|
|
with the same keyboard shortcut.
|
|
</para>
|
|
<para>
|
|
For all actions listed below you can define your own keybindings. Open the Preferences
|
|
dialog, select the desired action and click on change. In the opening dialog you can
|
|
press any key combination you want and it will be saved when you press OK.
|
|
You can define only one key combination for one action.
|
|
</para>
|
|
<para>
|
|
Some of the default key combinations cannot be changed, e.g. menu_new or menu_open.
|
|
These are set by GTK and should be kept, but you can still add other key
|
|
combinations for these actions. For example to execute menu_open by default
|
|
<keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo> is set, but you can
|
|
also define <keycombo><keycap>Alt</keycap><keycap>O</keycap></keycombo>, so that the
|
|
file open dialog is shown by pressing either
|
|
<keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo> or
|
|
<keycombo><keycap>Alt</keycap><keycap>O</keycap></keycombo>.
|
|
</para>
|
|
<para>
|
|
The following table lists all customizable keyboard shortcuts.
|
|
</para>
|
|
<para>
|
|
<table frame="all">
|
|
<title>Keybindings action table</title>
|
|
<tgroup cols="2">
|
|
<?dbhtml cellpadding="4" ?>
|
|
<?dbhtml cellspacing="0" ?>
|
|
<colspec colnum="1" colname="col1"/>
|
|
<colspec colnum="2" colname="col2"/>
|
|
<spanspec spanname="hspan" namest="col1" nameend="col2" align="center"/>
|
|
<thead>
|
|
<row>
|
|
<entry>Action</entry>
|
|
<entry>Description</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry align="left" spanname="hspan">Menu items</entry>
|
|
</row>
|
|
<row>
|
|
<entry>New</entry>
|
|
<entry>Creates a new file.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Open</entry>
|
|
<entry>Opens a file.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Save</entry>
|
|
<entry>Saves the current file.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Save all</entry>
|
|
<entry>Saves all open files.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Close all</entry>
|
|
<entry>Closes all open files.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Close</entry>
|
|
<entry>Closes the current file.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Reload file</entry>
|
|
<entry>Reloads the current file. All unsaved changes will be lost.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Print</entry>
|
|
<entry>Prints the current file.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Undo</entry>
|
|
<entry>Undoes the last action.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Redo</entry>
|
|
<entry>Redoes the last action.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Select all</entry>
|
|
<entry>Makes a selection of all text in the current document.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Preferences</entry>
|
|
<entry>Opens preferences dialog.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Find Next</entry>
|
|
<entry>Finds next result.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Find Previous</entry>
|
|
<entry>Finds previous result.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Replace</entry>
|
|
<entry>Opens the Replace dialog.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Find in files</entry>
|
|
<entry>Opens the Find in files dialog.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Go to line</entry>
|
|
<entry>Opens the Go to line dialog.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Show Colour Chooser</entry>
|
|
<entry>Opens the Colour Chooser dialog.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Fullscreen</entry>
|
|
<entry>Switches to fullscreen mode.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Toggle Messages Window</entry>
|
|
<entry>Toggles the message window (status and compiler messages)
|
|
on and off.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Toggle Sidebar</entry>
|
|
<entry>Shows or hides the sidebar.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Zoom In</entry>
|
|
<entry>Zooms in the text</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Zoom Out</entry>
|
|
<entry>Zooms out the text</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Replace tabs by space</entry>
|
|
<entry>Replaces all tabs with the right amount of spaces.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Fold all</entry>
|
|
<entry>Folds all contractible code blocks.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Unfold all</entry>
|
|
<entry>Unfolds all contracted code blocks.</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" spanname="hspan">Build options</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Compile</entry>
|
|
<entry>Compiles the current file.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Build</entry>
|
|
<entry>Builds (compiles if necessary and links) the current file.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Make all</entry>
|
|
<entry>Builds the current file with the Make tool.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Make custom target</entry>
|
|
<entry>Builds the current file with the Make tool and a given target.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Make object</entry>
|
|
<entry>Compiles the current file with the Make tool.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Run</entry>
|
|
<entry>Executes the current file in a terminal emulation.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Run (alternative command)</entry>
|
|
<entry>Executes the current file in a terminal emulation.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Build options</entry>
|
|
<entry>Opens the build options dialog.</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" spanname="hspan">Miscellaneous</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Reload symbol list</entry>
|
|
<entry>Reloads the tag/symbol list.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Switch to Editor</entry>
|
|
<entry>Switches to editor widget.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Switch to Scribble</entry>
|
|
<entry>Switches to scribble widget.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Switch to VTE</entry>
|
|
<entry>Switches to VTE widget.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Switch to left document</entry>
|
|
<entry>Switches to the previous open document.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Switch to right document</entry>
|
|
<entry>Switches to the next open document.</entry>
|
|
</row>
|
|
<row>
|
|
<entry align="left" spanname="hspan">Editing operations</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Duplicate line or selection</entry>
|
|
<entry>Duplicates the current line or selection.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Comment line</entry>
|
|
<entry>Comments current line or selection.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Complete word</entry>
|
|
<entry>Shows auto completion list.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Show calltip</entry>
|
|
<entry>Shows call tips for the current function or method.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Show macro list</entry>
|
|
<entry>Shows a list of available macros and
|
|
variables in the workspace.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Suppress auto completion</entry>
|
|
<entry>If you type something like if or for and press this key, it
|
|
will not be auto completed.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Find Usage</entry>
|
|
<entry>Finds all occurrences of the current word (near the
|
|
keyboard cursor) and displays them in the messages window.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Go to tag definition</entry>
|
|
<entry>Jump to the definition of the current word (near the
|
|
keyboard cursor). If the definition cannot be found (e.g. the
|
|
relevant file is not open) <application>&app;</application>
|
|
will beep and do nothing. Used for function definitions.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Go to tag declaration</entry>
|
|
<entry>Jump to the declaration of the current word (near the
|
|
keyboard cursor). If the declaration cannot be found (e.g. the
|
|
relevant file is not open) <application>&app;</application>
|
|
will beep and do nothing. Used for function prototypes.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
</section>
|
|
</chapter>
|
|
|
|
<chapter id="config_files">
|
|
<title>Configuration files</title>
|
|
<section id="filetypes">
|
|
<title>Filetype definition files</title>
|
|
<para>
|
|
All colour definitions and other filetype specific settings are stored in the
|
|
filetype definition files. Those settings are colours for syntax highlighting,
|
|
general settings like comment characters or word delimiter characters as well as
|
|
compiler and linker settings.
|
|
</para>
|
|
<para>
|
|
The system-wide configuration files can be found in
|
|
<filename>$prefix/share/geany</filename> and are called
|
|
<filename>filetypes.$ext</filename>, where $prefix is the path where
|
|
<application>&app;</application> is installed (commonly
|
|
<filename>/usr/local</filename>) and $ext is the name of the filetype.
|
|
For every filetype there is a corresponding definition file. There is one exception:
|
|
<filename>filetypes.common</filename> - this file is for general settings, which
|
|
are not specific to a certain filetype. It is not recommended to edit the
|
|
system-wide files, because they will be overridden when Geany is updated.
|
|
</para>
|
|
<para>
|
|
To change the settings, copy a file from <filename>$prefix/share/geany</filename>
|
|
to the subdirectory <filename>filedefs</filename> in your configuration directory
|
|
(usually <filename>~/.geany/</filename>).
|
|
</para>
|
|
<para>
|
|
For example:
|
|
<screen><prompt>%</prompt> <userinput><command>cp /usr/local/share/geany/filetypes.c /home/username/.geany/filedefs/</command></userinput></screen>
|
|
Then you can edit the file and the changes are also available after an update of
|
|
<application>&app;</application> because they reside in your configuration
|
|
directory. Alternatively, you can create a file
|
|
<filename>~/.geany/filedefs/filetypes.X</filename> and add only these settings you
|
|
want to change. All missing settings will be read from the corresponding global
|
|
definition file in <filename>$prefix/share/geany</filename>.
|
|
</para>
|
|
<section id="filetypes_format">
|
|
<title>Format</title>
|
|
<section>
|
|
<title>[styling] Section</title>
|
|
<para>
|
|
In this section the colours for syntax highlighting are defined.
|
|
The format is always:
|
|
<constant>key=forground_colour;background_colour;bold;italic</constant>
|
|
</para>
|
|
<para>
|
|
Colours have to be specified as RGB hex values prefixed by 0x. For
|
|
example red is 0xff0000, blue is 0x0000ff. The values are case-insensitive,
|
|
but it is a good idea to use small letters. Bold and italic are flags and
|
|
should only be "true" or "false". If their value is something other than
|
|
"true" or "false", "false" is assumed.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>[keywords] Section</title>
|
|
<para>
|
|
This section contains keys for different keyword lists specific to the
|
|
filetype. Some filetypes do not support keywords, so adding a new key will
|
|
not work. You can only add or remove keywords to/from an existing list.
|
|
<important><para>The keywords list must be in one line without line ending
|
|
characters.</para></important>
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>[settings] Section</title>
|
|
<para>
|
|
<table frame="all">
|
|
<title>General settings</title>
|
|
<tgroup cols="3">
|
|
<?dbhtml cellpadding="4" ?>
|
|
<?dbhtml cellspacing="0" ?>
|
|
<thead>
|
|
<row>
|
|
<entry>Key</entry>
|
|
<entry>Description</entry>
|
|
<entry>Example</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>wordchars</entry>
|
|
<entry>Word delimiting characters. These characters define
|
|
word boundaries.
|
|
</entry>
|
|
<entry>(look at sourcecode)</entry>
|
|
</row>
|
|
<row>
|
|
<entry>comment_open</entry>
|
|
<entry>A character or string which is used to comment code.
|
|
If you want to use multiline comments, also set
|
|
comment_close, otherwise leave it empty.
|
|
</entry>
|
|
<entry>comment_open=/*</entry>
|
|
</row>
|
|
<row>
|
|
<entry>comment_close</entry>
|
|
<entry>If multiline comments are used, this is the character
|
|
or string to close the comment.
|
|
</entry>
|
|
<entry>comment_close=*/</entry>
|
|
</row>
|
|
<row>
|
|
<entry>comment_use_indent</entry>
|
|
<entry>Set this to false if a comment character or string
|
|
should start at column 0 of a line. If set to true
|
|
it uses any indentation of the line.
|
|
<para><example><title>Comment indentation</title>
|
|
<para>
|
|
comment_use_indent=true would generate this if a line
|
|
is commented (e.g. with
|
|
<keycombo><keycap>Ctrl</keycap><keycap>D</keycap></keycombo>)
|
|
<programlisting> #command_example();</programlisting>
|
|
comment_use_indent=false would generate this if a line
|
|
is commented (e.g. with
|
|
<keycombo><keycap>Ctrl</keycap><keycap>D</keycap></keycombo>)
|
|
<programlisting>#command_example();</programlisting>
|
|
</para></example></para>
|
|
<note><para>
|
|
This setting only works for single line comments.
|
|
</para></note>
|
|
</entry>
|
|
<entry>comment_use_indent=true</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>[build_settings] Section</title>
|
|
<para>
|
|
<table frame="all">
|
|
<title>Build settings</title>
|
|
<tgroup cols="3">
|
|
<?dbhtml cellpadding="4" ?>
|
|
<?dbhtml cellspacing="0" ?>
|
|
<thead>
|
|
<row>
|
|
<entry>Key</entry>
|
|
<entry>Description</entry>
|
|
<entry>Example</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>compiler</entry>
|
|
<entry>
|
|
This item specifies the command to compile source code
|
|
files. But it is also possible to use it with
|
|
interpreted languages like Perl or Python. With these
|
|
filetypes you can use this option as a kind of syntax
|
|
parser, which sends output to the compiler message
|
|
window.
|
|
<para>You should quote the filename to also support
|
|
filenames with spaces. The following wildcards for
|
|
filenames are available:
|
|
</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
%f - complete filename without path
|
|
</para></listitem>
|
|
<listitem><para>
|
|
%e - filename without path and without extension
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</entry>
|
|
<entry>compiler=gcc -Wall -c "%f"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>linker</entry>
|
|
<entry>This item specifies the command to link the file.
|
|
If the file is not already compiled, it will be
|
|
compiled while linking. The -o option is
|
|
automatically added by
|
|
<application>&app;</application>. This item works
|
|
well with GNU gcc, but may be problematic with other
|
|
compilers (esp. with the linker).
|
|
</entry>
|
|
<entry>linker=gcc -Wall "%f"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>run_cmd</entry>
|
|
<entry>Use this item to execute your file. It has to have been
|
|
built already.
|
|
Use the %e wildcard to have only the name of
|
|
the executable (i.e. without extension) or use the %f
|
|
wildcard if you need the complete filename, e.g.
|
|
for shell scripts.
|
|
</entry>
|
|
<entry>run_cmd="./%e"</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="filetypes_common">
|
|
<title>Special file filetypes.common</title>
|
|
<para>There is a special filetype definition file called
|
|
<filename>filetypes.common</filename>. This file defines some general
|
|
non-filetype-specific settings.
|
|
</para>
|
|
<para>
|
|
<table frame="all">
|
|
<title>General settings</title>
|
|
<tgroup cols="3">
|
|
<?dbhtml cellpadding="4" ?>
|
|
<?dbhtml cellspacing="0" ?>
|
|
<thead>
|
|
<row>
|
|
<entry>Key</entry>
|
|
<entry>Description</entry>
|
|
<entry>Example</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>selection</entry>
|
|
<entry>
|
|
The style for colouring selected text.
|
|
The format is:
|
|
<itemizedlist>
|
|
<listitem><para>Foreground colour</para></listitem>
|
|
<listitem><para>Background colour</para></listitem>
|
|
<listitem><para>Use foreground colour</para></listitem>
|
|
<listitem><para>Use background colour</para></listitem>
|
|
</itemizedlist>
|
|
The colours are only set if the 3rd or 4th argument is true.
|
|
When the colours are not overridden, the default is a dark
|
|
grey background with syntax highlighted foreground text.
|
|
</entry>
|
|
<entry>selection=0xc0c0c0;0x00007F;true;true</entry>
|
|
</row>
|
|
<row>
|
|
<entry>brace_good</entry>
|
|
<entry>The style for brace highlighting when a
|
|
matching brace was found.
|
|
</entry>
|
|
<entry>brace_good=0xff0000;0xFFFFFF;true;false</entry>
|
|
</row>
|
|
<row>
|
|
<entry>brace_bad</entry>
|
|
<entry>The style for brace highlighting when no
|
|
matching brace was found.
|
|
</entry>
|
|
<entry>brace_bad=0x0000ff;0xFFFFFF;true;false</entry>
|
|
</row>
|
|
<row>
|
|
<entry>caret</entry>
|
|
<entry>The style for colouring the caret(the blinking cursor).
|
|
Only the first argument is interpreted.
|
|
</entry>
|
|
<entry>caret=0x000000;0x0;false;false</entry>
|
|
</row>
|
|
<row>
|
|
<entry>current_line</entry>
|
|
<entry>The style for colouring the background of the current
|
|
line. Only the second argument is interpreted.
|
|
</entry>
|
|
<entry>current_line=0x0;0xe5e5e5;false;false</entry>
|
|
</row>
|
|
<row>
|
|
<entry>indent_guide</entry>
|
|
<entry>The style for colouring the indentation guides.
|
|
Only the first and second arguments are interpreted.
|
|
</entry>
|
|
<entry>indent_guide=0xc0c0c0;0xffffff;false;false</entry>
|
|
</row>
|
|
<row>
|
|
<entry>white_space</entry>
|
|
<entry>The style for colouring the white space if it is shown.
|
|
The first both arguments define the foreground and
|
|
background colours, the third argument sets whether to use
|
|
the defined colours or to use the colours defined by each
|
|
filetype for the white space.
|
|
</entry>
|
|
<entry>white_space=0xc0c0c0;0xffffff;true;false</entry>
|
|
</row>
|
|
<row>
|
|
<entry>folding_style</entry>
|
|
<entry>The style of folding icons. Only first and second
|
|
arguments are used.
|
|
<para>
|
|
Valid values for the first argument are:
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
1 - for boxes
|
|
</para></listitem>
|
|
<listitem><para>
|
|
2 - for circles
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>
|
|
Valid values for the second argument are:
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
1 - for straight lines
|
|
</para></listitem>
|
|
<listitem><para>
|
|
2 - for curved lines
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</entry>
|
|
<entry>folding_style=1;1;false;false</entry>
|
|
</row>
|
|
<row>
|
|
<entry>invert_all</entry>
|
|
<entry>Whether to invert all defined colours. This is useful
|
|
if you like a dark background colour(e.g. black) and do
|
|
not want to change every single line. Please note, at
|
|
time of writing this was only tested with the C syntax
|
|
highlighting.
|
|
<para>Only first argument is interpreted. Set it to 1 to
|
|
invert all colours.
|
|
</para>
|
|
</entry>
|
|
<entry>invert_all=0;0;false;false</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="filetype_extensions">
|
|
<title>Filetype extensions</title>
|
|
<para>
|
|
You can override the default extensions that <application>&app;</application> uses
|
|
for each filetype using the <filename>filetype_extensions.conf</filename> file.
|
|
</para>
|
|
<para>
|
|
To override the system-wide configuration file,
|
|
copy it from <filename>$prefix/share/geany</filename> to your
|
|
configuration directory, usually <filename>~/.geany/</filename>.
|
|
$prefix is the path where
|
|
<application>&app;</application> is installed (commonly
|
|
<filename>/usr/local</filename>).
|
|
</para>
|
|
<para>
|
|
For example:
|
|
<screen><prompt>%</prompt> <userinput><command>cp /usr/local/share/geany/filetype_extensions.conf /home/username/.geany/</command></userinput></screen>
|
|
</para>
|
|
<para>
|
|
Then edit it and remove all the lines for filetype extensions that you
|
|
do not want to override. The remaining lines can be edited after the
|
|
<literal>=</literal> sign, using a semi-colon separated list of patterns
|
|
which should be matched for that filetype.
|
|
</para>
|
|
<para>
|
|
For example, to set the filetype extensions for Make, the
|
|
<filename>/home/username/.geany/filetype_extensions.conf</filename>
|
|
file should look like:
|
|
<literallayout><literal>
|
|
[Extensions]
|
|
Make=Makefile*;*.mk;Buildfile;
|
|
</literal></literallayout>
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Templates</title>
|
|
<para>
|
|
<application>&app;</application> supports several templates for file headers, multiline
|
|
comments (frame comments), function descriptions, a typical ChangeLog entry and a short GPL notice.
|
|
To use these templates, just open the Edit menu or open the popup menu by right-clicking in the
|
|
editor widget, and choose "Insert Comments" and insert templates as you want.
|
|
</para>
|
|
<para>
|
|
Some templates (like file header or ChangeLog entry) will always be inserted at the top of the file.
|
|
</para>
|
|
<para>
|
|
To insert a function description, the cursor must be inside of the function, so that the function
|
|
name can be determined automatically. The description will be positioned correctly one line above
|
|
the function, just check it out. If the cursor is not inside of a function or the function name cannot
|
|
be determined, you cannot insert a function description.
|
|
</para>
|
|
<para>
|
|
Each template can be customized to your needs. The templates are in the configuration directory, which
|
|
is in <filename>~/.&app_small;/</filename> (see <xref linkend="clo"/> for further information about the
|
|
configuration directory). Just open the desired template with an editor (ideally &app; ;-) ) and edit
|
|
the template as your needs. There are some wildcards which will be automatically replaced by
|
|
<application>&app;</application> at startup.
|
|
</para>
|
|
<para>
|
|
All wildcards must be enclosed by "{" and "}", e.g. {date}.
|
|
</para>
|
|
<para>
|
|
In the configuration dialog you can find a tab "Templates" (see <xref linkend="confdialog_templ"/>).
|
|
You can define the default values which will be inserted in the templates. You should restart
|
|
<application>&app;</application> after making changes, because they are only read at startup.
|
|
</para>
|
|
<para>
|
|
Since <application>&app;</application> 0.3 there are also templates for creating new files.
|
|
They can be found in <filename>~/.&app_small;/</filename>, too.
|
|
All template files for creating new files begin with
|
|
<filename>template.filetype.</filename> followed by the filetype.
|
|
At creating a new file with a filetype template, the template for the fileheader is automatically prepended.
|
|
Please note that the complete behaviour is still under development and will probably be changed in one of
|
|
the next releases. Sorry.
|
|
</para>
|
|
<para> </para>
|
|
<para>
|
|
<table frame="all">
|
|
<title>Template wildcards</title>
|
|
<tgroup cols="3">
|
|
<?dbhtml cellpadding="4" ?>
|
|
<?dbhtml cellspacing="0" ?>
|
|
<colspec colnum="1" colname="col1"/>
|
|
<colspec colnum="2" colname="col2"/>
|
|
<colspec colnum="3" colname="col3"/>
|
|
<thead>
|
|
<row>
|
|
<entry>Wildcard</entry>
|
|
<entry>Description</entry>
|
|
<entry>Available in following templates</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>developer</entry>
|
|
<entry>The name of the developer.</entry>
|
|
<entry>filetypes, file header, function description, ChangeLog entry</entry>
|
|
</row>
|
|
<row>
|
|
<entry>initial</entry>
|
|
<entry>The developer's initials, e.g. "ET" for
|
|
Enrico Tröger or "JFD" for John Foobar Doe.</entry>
|
|
<entry>filetypes, file header, function description, ChangeLog entry</entry>
|
|
</row>
|
|
<row>
|
|
<entry>mail</entry>
|
|
<entry>The email address of the developer.</entry>
|
|
<entry>file header, function description, ChangeLog entry</entry>
|
|
</row>
|
|
<row>
|
|
<entry>company</entry>
|
|
<entry>The company the developer is working for.</entry>
|
|
<entry>filetypes, file header, function description, ChangeLog entry</entry>
|
|
</row>
|
|
<row>
|
|
<entry>year</entry>
|
|
<entry>The current year in the format: YYYY</entry>
|
|
<entry>filetypes, file header, function description, ChangeLog entry</entry>
|
|
</row>
|
|
<row>
|
|
<entry>version</entry>
|
|
<entry>The initial version of a new file.</entry>
|
|
<entry>filetypes, file header, function description, ChangeLog entry</entry>
|
|
</row>
|
|
<row>
|
|
<entry>date</entry>
|
|
<entry>The current date in the format: YYYY-MM-DD</entry>
|
|
<entry>filetypes, file header, function description, ChangeLog entry</entry>
|
|
</row>
|
|
<row>
|
|
<entry>untitled</entry>
|
|
<entry>The string "untitled" (this will be translated to your locale),
|
|
used in filetype templates</entry>
|
|
<entry>filetypes, file header, function description, ChangeLog entry</entry>
|
|
</row>
|
|
<row>
|
|
<entry>geanyversion</entry>
|
|
<entry>The actual Geany version, e.g. "&app; &appversion;"</entry>
|
|
<entry>filetypes, file header, function description, ChangeLog entry</entry>
|
|
</row>
|
|
<row>
|
|
<entry>datetime</entry>
|
|
<entry>The current date and time in the format: DD.MM.YYYY HH:mm:ss ZZZZ</entry>
|
|
<entry>file header, function description</entry>
|
|
</row>
|
|
<row>
|
|
<entry>filename</entry>
|
|
<entry>The filename of the current file. Only available for the file header template.</entry>
|
|
<entry>file header</entry>
|
|
</row>
|
|
<row>
|
|
<entry>gpl</entry>
|
|
<entry>This wildcard inserts a short GPL notice.</entry>
|
|
<entry>file header</entry>
|
|
</row>
|
|
<row>
|
|
<entry>functionname</entry>
|
|
<entry>The function name of the function at the cursor position.
|
|
This wildcard will only be replaced in the function
|
|
description template.</entry>
|
|
<entry>function description</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
If you need any other wildcards or a special date/time format, please email the author <email>&author_mail;</email>.
|
|
</para>
|
|
</section>
|
|
</chapter>
|
|
|
|
<!-- Sci default keys appendix -->
|
|
<appendix id="scikeybinding">
|
|
&scikeybinding;
|
|
</appendix>
|
|
|
|
<!-- GPL appendix -->
|
|
<appendix id="geany-gpl">
|
|
&legal;
|
|
</appendix>
|
|
|
|
<appendix id="scintilla-license">
|
|
<title>License for Scintilla and SciTE</title>
|
|
<para>Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org></para>
|
|
<para>All Rights Reserved</para>
|
|
<para>Permission to use, copy, modify, and distribute this software and its
|
|
documentation for any purpose and without fee is hereby granted, provided that
|
|
the above copyright notice appear in all copies and that both that copyright
|
|
notice and this permission notice appear in supporting documentation.
|
|
</para>
|
|
<para>NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
|
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NEIL HODGSON
|
|
BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
|
|
CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
|
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
</para>
|
|
</appendix>
|
|
|
|
</book>
|