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@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@btinternet.com</email></address> - </author> - <author> - <firstname>Frank</firstname> - <surname>Lanitz</surname> - <address><email>frank@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.