SF.net SVN: geany: [1774] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Thu Aug 9 10:05:00 UTC 2007
Revision: 1774
http://geany.svn.sourceforge.net/geany/?rev=1774&view=rev
Author: eht16
Date: 2007-08-09 03:05:00 -0700 (Thu, 09 Aug 2007)
Log Message:
-----------
Remove all docbook related files and use reST to generate the documentation.
Thanks to John Gabriele for his great work on converting from docbook to the reST format.
Modified Paths:
--------------
trunk/ChangeLog
trunk/doc/Makefile.am
trunk/doc/geany.css
trunk/doc/geany.txt
Added Paths:
-----------
trunk/doc/geany.html
Removed Paths:
-------------
trunk/doc/geany.docbook
trunk/doc/geany.xsl
trunk/doc/geany_gpl.docbook
trunk/doc/html/
trunk/doc/make_webable.sh
trunk/doc/scikeybinding.docbook
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-08-07 12:36:03 UTC (rev 1773)
+++ trunk/ChangeLog 2007-08-09 10:05:00 UTC (rev 1774)
@@ -1,3 +1,11 @@
+2007-08-09 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+
+ * doc/*, doc/html/*:
+ Remove all docbook related files and use reST to generate the
+ documentation. Thanks to John Gabriele for his great work on
+ converting from docbook to the reST format.
+
+
2007-08-07 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/symbols.c, tagmanager/python.c:
Modified: trunk/doc/Makefile.am
===================================================================
--- trunk/doc/Makefile.am 2007-08-07 12:36:03 UTC (rev 1773)
+++ trunk/doc/Makefile.am 2007-08-09 10:05:00 UTC (rev 1774)
@@ -1,31 +1,21 @@
man_MANS=geany.1
DOCDIR = $(DESTDIR)/$(datadir)/doc/@PACKAGE@
-HTML_FILES = html/*.html
IMAGE_FILES = images/*.png
-EXTRA_DIST = geany.css geany.xsl make_webable.sh geany.txt geany_gpl.docbook geany.1 \
- scikeybinding.docbook geany.docbook $(srcdir)/$(HTML_FILES) $(srcdir)/$(IMAGE_FILES)
+EXTRA_DIST = geany.html geany.css make_webable.sh geany.txt geany.1 \
+ $(srcdir)/$(IMAGE_FILES)
-pdf:
- SP_ENCODING=XML SP_CHARSET_FIXED=YES jw -b pdf $(srcdir)/geany.docbook
- mv doc/geany.pdf geany-$(VERSION).pdf
+pdf: geany.txt
+ rst2latex -stg --documentoptions="10pt,a4paper" --output-encoding=utf8 $(srcdir)/geany.txt >geany.tex
+ pdflatex geany.tex
+ rm -f geany.tex geany.aux geany.log geany.out
+ mv $(srcdir)/geany.pdf geany-$(VERSION).pdf
-geany.txt:
- jw -b txt $(srcdir)/geany.docbook
+doc: geany.txt
+ rst2html -stg --stylesheet=geany.css $(srcdir)/geany.txt >geany.html
-htmldoc: geany.docbook
- if [ geany.docbook -nt "./html/index.html" ]; then \
- $(mkinstalldirs) html; \
- xmlto -m geany.xsl -o html/ xhtml $(srcdir)/geany.docbook; \
- test -f html/geany.css || cp $(srcdir)/geany.css html/; \
- fi
-
-doc: geany.txt htmldoc
-
doc-clean:
- rm -rf html/*.html
- rm -f html/geany.css
+ rm -f geany.html
rm -f geany.1
- rm -f geany.txt
rm -f *.pdf
uninstall-local:
@@ -33,19 +23,13 @@
install-data-local:
$(mkinstalldirs) $(DOCDIR)/html/images
- for file in `ls $(srcdir)/$(HTML_FILES)`; do \
- if [ -f $$file ]; then \
- basefile=`echo $$file | sed -e 's,^.*/,,'`; \
- $(INSTALL_DATA) $$file $(DOCDIR)/html/$$basefile; \
- fi \
- done
for file in `ls $(srcdir)/$(IMAGE_FILES)`; do \
if [ -f $$file ]; then \
basefile=`echo $$file | sed -e 's,^.*/,,'`; \
$(INSTALL_DATA) $$file $(DOCDIR)/html/images/$$basefile; \
fi \
done
- $(INSTALL_DATA) $(srcdir)/geany.css $(DOCDIR)/html/geany.css
+ $(INSTALL_DATA) $(srcdir)/geany.html $(DOCDIR)/html/index.html
$(INSTALL_DATA) $(srcdir)/geany.txt $(DOCDIR)/manual.txt
$(INSTALL_DATA) $(top_srcdir)/README $(DOCDIR)
$(INSTALL_DATA) $(top_srcdir)/ChangeLog $(DOCDIR)
Modified: trunk/doc/geany.css
===================================================================
--- trunk/doc/geany.css 2007-08-07 12:36:03 UTC (rev 1773)
+++ trunk/doc/geany.css 2007-08-09 10:05:00 UTC (rev 1774)
@@ -1,97 +1,108 @@
-body address
-{
- line-height: 1.3;
- margin: .6em 0;
+/*
+:Author: Enrico Troeger
+:Contact: enrico(dot)troeger(at)uvena(dot)de
+:Copyright: This stylesheet has been placed in the public domain.
+
+Stylesheet for Geany's documentation based on a version of John Gabriele.
+*/
+
+/*@import url(html4css1.css);*/
+
+body {
+ background-color: #f2f2f2;
+ color: #404040;
+ margin-left: 0.4em;
+ width: 60em;
+ font-size: 90%;
}
-body blockquote
-{
- margin-top: .75em;
- line-height: 1.5;
- margin-bottom: .75em;
+a {
+ color: #990000;
}
-html body
-{
- margin: 1em 2% 1em 2%;
- line-height: 1.2;
- background-color: #ffffff;
+a:visited {
+ color: #7E558E;
}
-body pre
-{
- margin: .75em 0;
- line-height: 1.3;
- color: #4f3f3f;
- font-weight: bold;
+a:hover {
+ text-decoration: none;
}
-body div
-{
- margin: 0;
+h1 {
+ border-top: 1px dotted;
+ margin-top: 2em;
}
-dl
-{
- margin: .4em 0;
- line-height: 1.2;
+h1, h2, h3 {
+ font-family: sans-serif;
+ color: #5D0606;
}
-.legalnotice
-{
- font-size: small;
+h1.title {
+ text-align: left }
+
+h2 {
+ margin-top: 30px;
}
-h1,h2,h3,h4,h5,h6,
-div.example p b,
-.question,
-div.table p b,
-div.procedure p b
-{
- color: #990000;
+h2.subtitle {
+ text-align: left }
+
+h3 {
+ padding-left: 3px;
}
-.option
-{
- color: #0000ca;
- font-weight: bold;
+blockquote, pre {
+ border: 1px solid;
+ padding: 0.4em;
}
-.parameter
-{
- color: #007a00;
- font-weight: bold;
+blockquote {
+ font-family: sans-serif;
+ background-color: #DBEDD5;
+ border: 1px dotted;
+ border-left: 4px solid;
+ border-color: #9FD98C;
}
-a
-{
- color: #000000;
+pre {
+ background-color: #ECDFCE;
+ border: 1px dotted;
+ border-left: 4px solid;
+ border-color: #D9BE9A;
}
-a:hover
-{
- color: #3c3c3c;
- border-bottom: 1px solid #dc0000;
+tt, pre, code {
+ color: #6D4212;
}
-hr
-{
- background-color: #9c9c9c;
- border-style: none;
- height: 1px;
+table {
+ border: 1px solid #D9BE9A;
}
-li
-{
- list-style-type: square;
+th {
+ background-color: #ECDFCE;
+ border: 1px dotted #D9BE9A;
}
-.programlisting, .screen
-{
- background-color: #F8F9FD;
- border-color: #907777;
- border-width: 1px;
- border-style: solid;
- padding: 0.5em;
+td {
+ border: 1px dotted #D9BE9A;
}
+.docinfo-name {
+ color: #5D0606;
+}
+
+p.admonition-title {
+ color: #990000;
+ font-weight: bold;
+}
+
+div.note {
+ margin: 1em 3em;
+ padding: 0em;
+}
+
+dt {
+ font-style: italic;
+}
Deleted: trunk/doc/geany.docbook
===================================================================
--- trunk/doc/geany.docbook 2007-08-07 12:36:03 UTC (rev 1773)
+++ trunk/doc/geany.docbook 2007-08-09 10:05:00 UTC (rev 1774)
@@ -1,2917 +0,0 @@
-<?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 appversion "0.12">
-<!ENTITY appurl "http://geany.uvena.de">
-<!ENTITY author_mail "enrico.troeger at uvena.de">
-<!ENTITY date "May 21, 2007">
-<!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 at btinternet.com</email></address>
- </author>
- <author>
- <firstname>Frank</firstname>
- <surname>Lanitz</surname>
- <address><email>frank at frank.uvena.de</email></address>
- </author>
- <copyright>
- <year>2005-2007</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>
- Geany &appversion;
- </title>
- </bookinfo>
-
- <chapter id="intro">
- <title>
- Introduction
- </title>
- <section>
- <title>About Geany</title>
- <para>
- <application>Geany</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>Geany</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>Geany</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 including C, Java, PHP, HTML, Python, Perl, Pascal, and others</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>Geany</application> from <ulink url="&appurl;">&appurl;</ulink>
- or perhaps from your distributor.
- </para>
- </section>
- <section>
- <title>License</title>
- <para>
- <application>Geany</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>Geany</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>Geany</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>
- There also some compile time options which can be found in <filename>src/geany.h</filename>.
- Please see <xref linkend="cto"/> for more information.
- </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
- <application>Geany</application> with dynamic linking loader support to automatically load
- <filename>libvte.so.4</filename> if available.
- </para>
- <para><application>Geany</application> has been successfully compiled and tested under Debian 3.1 Sarge, Debian 4.0 Etch,
- Fedora Core 3/4/5, LinuxFromScratch and FreeBSD 6.0. It also compiles under
- <trademark class="trade">Microsoft Windows</trademark>.
- </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>
- <para>
- There are many binary packages available. For an up to date but maybe incomplete
- list see <ulink url="&appurl;/Download/Releases">&appurl;/Download/Releases</ulink>.
- </para>
- </section>
- </chapter>
-
- <chapter id="usage">
- <title>Usage</title>
- <section id="getting_started">
- <title>Getting started</title>
- <para>
- You can start <application>Geany</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>Geany</guimenuitem>
- </menuchoice>.
- </para>
- </listitem>
- <listitem>
- <para>
- From the command line
- </para>
- <para>
- To start <application>Geany</application> from a command line, type the following
- and press <keycap>Return</keycap>:
- <screen>
- <prompt>%</prompt> <userinput><command>geany</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></entry>
- <entry>--column</entry>
- <entry>Set initial column number for the first opened file.
- </entry>
- </row>
- <row>
- <entry>-c dir_name</entry>
- <entry>--config=directory_name</entry>
- <entry>Use an alternate configuration directory. Default
- configuration directory is <filename>~/.geany/</filename>
- and there resides <filename>geany.conf</filename> and
- other configuration files.
- </entry>
- </row>
- <row>
- <entry>-d</entry>
- <entry>--debug</entry>
- <entry>Run <application>Geany</application> in debug mode, which
- means being verbose and printing lots of information.
- </entry>
- </row>
- <row>
- <entry></entry>
- <entry>--ft-names</entry>
- <entry>Print a list of <application>Geany</application>'s internal
- filetype names (useful for the auto completion list).
- </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 <application>Geany</application>
- 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>-p</entry>
- <entry>--no-plugins</entry>
- <entry>Do not load plugins or plugin support.
- </entry>
- </row>
- <row>
- <entry>-s</entry>
- <entry>--no-session</entry>
- <entry>Do not 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 <application>Geany</application> 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
- <application>Geany</application> 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
- <application>Geany</application> to ignore loading stored
- files from the last session (if enabled).
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <application>Geany</application> 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, <application>Geany</application> loads all files from the last time
- <application>Geany</application> was launched. You can disable this feature in the
- preferences dialog(see <xref linkend="prefs_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. By default this contains
- the last 10 recently opened files. You can change the amount of recently opened
- files in the preferences dialog.
- </para>
- <para>
- You can start several instances of <application>Geany</application>, but only
- the first will load files from the last session. To run a second instance of
- <application>Geany</application>, 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>
- <application>Geany</application> detects an already running instance of itself
- and opens files from the command-line in the already running instance.
- So, <application>Geany</application> 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>Geany</application>, and you will have a terminal widget
- in the notebook at the bottom.
- </para>
- <para>
- If <application>Geany</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>Geany</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>
- <para>
- In the preferences dialog you can specify a shell which should be started in the
- VTE. To make the specified shell a login shell just use the appropriate command
- line options for the shell. These options should be found in the manual page of
- the shell. For zsh and bash you can use the argument <literal>--login</literal>.
- </para>
- <note>
- <para><application>Geany</application> 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,
- <application>Geany</application> 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 id="general_userstyles">
- <title>Defining own widget styles using .gtkrc-2.0</title>
- <para>
- You can define your widget style for many of <application>Geany</application>'s
- GUI parts. To do this, just edit your <filename>.gtkrc-2.0</filename> (usually
- found in your home directory on UNIX-like systems and in the etc subdirectory
- of your <application>Geany</application> installation on Windows).
- </para>
- <para>
- To get a defined style get noticed by <application>Geany</application> you must
- it assign to one of <application>Geany</application>'s widgets. To do so,
- use the following line:
- </para>
- <para>
- <command>widget "Geany*" style "geany_style"</command>
- </para>
- <para>
- This would assign your already defined style "geany_style" to all
- <application>Geany</application> widgets. You can also assign styles only to
- specific widgets. At the moment you can use the following widgets:
- <orderedlist numeration="arabic">
- <listitem>
- <para>GeanyMainWindow</para>
- </listitem>
- <listitem>
- <para>GeanyEditMenu</para>
- </listitem>
- <listitem>
- <para>GeanyToolbarMenu</para>
- </listitem>
- <listitem>
- <para>GeanyDialog</para>
- </listitem>
- <listitem>
- <para>GeanyDialogPrefs</para>
- </listitem>
- <listitem>
- <para>GeanyDialogProject</para>
- </listitem>
- <listitem>
- <para>GeanyDialogSearch</para>
- </listitem>
- </orderedlist>
- </para>
- <para>Example of a simple .gtkrc-2.0:
- <programlisting>style "geanyStyle"
-{
- font_name="Sans 12"
-}
-widget "GeanyMainWindow" style "geanyStyle"
-
-style "geanyStyle"
-{
- font_name="Sans 10"
-}
-widget "GeanyPrefsDialog" style "geanyStyle"
-</programlisting>
- </para>
- </section>
- </section>
- <section id="charset">
- <title>Character sets and Unicode Byte-Order-Mark (BOM)</title>
- <section>
- <title>Using character sets</title>
- <para>
- <application>Geany</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>Geany</application> uses the character conversion
- capabilities of the GLib.
- </para>
- <para>
- Only text files are supported, i.e. opening files which contain NUL-bytes may
- fail. <application>Geany</application> will try to open the file anyway but it
- is likely that the file will be truncated because it can only opened up to the
- first occurrence of the first NUL-byte. All characters after this position are
- lost and are not written when you save the file.
- </para>
- <para>
- <application>Geany</application> tries to detect the encoding of a file while
- opening it. It might be that the encoding of a file cannot be detected correctly
- so you have to set manually the encoding of the file in order to display it
- correctly. You can this in the file open dialog by selecting an encoding in the
- drop down box or by reloading the file with the file menu item "Reload as".
- The auto detection works well for most encodings but there are also some encodings
- known where auto detection has its problems. Auto detecting the encoding of a file
- is not easy and sometimes an encoding might be detected not correctly.
- </para>
- <para>
- There are different ways to use different encodings in <application>Geany</application>:
- <orderedlist numeration="arabic">
- <listitem>
- <para>Using the file open dialog</para>
- <para>This opens the file with the encoding specified in the encoding
- drop down box. If the encoding is set to "Detect from file"
- auto detection will be used. If the encoding is set to
- "Without encoding (None)" the file will be opened without any
- character conversion and <application>Geany</application> will
- not try to auto detect the encoding(see below for more information).
- </para>
- </listitem>
- <listitem>
- <para>Using the "Reload as" menu item</para>
- <para>This item reloads the current file with the specified encoding.
- It can help if you opened a file and found out that a wrong
- encoding was used.
- </para>
- </listitem>
- <listitem>
- <para>Using the "Set encoding" menu item</para>
- <para>In contrary to the above two options, this will not change or
- reload the current file unless you save it. It is useful when
- you want to change the encoding of the file.</para>
- </listitem>
- </orderedlist>
- </para>
- </section>
- <section>
- <title>Special encoding "None"</title>
- <para>
- There is a special encoding "None" which is actually no real encoding. It is
- useful when you know that Geany cannot auto detect the encoding of a file and
- it is not displayed correctly. Especially when the file contains NUL-bytes this
- can be useful to skip auto detection and open the file properly at least until
- the occurrence of the first NUL-byte. Using this encoding opens the file as it
- is without any character conversion.
- </para>
- </section>
- <section>
- <title>Unicode Byte-Order-Mark (BOM)</title>
- <para>
- Furthermore, <application>Geany</application> 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>
- <section id="editing">
- <title>Editing</title>
- <section id="editing_text_dnd">
- <title>Drag and drop of text</title>
- <para>
- If you drag selected text in the editor widget of
- <application>Geany</application> the text is moved to the position where the
- mouse pointer is when releasing the mouse button. Holding Control when releasing
- the mouse button will copy the text instead. This behaviour was
- changed in <application>Geany</application> 0.11 - before the selected text
- was copied to the new position.
- </para>
- </section>
- <section id="editing_indentation">
- <title>Auto indentation</title>
- <para>
- <application>Geany</application> knows three types of auto indentation:
- None, Basic and Advanced.
- <variablelist><title>Auto indentation types</title>
- <varlistentry><term>None</term>
- <listitem>
- <para>
- Disables auto indentation completely.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry><term>Basic</term>
- <listitem>
- <para>
- Adds the same amount of whitespace on a new line as on the last line.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry><term>Advanced</term>
- <listitem>
- <para>
- Does the same as Basic but also indents curly brackets and adds a tabulator
- character (or spaces) on a new line after an opening '{' brace.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- </section>
- <section id="editing_bookmarks">
- <title>Bookmarks</title>
- <para>
- Geany provides a handy bookmarking feature that lets you mark one or more lines in a document, and
- return the cursor to them using a key combination.
- </para>
- <para>
- To place a mark on a line, either left-mouse-click in the left margin of the editor window, or else
- use Ctrl-m. Either way, this will produce a small green plus symbol in the margin. You can have as
- many marks in a document as you like. Click again (or use Ctrl-m again) to remove the bookmark.
- To remove all the marks in a given document, use "Remove Markers" in the Document menu.
- </para>
- <para>
- To navigate down your document, jumping from one mark to the next, use Ctrl-. (control period).
- To go in the opposite direction on the page, use Ctrl-, (control comma). Using the bookmarking
- feature together with the commands to switch from one editor tab to another (Ctrl-PgUp/PgDn and
- Ctrl-Tab) provides a particularly fast way to navigate around multiple files.
- </para>
- </section>
- <section id="editing_definable_commands">
- <title>Send text through definable commands</title>
- <para>
- You can define several custom commands in <application>Geany</application> and
- send the current selection to one of these commands. The output of the command
- will be used to replace the current selection. So, it is possible to use text
- formatting tools with Geany in a general way.
- The selected text will be sent to the standard input of the executed command,
- so the command should be able to read from it and it should print all results
- to its standard output which will be read by <application>Geany</application>.
- To help finding errors in executing the command, the output of the program's
- standard error will be printed on <application>Geany</application>'s standard
- output.
- </para>
- <para>
- To add a custom command, just go to the Set Custom Commands dialog in the
- Format sub menu of the Edit and Popup menu. Then click on Add to get a new
- text entry and type the command. You can also specify some command line options.
- To delete a command, just clear the text entry and press Ok. It will be deleted
- automatically.
- </para>
- </section>
- <section id="editing_context_actions">
- <title>Context actions</title>
- <para>
- You can execute a specified command on the current word near the cursor
- position or an available selection and this word is passed as an argument
- to this command. It can be used for example to open some API documentation
- in a browser window or open any other external program. To do this,
- there is an menu entry in the popup menu of the editor widget and also a
- keyboard shortcut(see <xref linkend="keybindings"/>).
- </para>
- <para>
- The command can be specified in the preferences dialog and additionally for
- each filetype (see "context_action_cmd" in <xref linkend="filetypes_format"/>).
- At executing, the filetype specific command is used if available otherwise the
- command specified in the preferences dialog is executed.
- </para>
- <para>
- The passed word can be referred with the wildcard "%s" everywhere in the
- command, before executing it will be replaced by the current word.
- For example, the command to open the PHP API documentation would be:
- </para>
- <para>
- <command>firefox "http://www.php.net/%s"</command>
- </para>
- <para>
- when executing the command, the %s is substituted by the word near the
- cursor position or by the current selection. If the cursor is at the word
- "echo", a browser window will open(assumed your browser is called firefox)
- and it will open the address: http://www.php.net/echo.
- </para>
- </section>
- <section id="editing_cc">
- <title>User-definable auto completion</title>
- <para>
- Geany can complete pre-defined constructs and often used strings automatically.
- To know what to complete or replace Geany reads a configuration file called
- <filename>autocomplete.conf</filename> at startup.
- </para>
- <para>
- The system-wide configuration file can be found in
- <filename>$prefix/share/geany</filename>, where $prefix is the path where
- <application>Geany</application> is installed (commonly
- <filename>/usr/local</filename>). It is not recommended to edit the system-wide
- file, because it will be overridden when <application>Geany</application> is
- updated.
- </para>
- <para>
- To change the settings, copy the file from
- <filename>$prefix/share/geany</filename> in your configuration directory
- (usually <filename>~/.geany/</filename>).
- </para>
- <para>
- For example:
- <screen><prompt>%</prompt> <userinput><command>cp /usr/local/share/geany/autocomplete.conf /home/username/.geany/</command></userinput></screen>
- Then you can edit the file and the changes are also available after an update of
- <application>Geany</application> because the file resides in your configuration
- directory. Alternatively, you can create a file
- <filename>~/.geany/autocomplete.conf</filename> and add only these settings
- you want to change. All missing settings will be read from the global auto
- completion file in <filename>$prefix/share/geany</filename>.
- </para>
- <para>
- The file autocomplete.conf may contain several sections for each filetype. It
- also contains two additional sections "Default" and "Special".
- Default contains all completions which are available for every filetype. You
- may define another section for a certain filetype(e.g. C++) containing the same
- completions. Then when using such a completion in a C++ file the completion
- defined in the C++ section will be used. In any other file the completion
- defined in the Default section will be used unless a section for the current
- filetype exists and the used completion is defined in this section.
- The section "Special" contains special completions which can only be used in
- other completions. So you can define often used parts of completions and just
- use the special completion as a placeholder (see the autocomplete.conf for
- details).
- </para>
- <para>
- To define completions you can use several special characters which will be
- replaced when using the completion:
- <table frame="all" id="completion_wildcards">
- <title>Wildcards for auto completion</title>
- <tgroup cols="2">
- <?dbhtml cellpadding="4" ?>
- <?dbhtml cellspacing="0" ?>
- <colspec colnum="1" colname="col1"/>
- <colspec colnum="2" colname="col2"/>
- <tbody>
- <row>
- <entry>\n or %newline%</entry>
- <entry>Insert a new line (it will be replaced by the used
- EOL char(s) - LF, CR/LF, CR).</entry>
- </row>
- <row>
- <entry>\t ot %ws%</entry>
- <entry>Insert an indentation step, if using only spaces for
- indentation only spaces will be used.</entry>
- </row>
- <row>
- <entry>\s</entry>
- <entry>\s to force whitespace at beginning or end of a value
- ('key= value' won't work, use 'key=\svalue')</entry>
- </row>
- <row>
- <entry>%cursor%</entry>
- <entry>Place the cursor at this position after completion has
- been done.</entry>
- </row>
- <row>
- <entry>%...%</entry>
- <entry>... means the name of a key in the "Special" section.
- If you have defined a key "brace_open" in the "Special"
- section you can use %brace_open" in any other completion.
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </para>
- <para>
- Defined completions must not contain spaces otherwise they won't work
- correctly. But beside that you can define almost everything string as a
- completion and use it later in Geany. It is not limited to existing contructs
- of certain programming languages(like if, for, switch). Define whatever you
- need.
- </para>
- <para>
- Maybe you need to often type your name, so define a completion like this:
- <literallayout><literal>[Default]
- myname=Enrico Tröger</literal></literallayout>
- Everytime you write <literal>myname</literal><TAB> in Geany, it will
- replace "myname" by "Enrico Tröger". The key to start auto completion can
- be changed in the preferences dialog, by default it is TAB.
- </para>
- </section>
- </section>
- <section id="search">
- <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 id="search_find">
- <title>Find</title>
- <para>
- The Find dialog is used for finding text in one or more open documents.
- </para>
- <para>
- <figure>
- <title>Find dialog</title>
- <graphic fileref="images/find_dialog.png"></graphic>
- </figure>
- </para>
- <section id="search_matchingoptions">
- <title>Matching options</title>
- <para>
- The syntax for the <emphasis>Use regular expressions</emphasis> option is shown in
- <xref linkend="regexp"/>.
- </para>
- <para>
- The <emphasis>Use escape sequences</emphasis> option will transform
- any escaped characters into their UTF-8 equivalent. For example,
- <literal>\t</literal> will be transformed into a tab character. Other
- recognised symbols are:
- <literal>\\</literal>, <literal>\n</literal>, <literal>\r</literal>,
- <literal>\uXXXX</literal> (Unicode chararacters).
- </para>
- </section>
- <section>
- <title>Find all</title>
- <para>
- To find all matches, click on the <emphasis>Find All</emphasis> expander.
- This will reveal several options:
- <itemizedlist>
- <listitem><para>In Document</para></listitem>
- <listitem><para>In Session</para></listitem>
- <listitem><para>Mark</para></listitem>
- </itemizedlist>
- <emphasis>Find All In Document</emphasis> will show a list of matching lines
- in the current document in the Messages tab of the Message Window.
- <emphasis>Find All In Session</emphasis> does the same for all open documents.
- </para>
- <para>
- <emphasis>Mark</emphasis> will set markers for all matching lines in the
- current document, if the Markers margin is visible.
- If not, the background colour of matching lines will be highlighted.
- Markers and highlighting can be removed by selecting the
- <emphasis>Remove Markers</emphasis> command from the
- Document menu.
- </para>
- </section>
- </section>
- <section>
- <title>Find usage</title>
- <para>
- Find usage searches all open files. It is similar to the
- <emphasis>Find All In Session</emphasis> Find dialog command.
- </para>
- <para>
- 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 tab of the Message Window.
- </para>
- </section>
- <section id="search_fif">
- <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.
- GNU Grep is recommended.
- </para>
- <para>
- <figure>
- <title>Find in files dialog</title>
- <graphic fileref="images/find_in_files_dialog.png"></graphic>
- </figure>
- </para>
- <para>
- The <emphasis>Extra options</emphasis> field is used to pass any additional
- arguments to the <literal>grep</literal> tool.
- </para>
- <section><title>Filtering out version control files</title>
- <para>
- When using the <emphasis>Recurse in subfolders</emphasis> option with a
- directory that's under version control, you can set the
- <emphasis>Extra options</emphasis> field to use <literal>grep</literal>'s
- <literal>--exclude</literal> flag to filter out filenames.
- </para>
- <para>
- SVN Example: <literal>--exclude=*.svn-base</literal>
- </para>
- <note>
- <para>
- The GNU Grep project added support for excluding directories,
- using the <literal>--exclude-dir</literal> flag.
- At the time of writing (April 2007) this is unreleased outside
- of version control.
- Check your Grep manual to see if your version supports it.
- </para>
- <para>
- Example: <literal>--exclude-dir=.* --exclude-dir=CVS</literal>
- </para>
- </note>
- </section>
- </section>
- <section id="search_replace">
- <title>Replace</title>
- <para>
- The Replace dialog is used for replacing text in one or more open documents.
- </para>
- <para>
- <figure>
- <title>Replace dialog</title>
- <graphic fileref="images/replace_dialog.png"></graphic>
- </figure>
- </para>
- <para>
- The Replace dialog has the same options for matching text as the Find
- dialog. See <xref linkend="search_matchingoptions"/>.
- </para>
- <para>
- The <emphasis>Use regular expressions</emphasis> 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>
- <title>Replace all</title>
- <para>
- To replace several matches, click on the <emphasis>Replace All</emphasis>
- expander. This will reveal several options:
- <itemizedlist>
- <listitem><para>In Document</para></listitem>
- <listitem><para>In Session</para></listitem>
- <listitem><para>In Selection</para></listitem>
- </itemizedlist>
- <emphasis>Replace All In Document</emphasis> will replace all matching text
- in the current document.
- <emphasis>Replace All In Session</emphasis> does the same for all open documents.
- <emphasis>Replace All In Selection</emphasis> will replace all matching text
- in the current selection of the current document.
- </para>
- </section>
- </section>
- <section id="search_gototag">
- <title>Go to tag definition</title>
- <para>
- If the current word is the name of a tag definition (like a function body)
- and the file containing the tag definition is open, this command 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 declaration such as a
- function prototype or <literal>extern</literal> declaration instead
- of a function body.
- </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 <emphasis>Use regular expressions</emphasis> 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="tags">
- <title>Tags</title>
- <section><title>Workspace tags</title>
- <para>
- Tags for each document are parsed whenever a file is loaded or saved. These are
- shown in the Symbol list in the Sidebar. These tags are also used for autocompletion
- and calltips in other documents open in the current session.
- </para>
- <para>
- The <emphasis>Go to Tag</emphasis> commands can be used with all workspace tags.
- See <xref linkend="search_gototag"/>.
- </para>
- </section>
- <section id="tags_global"><title>Global tags</title>
- <para>
- Global tags are used to provide autocompletion and calltips without having to open
- the corresponding source files. This is intended for library APIs, as the tags file
- only has to be updated when you upgrade the library.
- </para>
- <para>
- You can load a custom global tags file in two ways:
- <itemizedlist>
- <listitem><para>Using the <emphasis>Load Tags</emphasis> command in the File menu.
- </para></listitem>
- <listitem><para>By creating a directory <filename>~/.geany/tags</filename>,
- and moving or symlinking the tags files there before starting
- <application>Geany</application>.
- </para></listitem>
- </itemizedlist>
- </para>
- <para>
- You can either download these files or generate your own.
- They have the format:
- </para>
- <para>
- <filename>libraryname.lang_ext.tags</filename>
- </para>
- <para>
- <emphasis>lang_ext</emphasis> is one of the extensions set for the filetype
- associated with the tags. See <xref linkend="filetype_extensions"/> for more
- information.
- </para>
- <section><title>Default global tags files</title>
- <para>
- For some languages, a list of global tags is loaded when the corresponding filetype
- is first used. Currently these are for:
- <itemizedlist>
- <listitem><para>C - GTK+ and GLib</para></listitem>
- <listitem><para>Pascal</para></listitem>
- <listitem><para>PHP</para></listitem>
- <listitem><para>HTML - <literal>&symbol;</literal> completion, e.g.
- for ampersand, copyright, etc.</para></listitem>
- <listitem><para>LaTeX</para></listitem>
- </itemizedlist>
- </para>
- </section>
- <section id="tags_generating"><title>Generating a global tags file</title>
- <para>
- <note><title>Filetypes support</title>
- <para>
- Currently this is not yet supported for Pascal, PHP and LaTeX filetypes.
- </para>
- </note>
- </para>
- <para>
- You can generate your own global tags files by parsing a list of source files.
- The command is:
- </para>
- <para>
- geany -g <Tag File> <File list>
- </para>
- <para>
- <itemizedlist>
- <listitem><para><emphasis>Tag File</emphasis> should be in the format described
- earlier - see <xref linkend="tags_global"/>.</para></listitem>
- <listitem><para><emphasis>File list</emphasis> is a list of filenames, each with
- a full path (unless you are generating C/C++ tags and have set the CFLAGS
- environment variable appropriately).</para></listitem>
- </itemizedlist>
- </para>
- <para>
- Example for the wxD library for the D programming language:
- <programlisting>geany -g wxd.d.tags /home/username/wxd/wx/*.d</programlisting>
- </para>
- <section><title>Generating C/C++ tag files</title>
- <para>
- For C/C++ tag files, <filename>gcc</filename> and <filename>grep</filename> are
- required, so that header files can be preprocessed to include
- any other headers they depend upon.
- </para>
- <para>
- For C/C++ files, the environment variable CFLAGS should be set with appropriate
- <literal>-I/path</literal> include paths.
- The following example works with the <filename>bash</filename> shell, generating
- tags for the GnomeUI library:
- <programlisting>CFLAGS=`pkg-config --cflags libgnomeui-2.0` geany -g gnomeui.c.tags
-/usr/include/libgnomeui-2.0/gnome.h</programlisting>
- </para>
- <para>
- You can adapt this command to use CFLAGS and header files appropriate for
- whichever libraries you want.
- </para>
- <para>
- <note><title>Replacing the default C/C++ tags file</title>
- <para>
- <application>Geany</application> currently uses a default global tags file
- <filename>global.tags</filename>
- for C and C++, commonly installed in <filename>/usr/share/geany</filename>. This
- file can be replaced with one containing tags parsed from a different set of
- header files. When <application>Geany</application> is next started, your custom
- tags file will be loaded instead of the default <filename>global.tags</filename>.
- You should keep a copy of the generated
- tags file because it will get overwritten when upgrading
- <application>Geany</application>.
- </para>
- <para>This is a temporary solution - in later versions this will be unnecessary.
- </para>
- </note>
- </para>
- </section><!-- C/C++ -->
- </section><!-- Generating -->
- </section><!-- Tags -->
- </section>
- <section id="prefs">
- <title>Preferences</title>
- <para>
- You may adjust Geany's settings using the Edit --> Preferences dialog. Any
- changes you make there can be applied by hitting either the Apply or the Ok
- button. These settings will persist between Geany sessions. Note that most
- settings here have descriptive popup bubble help -- just hover the mouse
- over the item in question to get help on it.
- </para>
- <para>
- You may also adjust some View settings (under the View menu) that persist
- between Geany sessions. The settings under the Document menu, however, are
- only for the current document and revert to defaults when restarting Geany.
- </para>
- <para>
- Note, in the paragraphs that follow, the text describing a dialog tab
- (if present) comes after the screenshot of that tab.
- </para>
-
- <para>
- <!-- should be written -->
- <!-- I know that <mediaobject> is better than <graphic> but <mediaobject> does not work with PDF -->
- </para>
- <para>
- <figure id="prefs_gen">
- <title>General tab in preferences dialog</title>
- <graphic fileref="images/pref_dialog_gen.png"></graphic>
- </figure>
- <emphasis>The "Context Activation" setting needs to be documented.</emphasis>
- </para>
- <para>
- <figure>
- <title>Interface tab in preferences dialog</title>
- <graphic fileref="images/pref_dialog_interface.png"></graphic>
- </figure>
- The open files list and the editor tabs are two different ways to switch
- between documents using the mouse. When you hit the key combination to
- move between tabs, the order is determined by the tab order, not alphabetical
- as shown in the open files list (regardless whether or not editor tabs are
- visible).
- </para>
- <para>
- <figure>
- <title>Toolbar tab in preferences dialog</title>
- <graphic fileref="images/pref_dialog_toolbar.png"></graphic>
- </figure>
- </para>
- <para>
- <figure>
- <title>Files tab in preferences dialog</title>
- <graphic fileref="images/pref_dialog_files.png"></graphic>
- </figure>
- </para>
- <para>
- <figure>
- <title>Editor tab in preferences dialog</title>
- <graphic fileref="images/pref_dialog_edit.png"></graphic>
- </figure>
- Line wrapping refers to the display of the text in the editor. Currently,
- there is no setting to have Geany automatically insert newlines into your
- document while you type.
- </para>
- <para>
- <figure>
- <title>Tools tab in preferences dialog</title>
- <graphic fileref="images/pref_dialog_tools.png"></graphic>
- </figure>
- </para>
- <para>
- <figure id="prefs_templ">
- <title>Template tab in preferences dialog</title>
- <graphic fileref="images/pref_dialog_templ.png"></graphic>
- </figure>
- </para>
- <para>
- <figure id="prefs_keys">
- <title>Keybinding tab in preferences dialog</title>
- <graphic fileref="images/pref_dialog_keys.png"></graphic>
- </figure>
- There are some handy commands in here that are not, by default, bound to a key
- combination, and may in fact not even be available as a menu item (for example, the
- very handy "Hide and show all additional widgets").
- </para>
- <para>
- <note>
- <para>For more information see <xref linkend="keybindings"/>.</para>
- </note>
- <figure id="prefs_vte">
- <title>VTE tab in preferences dialog</title>
- <graphic fileref="images/pref_dialog_vte.png"></graphic>
- </figure>
- </para>
- </section>
- <section id="project_management">
- <title>Project Management</title>
- <para>
- Project Management is optional in <application>Geany</application>.
- Currently it can be used for:
- <itemizedlist>
- <listitem><para>Running <emphasis>Make</emphasis> from the project's base
- directory.</para></listitem>
- <listitem><para>Setting a custom <emphasis>Run</emphasis> command specific to
- the project.</para></listitem>
- </itemizedlist>
- </para>
- <para>
- As long as a project is open, the Make and Run commands will use the project's
- settings, instead of the defaults. These will be used whichever document is
- currently displayed.
- </para>
- <para>
- The current project's settings are saved when it is closed, or when
- <application>Geany</application> is shutdown.
- When restarting <application>Geany</application>, the previously opened project file
- that was in use at the end of the last session will be reopened.
- </para>
- <section>
- <title>New Project</title>
- <para>
- To create a new project, fill in the <emphasis>Name</emphasis> field. By default
- this will setup a new project file <filename>~/projects/name.geany</filename>.
- Usually it's best to store all your project files in the same directory
- (they are independent of any source directory trees).
- </para>
- <para>
- The <emphasis>Base path</emphasis> text field is setup to use
- <filename>~/projects/name</filename>. This can safely be set to any existing path
- - it will not touch the file structure contained in it.
- </para>
- </section>
- <section>
- <title>Project Properties</title>
- <para>
- You can set an optional description for the project, but it is not used elsewhere by
- <application>Geany</application>.
- </para>
- <para>
- The <emphasis>Base path</emphasis> field is used as the directory to run the
- Make and Make custom commands in.
- </para>
- <section><title>Run command</title>
- <para>
- The <emphasis>Run</emphasis> command overrides the default run command. You can
- set this to the executable or main script file for the project, and append any
- command-line arguments.
- </para>
- <para>
- The following variables can be used:
- </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>
- <para>
- See <xref linkend="filetypes_build_settings"/> for details.
- </para>
- </section>
- </section>
- <section>
- <title>Close Project</title>
- <para>
- Project file settings are saved when the project is closed.
- </para>
- </section>
- <section>
- <title>Open Project</title>
- <para>
- The <emphasis>Open</emphasis> command displays a standard file chooser, starting
- in <filename>~/projects</filename>.
- </para>
- </section>
- </section>
- <section id="build_system">
- <title>Build system</title>
- <para>
- <application>Geany</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>Geany</application> will switch to
- the relevant source file (if it is open) and mark the line number so the problem
- can be corrected. <application>Geany</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 and accept the "-e" command line
- argument to start a command.
- </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>Stopping running processes</title>
- <para>
- When there is a running program, the Run button in the
- toolbar becomes a stop button and you can stop the current action. This works
- by sending a signal to the process (and its child process(es)) to stop the
- process. The used signal is SIGQUIT.
- </para>
- <para>
- Depending on the process you started it might occur that the process cannot be
- stopped. This can happen when the process creates more than one child process.
- <!-- Make shouldn't be run from the Run command.
- Therefore stopping any make actions is not possible because make creates child
- processes and these child processes creates again child process. There might be
- some other programs which cannot be stopped correctly.
- -->
- </para>
- <note><title>Terminal emulators</title><para>
- Xterm is known to work
- properly. If you are using "Terminal" (the terminal program of Xfce), you
- should add the command line option "--disable-server" otherwise the started
- process cannot be stopped. Just add this option in the preferences dialog on
- the Tools tab in the terminal field.
- </para></note>
- </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>
- <para>
- These settings are saved automatically when <application>Geany</application>
- is shut down.
- </para>
- <para>
- The following variables can be used:
- </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>
- <para>
- See <xref linkend="filetypes_build_settings"/> for details.
- </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>
- <note><title>One step compilation</title><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>
- </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>
- <section id="printing">
- <title>Printing support</title>
- <para>
- <application>Geany</application> 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>Geany</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 <application>Geany</application> 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>Geany</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 As</entry>
- <entry>Saves the current file under a new name.</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>Insert date</entry>
- <entry>Inserts a customisable date.</entry>
- </row>
- <row>
- <entry>Preferences</entry>
- <entry>Opens preferences dialog.</entry>
- </row>
- <row>
- <entry>Help</entry>
- <entry>Opens the manual.</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>Next message</entry>
- <entry>Jumps to the line with the next message from the last call
- to Find usage.</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>Toggle all additional widgets</entry>
- <entry>Hide and show all additional widgets like the notebook tabs,
- the toolbar, the messages window and the statusbar.</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>Next error</entry>
- <entry>Jumps to the line with the next error from the last build
- process.
- </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 Search Bar</entry>
- <entry>Switches to the search bar in the toolbar (if visible).</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>Switch to last used document</entry>
- <entry>Switches to the previously selected open document.</entry>
- </row>
- <row>
- <entry>Navigate forward a location</entry>
- <entry>Switches to the next location in the navigation history.</entry>
- </row>
- <row>
- <entry>Navigate back a location</entry>
- <entry>Switches to the previous location in the navigation history.</entry>
- </row>
- <row>
- <entry align="left" spanname="hspan">Editing operations</entry>
- </row>
- <row>
- <entry>Convert selection to lower case</entry>
- <entry>Converts the current selection to lower case.</entry>
- </row>
- <row>
- <entry>Convert selection to upper case</entry>
- <entry>Converts the current selection to upper case.</entry>
- </row>
- <row>
- <entry>Duplicate line or selection</entry>
- <entry>Duplicates the current line or selection.</entry>
- </row>
- <row>
- <entry>Delete current line</entry>
- <entry>Deletes the current line.
- </entry>
- </row>
- <row>
- <entry>Cut current line</entry>
- <entry>Cuts the current line.
- </entry>
- </row>
- <row>
- <entry>Copy current line</entry>
- <entry>Copies the current line into the clipboard.
- </entry>
- </row>
- <row>
- <entry>Transpose current line</entry>
- <entry>Transposes the current line with the previous one.
- </entry>
- </row>
- <row>
- <entry>Comment line</entry>
- <entry>Comments current line or selection.</entry>
- </row>
- <row>
- <entry>Uncomment line</entry>
- <entry>Uncomments current line or selection.</entry>
- </row>
- <row>
- <entry>Toggle line commentation</entry>
- <entry>Comments a line if it is not commented or removes a comment
- if the line is commented.</entry>
- </row>
- <row>
- <entry>Increase indent</entry>
- <entry>Indents the current line or selection by one tabulator or
- by spaces in the amount of the tab width setting.</entry>
- </row>
- <row>
- <entry>Decrease indent</entry>
- <entry>Removes one tabulator or the amount fo spaces of the tab
- width setting from the indentation of the current line or
- selection.</entry>
- </row>
- <row>
- <entry>Increase indent by one space</entry>
- <entry>Indents the current line or selection by one space.</entry>
- </row>
- <row>
- <entry>Decrease indent by one space</entry>
- <entry>Deindents the current line or selection by one space.</entry>
- </row>
- <row>
- <entry>Smart line indent</entry>
- <entry>Indents the current line or all selected lines with the same
- intentation as the previous line.</entry>
- </row>
- <row>
- <entry>Goto matching brace</entry>
- <entry>If the cursor is ahead or behind a brace, then it is moved to
- the brace which belongs to the current one. If this keyboard
- shortcut is pressed again, the cursor is moved back to the
- first brace.</entry>
- </row>
- <row>
- <entry>Toggle marker</entry>
- <entry>Set a marker on the current line, or clear the marker if there
- already is one.</entry>
- </row>
- <row>
- <entry>Goto next marker</entry>
- <entry>Goto the next marker in the current document.</entry>
- </row>
- <row>
- <entry>Goto previous marker</entry>
- <entry>Goto the previous marker in the current document.</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>Complete construct</entry>
- <entry>If you type a construct like <literal>if</literal> or
- <literal>for</literal> and press this key, it
- will be completed with a matching template.
- </entry>
- </row>
- <row>
- <entry>Suppress construct completion</entry>
- <entry>If you type a construct like <literal>if</literal> or
- <literal>for</literal> and press this key, it
- will not be completed, and a space or tab will be inserted,
- depending on what the construct completion keybinding is set to.
- For example, if you have set the
- construct completion keybinding to <literal>space</literal>,
- then setting this to <literal>Shift+space</literal> will
- prevent construct completion and insert a space.
- </entry>
- </row>
- <row>
- <entry>Select current word</entry>
- <entry>Selects the current word under the cursor.
- </entry>
- </row>
- <row>
- <entry>Select current paragraph</entry>
- <entry>Selects the current paragraph under the cursor which is
- defined by two empty lines around it.
- </entry>
- </row>
- <row>
- <entry>Select current line</entry>
- <entry>Selects the current line under the cursor.
- </entry>
- </row>
- <row>
- <entry>Scroll to current line</entry>
- <entry>Scrolls the current line into the centre of the view.
- The cursor position and or an existing selection will not
- be changed.
- </entry>
- </row>
- <row>
- <entry>Insert alternative whitespace</entry>
- <entry>Inserts a tabulator character when spaces should be used for
- indentation and inserts space characters of the amount of a
- tabulator width when tabulators should be used for
- indentation.
- </entry>
- </row>
- <row>
- <entry>Find Usage</entry>
- <entry>Finds all occurrences of the current word (near the keyboard
- cursor) or selection 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>Geany</application>
- will beep and do nothing. See <xref linkend="search_gototag"/>.
- </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>Geany</application>
- will beep and do nothing. See <xref linkend="search_gototag"/>.
- </entry>
- </row>
- <row>
- <entry>Context Action</entry>
- <entry>Executes a command and passes the current word (near the
- cursor postion) or selection as an argument. See
- <xref linkend="editing_context_actions"/>.
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </para>
- </section>
- </chapter>
-
- <chapter id="config_files">
- <title>Configuration files</title>
- <section id="global_config">
- <title>Global configuration file</title>
- <para>
- You can use a global configuration file for <application>Geany</application> which
- will be used if the user starts <application>Geany</application> for the first
- time and an user's configuration file was not yet created or in case an user
- deleted the configuration file to use default values.
- </para>
- <para>
- The global configuration file is read from
- <filename>$prefix/share/geany/geany.conf</filename> (where $prefix is the path where
- <application>Geany</application> is installed) when starting
- <application>Geany</application> and an user configuration file does not exist. It
- can contain any settings which are found in the usual configuration file created by
- <application>Geany</application> but does not have to contain all settings.
- </para>
- <note>
- <para>
- This feature is mainly intended for package maintainers or system admins who
- want to set up <application>Geany</application> in a multi user environment
- and set some sane default values for this environment. Usual users won't need
- to do that.
- </para>
- </note>
- </section>
- <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>Geany</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
- <application>Geany</application> 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>Geany</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>
- These characters define word boundaries when
- making selections and searching using word matching
- options.
- </entry>
- <entry>(look at system filetypes.* files)</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
- (like '//', '#' or ';').
- </para></note>
- </entry>
- <entry>comment_use_indent=true</entry>
- </row>
- <row>
- <entry>context_action_cmd</entry>
- <entry><para>
- A command which can be executed on a certain word or
- the current selection. Example usage: Open the API
- documentation for the current function call at the
- cursor position. The command can be set for every
- filetype or if not set, a global command will be used.
- The command itself can be specified without the full
- path, then it is searched in $PATH. But for security
- reasons, it is recommended to specify the full path
- to the command. The wildcard %s will be replaced
- by the current word at the cursor position or by
- the current selection.
- </para>
- <para>
- Hint: for PHP files the following could be quite
- useful:
- <emphasis>
- context_action_cmd=firefox "http://www.php.net/%s"
- </emphasis>
- </para>
- </entry>
- <entry>context_action_cmd=devhelp -s "%s"</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </para>
- </section>
- <section>
- <title>[build_settings] Section</title>
- <para>
- <table frame="all" id="filetypes_build_settings">
- <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>Geany</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>default</entry>
- <entry>This is the default style. It is used for styling files
- without a filetype set.
- </entry>
- <entry>default=0x000000;0xffffff;false;false</entry>
- </row>
- <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>caret_width</entry>
- <entry>The width for the caret(the blinking cursor).
- Only the first argument is interpreted. The width is
- specified in pixels with a maximum of three pixel.
- Use the width 0 to make the caret invisible.
- </entry>
- <entry>caret=1;0;false;false</entry>
- </row>
- <row>
- <entry>current_line</entry>
- <entry>The style for colouring the background of the current
- line. Only the second and third arguments are interpreted.
- The second argument is the background colour.
- Use the third argument to enable or disable background
- highlighting for the current line (has to be true/false).
- </entry>
- <entry>current_line=0x0;0xe5e5e5;true;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 foreground colour or to use the colour
- defined by each filetype for the white space.
- The fourth argument defines whether to use the background
- colour.
- </entry>
- <entry>white_space=0xc0c0c0;0xffffff;true;true</entry>
- </row>
- <row>
- <entry>folding_style</entry>
- <entry>The style of folding icons. Only first and second
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list