From b4f33106b1879f41b6c184ab74e267987091bd72 Mon Sep 17 00:00:00 2001 From: Nick Treleaven Date: Mon, 4 Oct 2010 10:51:03 +0000 Subject: [PATCH] Add some subheadings for Snippets section. git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5275 ea778897-0a13-0410-b9d1-a72fbfd435f5 --- ChangeLog | 10 +- doc/geany.html | 1808 ++++++++++++++++++++++++------------------------ doc/geany.txt | 12 +- 3 files changed, 918 insertions(+), 912 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7a2a1dca2..faf9824fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,11 +1,3 @@ -2010-10-02 Enrico Tröger - - * src/templates.c: - Strip the output of {command: } templates (closes #3079063). - * doc/geany.txt, doc/geany.html: - Document hidden msgwin_*_visible preferences. - - 2010-10-01 Nick Treleaven * src/tools.c, doc/geany.txt, doc/geany.html: @@ -14,6 +6,8 @@ * src/editor.c: Add snippet keybinding support for keys in user snippets.conf (based on patch by Eugene Arshinov, thanks). No docs yet. + * doc/geany.txt, doc/geany.html: + Add some subheadings for Snippets section. 2010-09-30 Nick Treleaven diff --git a/doc/geany.html b/doc/geany.html index a138cb2ca..24584fcac 100644 --- a/doc/geany.html +++ b/doc/geany.html @@ -3,7 +3,7 @@ - + Geany @@ -149,340 +149,340 @@ Stylesheet for Geany's documentation based on a version of John Gabriele. 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 also in the chapter GNU General Public License.

-
-

Contents

+of this program, and also in the chapter GNU General Public License.

+
+

Contents

-
-

Introduction

-
-

About Geany

+
+

Introduction

+
+

About Geany

Geany is a small and lightweight Integrated Development Environment. It was developed to provide a small and fast IDE, which has only a few dependencies on other packages. Another goal was to be as independent @@ -505,56 +505,56 @@ Pascal, and others

  • Plugin interface
  • -
    -

    Where to get it

    -

    You can obtain Geany from http://www.geany.org/ or perhaps also from +

    +

    Where to get it

    +

    You can obtain Geany from http://www.geany.org/ or perhaps also from your distribution. For a list of available packages, please see -http://www.geany.org/Download/ThirdPartyPackages.

    +http://www.geany.org/Download/ThirdPartyPackages.

    -
    -

    License

    +
    +

    License

    Geany 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 in the chapter, GNU General Public License.

    +code of this program and in the chapter, GNU General Public License.

    The included Scintilla library (found in the subdirectory -scintilla/) has its own license, which can be found in the chapter, -License for Scintilla and SciTE.

    +scintilla/) has its own license, which can be found in the chapter, +License for Scintilla and SciTE.

    -
    -

    About this document

    +
    +

    About this document

    This documentation is available in HTML and text formats. -The latest version can always be found at http://www.geany.org/.

    -

    If you want to contribute to it, see Contributing to this document.

    +The latest version can always be found at http://www.geany.org/.

    +

    If you want to contribute to it, see Contributing to this document.

    -
    -

    Installation

    -
    -

    Requirements

    +
    +

    Installation

    +
    +

    Requirements

    You will need the GTK (>= 2.8.0) libraries and their dependencies (Pango, GLib and ATK). Your distro should provide packages for these, usually installed by default. For Windows, you can download an installer from the website which bundles these libraries.

    -
    -

    Binary packages

    +
    +

    Binary packages

    There are many binary packages available. For an up-to-date but maybe -incomplete list see http://www.geany.org/Download/ThirdPartyPackages.

    +incomplete list see http://www.geany.org/Download/ThirdPartyPackages.

    -
    -

    Source compilation

    +
    +

    Source compilation

    Compiling Geany is quite easy. To do so, you need the GTK (>= 2.8.0) libraries and header files. You also need the Pango, GLib and ATK libraries and header files. -All these files are available at http://www.gtk.org, but very often +All these files are available at http://www.gtk.org, but very often your distro will provide development packages to save the trouble of building these yourself.

    Furthermore you need, of course, a C and C++ compiler. The GNU versions of these tools are recommended.

    -
    -

    Autotools based build system

    +
    +

    Autotools based build system

    The Autotools based build system is very mature and has been well tested. To use it, you just need the Make tool, preferably GNU Make.

    Then run the following commands:

    @@ -567,8 +567,8 @@ $ make % make install
    -
    -

    Waf based build system

    +
    +

    Waf based build system

    The Waf build system is still quite young and under heavy development but already in a usable state. In contrast to the Autotools system, Waf needs Python. So before using Waf, you need to install Python on your system. @@ -576,7 +576,7 @@ The advantage of the Waf build system over the Autotools based build system is t build process might be a bit faster. Especially when you use the Waf cache feature for repetitive builds (e.g. when changing only a few source files to test something) will become much faster since Waf will cache and re-use the -unchanged built files and only compile the changed code again. See Waf Cache for details. +unchanged built files and only compile the changed code again. See Waf Cache for details. To build Geany with Waf as run:

     $ ./waf configure
    @@ -586,13 +586,13 @@ $ ./waf build
     
     % ./waf install
     
    -
    -

    Waf Cache

    +
    +

    Waf Cache

    The Waf build system has a nice and interesting feature which can help to avoid a lot of unnecessary rebuilding of unchanged code. This often happens when developing new features or trying to debug something in Geany. Waf is able to store and retrieve the object files from a cache. This cache is declared -using the environment variable WAFCACHE. +using the environment variable WAFCACHE. A possible location of the cache directory could be ~/.cache/waf. In order to make use of this, you first need to create this directory:

    @@ -603,11 +603,11 @@ Bash and should be adjusted to your used shell):

     export WAFCACHE=/home/username/.cache/waf
     
    -

    Remember to replace username with your actual username.

    +

    Remember to replace username with your actual username.

    More information about the Waf cache feature are available at -http://code.google.com/p/waf/wiki/CacheObjectFiles.

    -
    -
    Cleaning the Cache
    +http://code.google.com/p/waf/wiki/CacheObjectFiles.

    +
    +
    Cleaning the Cache

    You should be careful about the size of the cache directory as it may grow rapidly over time. Waf doesn't do any cleaning or other house-keeping of the cache yet, so you need to keep it @@ -618,12 +618,12 @@ cached files:

    $ find /home/username/.cache/waf -mtime +14 -exec rm {} \;

    This will delete all files in the cache directory which are older than 14 days.

    -

    For details about the find command and its options, check its manual page.

    +

    For details about the find command and its options, check its manual page.

    -
    -

    Custom installation

    +
    +

    Custom installation

    The configure script supports several common options, for a detailed list, type:

    @@ -637,40 +637,40 @@ $ ./configure --help
     

    You may also want to read the INSTALL file for advanced installation options.

    -
    -

    Dynamic linking loader support and VTE

    +
    +

    Dynamic linking loader support and VTE

    In the case that your system lacks dynamic linking loader support, you -probably want to pass the option --disable-vte to the configure +probably want to pass the option --disable-vte to the configure script. This prevents compiling Geany with dynamic linking loader -support for automatically loading libvte.so.4 if available.

    +support for automatically loading libvte.so.4 if available.

    -
    -

    Build problems

    +
    +

    Build problems

    If there are any errors during compilation, check your build environment and try to find the error, otherwise contact the mailing list or one the authors. Sometimes you might need to ask for specific help from your distribution.

    -
    -

    Installation prefix

    +
    +

    Installation prefix

    If you want to edit any of Geany's system configuration files after installation you will need to know the installation prefix. Usually this is not necessary as you can just use per user configuration files and you will not need root permissions.

    -

    Use the --print-prefix option to Geany to check - see Command line +

    Use the --print-prefix option to Geany to check - see Command line options. The first path is the prefix.

    -

    This is commonly /usr if you installed from a binary package, or -/usr/local if you build from source.

    +

    This is commonly /usr if you installed from a binary package, or +/usr/local if you build from source.

    -
    -

    Usage

    -
    -

    Getting started

    +
    +

    Usage

    +
    +

    Getting started

    You can start Geany in the following ways:

    • From the Desktop Environment menu:

      @@ -686,8 +686,8 @@ Return:

    -
    -

    The Geany workspace

    +
    +

    The Geany workspace

    The Geany window is shown in the following figure:

    ./images/main_window.png

    The workspace has the following parts:

    @@ -715,8 +715,8 @@ Return:

    The sizes of the sidebar and message window can be adjusted by dragging the dividers.

    -
    -

    Command line options

    +
    +

    Command line options

    @@ -745,7 +745,7 @@ file foo.bar and place the cursor in line 7. @@ -756,7 +756,7 @@ for snippets configuration). +Generating a global tags file). @@ -812,7 +812,7 @@ authors to detect installation paths. @@ -830,7 +830,7 @@ geany --socket-file=/tmp/geany-sock-2

    @@ -869,13 +869,13 @@ geany some_file.foo:55:4

    Geany supports all generic GTK options, a list is available on the help screen.

    -
    -

    General

    -
    -

    Startup

    +
    +

    General

    +
    +

    Startup

    At startup, Geany loads all files from the last time Geany was launched. You can disable this feature in the preferences dialog -(see General Startup preferences). If you specify some +(see General Startup preferences). 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 @@ -886,8 +886,8 @@ load files from the last session. To run a second instance of Geany, do not specify any filenames on the command-line, or disable opening files in a running instance using the appropriate command line option.

    -
    -

    Opening files from the command-line in a running instance

    +
    +

    Opening files from the command-line in a running instance

    Geany detects if there is an an instance of itself already running and opens files from the command-line in that instance. So, Geany can be used to view and edit files by opening them from other programs @@ -896,22 +896,22 @@ such as a file manager.

     geany some_file.foo:55:4
     
    -

    This would open the file some_file.foo with the cursor on line 55, +

    This would open the file some_file.foo with the cursor on line 55, column 4.

    If you do not like this for some reason, you can disable using the first instance by using the appropriate command line option -- see the section -called Command line options.

    +called Command line options.

    -
    -

    Virtual terminal emulator widget (VTE)

    -

    If you have installed libvte.so on your system, it is loaded +

    +

    Virtual terminal emulator widget (VTE)

    +

    If you have installed libvte.so on your system, it is loaded automatically by Geany, and you will have a terminal widget in the notebook at the bottom.

    -

    If Geany cannot find any libvte.so at startup, the terminal widget +

    If Geany cannot find any libvte.so 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 Geany. Additionally, you can disable the use of the terminal widget by command line option, for more information -see the section called Command line options.

    +see the section called Command line options.

    You can use this terminal (from now on called VTE) much as you would a terminal program like xterm. There is basic clipboard support. You can paste the contents of the clipboard by pressing the right mouse @@ -928,26 +928,26 @@ should be found in the manual page of the shell. For zsh and bash you can use the argument --login.

    Note

    -

    Geany tries to load libvte.so. If this fails, it tries to load +

    Geany tries to load libvte.so. If this fails, it tries to load some other filenames. If this fails too, you should check whether you installed libvte correctly. Again note, Geany will run without this library.

    It could be, that the library is called something else than -libvte.so (e.g. on FreeBSD 6.0 it is called libvte.so.8). If so +libvte.so (e.g. on FreeBSD 6.0 it is called libvte.so.8). If so please set a link to the correct file (as root):

     # ln -s /usr/lib/libvte.so.X /usr/lib/libvte.so
     

    Obviously, you have to adjust the paths and set X to the number of your -libvte.so.

    +libvte.so.

    You can also specify the filename of the VTE library to use on the command -line (see the section called Command line options) or at compile time +line (see the section called Command line options) or at compile time by specifying the command line option --with-vte-module-path to ./configure.

    -
    -

    Defining own widget styles using .gtkrc-2.0

    +
    +

    Defining own widget styles using .gtkrc-2.0

    You can define your widget style for many of Geany's GUI parts. To do this, just edit your .gtkrc-2.0 (usually found in your home directory on UNIX-like systems and in the etc subdirectory of your @@ -987,10 +987,10 @@ widget "GeanyPrefsDialog" style "geanyStyle"

    -
    -

    Documents

    -
    -

    Switching between documents

    +
    +

    Documents

    +
    +

    Switching between documents

    The documents 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 @@ -998,14 +998,14 @@ order. Its is not alphabetical as shown in the documents list (regardless of whether or not editor tabs are visible).

    The tabs can be positioned at the top, bottom, left, or right of the main editing window, by a selection in the interface preferences.

    -

    See the Notebook tab keybindings section for useful +

    See the Notebook tab keybindings section for useful shortcuts including for Most-Recently-Used document switching.

    -
    -

    Character sets and Unicode Byte-Order-Mark (BOM)

    -
    -

    Using character sets

    +
    +

    Character sets and Unicode Byte-Order-Mark (BOM)

    +
    +

    Using character sets

    Geany provides support for detecting and converting character sets. So you can open and save files in different character sets, and even convert a file from one character set to another. To do this, @@ -1051,8 +1051,8 @@ encoding when opening the file.

    -
    -

    In-file encoding specification

    +
    +

    In-file encoding specification

    Geany detects meta tags of HTML files which contain charset information like:

    @@ -1079,7 +1079,7 @@ Then you simply add such a line to the file and Geany will open it
     correctly the next time.

    Since Geany 0.15 you can also use lines which match the regular expression used to find the encoding string: -coding[\t ]*[:=][\t ]*([a-z0-9-]+)[\t ]*

    +coding[\t ]*[:=][\t ]*([a-z0-9-]+)[\t ]*

    Note

    These specifications must be in the first 512 bytes of the file. @@ -1094,8 +1094,8 @@ Anything after the first 512 bytes will not be recognized.

    # coding: ISO-8859-15
    -
    -

    Special encoding "None"

    +
    +

    Special encoding "None"

    There is a special encoding "None" which uses no encoding. It is useful when you know that Geany cannot auto-detect the encoding of a file and it is not displayed correctly. Especially @@ -1104,10 +1104,10 @@ detection and open the file properly at least until the occurrence of the first NULL-byte. Using this encoding opens the file as it is without any character conversion.

    -
    -

    Unicode Byte-Order-Mark (BOM)

    +
    +

    Unicode Byte-Order-Mark (BOM)

    Furthermore, Geany detects a Unicode Byte Order Mark (see -http://en.wikipedia.org/wiki/Byte_Order_Mark for details). Of course, +http://en.wikipedia.org/wiki/Byte_Order_Mark for details). Of course, this feature is only available if the opened file is in a 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 @@ -1127,10 +1127,10 @@ safely ignore it.

    -
    -

    Editing

    -
    -

    Folding

    +
    +

    Editing

    +
    +

    Folding

    Geany provides basic code folding support. Folding means the ability to show and hide parts of the text in the current file. You can hide unimportant code sections and concentrate on the parts you are working on @@ -1144,7 +1144,7 @@ fold points.

    Note

    You can customize the folding icon and line styles - see the -filetypes.common Folding Settings.

    +filetypes.common Folding Settings.

    If you don't like it or don't need it at all, you can simply disable folding support completely in the preferences dialog.

    @@ -1159,8 +1159,8 @@ key while clicking on a fold symbol. That means, if the "Fold/Unfold all children of a fold point" option is enabled, pressing Shift will disable it for this click and vice versa.

    -
    -

    Column mode editing (rectangular selections)

    +
    +

    Column mode editing (rectangular selections)

    There is basic support for column mode editing. To use it, create a rectangular selection by holding down the Control and Shift keys (or Control and Alt if it doesn't work) while @@ -1169,18 +1169,18 @@ Once a rectangular selection exists you can start editing the text within this selection and the modifications will be done for every line in the selection.

    -
    -

    Drag and drop of text

    +
    +

    Drag and drop of text

    If you drag selected text in the editor widget of Geany 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 Geany 0.11 - before the selected text was copied to the new position.

    -
    -

    Indentation

    +
    +

    Indentation

    Geany allows each document to indent either with a tab character or -multiple spaces. The default indent mode is set in the Editor Features +multiple spaces. The default indent mode is set in the Editor Features preferences (see the link for more information). But this can be overridden using either the Document->Indent Type menu, or by using the Detect from file indentation preference. When enabled, @@ -1198,8 +1198,8 @@ as follows:

    on a line.
    -
    -

    Auto-indentation

    +
    +

    Auto-indentation

    When enabled, auto-indentation happens when pressing Enter in the Editor. It adds a certain amount of indentation to the new line so the user doesn't always have to indent each line manually.

    @@ -1219,8 +1219,8 @@ previous line. match the indentation of the line with the opening brace.
    -
    -

    Bookmarks

    +
    +

    Bookmarks

    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.

    @@ -1237,14 +1237,14 @@ 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.

    -
    -

    Code navigation history

    +
    +

    Code navigation history

    To ease navigation in source files and especially between different files, Geany lets you jump between different navigation points. Currently, this works for the following:

    -
    -

    Sending text through custom commands

    +
    +

    Sending text through custom commands

    You can define several custom commands in Geany and send the current selection to one of these commands using the Edit->Format->Send Selection to menu or keybindings. The output of the command will be @@ -1276,22 +1276,22 @@ delete a command, just clear the text entry and press OK. It will be deleted automatically.

    Normal shell quoting is supported, so you can do things like:

      -
    • sed 's/\./(dot)/g'
    • +
    • sed 's/\./(dot)/g'
    -

    The above example would normally be done with the Replace all +

    The above example would normally be done with the Replace all function, but it can be handy to have common commands already set up.

    -
    -

    Context actions

    +
    +

    Context actions

    You can execute the context action command on the current word at the cursor position or the available selection. This word or selection can be used as an argument to the command. The context action is invoked by a menu entry in the popup menu of the editor and also a keyboard shortcut (see the section called -Keybindings).

    +Keybindings).

    The command can be specified in the preferences dialog and also for each filetype (see "context_action_cmd" in the section called -Format). When the context action is invoked, the filetype +Format). When the context action is invoked, the filetype specific command is used if available, otherwise the command specified in the preferences dialog is executed.

    The current word or selection can be referred with the wildcard "%s" @@ -1306,19 +1306,19 @@ firefox "http://www.php.net/%s"

    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.

    +called firefox) and it will open the address: http://www.php.net/echo.

    -
    -

    Autocompletion

    +
    +

    Autocompletion

    Geany can offer a list of possible completions for symbols defined in the tags and for all words in a document.

    The autocompletion list for symbols is presented when the first few -characters of the symbol are typed (configurable, see Editor Completions +characters of the symbol are typed (configurable, see Editor Completions preferences, default 4) or when the Complete word -keybinding is pressed (configurable, see Editor keybindings, +keybinding is pressed (configurable, see Editor keybindings, default Ctrl-Space).

    When the defined keybinding is typed and the Autocomplete all words in -document preference (in Editor Completions preferences) +document preference (in Editor Completions preferences) is selected then the autocompletion list will show all matching words in the document, if there are no matching symbols.

    If you don't want to use autocompletion it can be dismissed until @@ -1330,13 +1330,13 @@ the autocompletion window is closed.

    item on the autocompletion list can be chosen from the list by pressing Enter/Return. You can also double-click to select an item. The sequence will be completed to match the chosen item, and if the Drop rest of -word on completion preference is set (in Editor Completions +word on completion preference is set (in Editor Completions preferences) then any characters after the cursor that match a symbol or word are deleted.

    -
    -

    Word part completion

    +
    +

    Word part completion

    By default, pressing Tab will complete the selected item by word part; -useful e.g. for adding the prefix gtk_combo_box_entry_ without typing it +useful e.g. for adding the prefix gtk_combo_box_entry_ without typing it manually:

    • gtk_com<TAB>
    • @@ -1345,12 +1345,12 @@ manually:

    • gtk_combo_box_entry_<s><ENTER>
    • gtk_combo_box_entry_set_text_column
    -

    The key combination can be changed from Tab - See Editor keybindings. +

    The key combination can be changed from Tab - See Editor keybindings. If you clear/change the key combination for word part completion, Tab will complete the whole word instead, like Enter.

    -
    -

    Scope autocompletion

    +
    +

    Scope autocompletion

    E.g.:

     struct
    @@ -1359,7 +1359,7 @@ struct
         char c;
     } foo;
     
    -

    When you type foo. it will show an autocompletion list with 'i' and +

    When you type foo. it will show an autocompletion list with 'i' and 'c' symbols.

    It only works for languages that set parent scope names for e.g. struct members. Currently this means C-like languages. The C tag parser only @@ -1367,27 +1367,28 @@ parses global scopes, so this won't work for structs or objects declared in local scope.

    -
    -

    User-definable snippets

    +
    +

    User-definable snippets

    Snippets are small strings or code constructs which can be replaced or completed to a more complex string. So you can save a lot of time when typing common strings and letting Geany do the work for you. To know what to complete or replace Geany reads a configuration file -called snippets.conf at startup.

    +called snippets.conf at startup.

    Maybe you need to often type your name, so define a snippet like this:

     [Default]
     myname=Enrico Tröger
     
    -

    Every time you write myname <TAB> in Geany, it will replace "myname" +

    Every time you write myname <TAB> in Geany, it will replace "myname" with "Enrico Tröger". The key to start autocompletion can be changed in the preferences dialog, by default it is TAB. The corresponding keybinding -is called Complete snippet.

    +is called Complete snippet.

    +

    Paths

    The system-wide configuration file can be found in -$prefix/share/geany, where $prefix is the path where Geany is -installed (see Installation prefix). It is not recommended to edit the +$prefix/share/geany, where $prefix is the path where Geany is +installed (see Installation prefix). It is not recommended to edit the system-wide file, because it will be overridden when Geany is updated.

    -

    To change the settings, copy the file from $prefix/share/geany +

    To change the settings, copy the file from $prefix/share/geany in your configuration directory (usually ~/.config/geany/).

    For example:

    @@ -1398,23 +1399,24 @@ after an update of Geany because the file resides in your
     configuration directory. Alternatively, you can create a file
     ~/.config/geany/snippets.conf and add only these settings you want
     to change. All missing settings will be read from the global snippets
    -file in $prefix/share/geany.

    -

    The file snippets.conf contains sections defining snippets that +file in $prefix/share/geany.

    +

    Snippet groups

    +

    The file snippets.conf contains sections defining snippets that are available for particular filetypes and in general.

    The two sections "Default" and "Special" apply to all filetypes. "Default" contains all snippets which are available for every filetype and "Special" contains snippets which can only be used in other snippets. So you can define often used parts of snippets and just use the special snippet as a placeholder (see the -snippets.conf for details).

    +snippets.conf for details).

    You can define sections with the name of a filetype eg "C++". The snippets in that section are only available for use in files with that filetype. Snippets in filetype sections will hide snippets with the same name in the "Default" section when used in a file of that filetype.

    +

    Substitution sequences for snippets

    To define snippets you can use several special character sequences which will be replaced when using the snippet:

    -

    Substitution Sequences for snippets

    --config=directory_name Use an alternate configuration directory. The default configuration directory is ~/.config/geany/ and that -is where geany.conf and other configuration files +is where geany.conf and other configuration files reside.
    none
    -g --generate-tags Generate a global tags file (see -Generating a global tags file).
    -P --no-preprocessing --no-terminal 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 libvte.so.4 installed, +at startup. If you do not have libvte.so.4 installed, then terminal-support is automatically disabled. Only available if Geany was compiled with support for VTE.
    --vte-lib Specify explicitly the path including filename or only the filename to the VTE library, e.g. -/usr/lib/libvte.so or libvte.so. This option is +/usr/lib/libvte.so or libvte.so. This option is only needed when the auto-detection does not work. Only available if Geany was compiled with support for VTE.
    @@ -1436,7 +1438,7 @@ to the current document's indent mode. @@ -1450,18 +1452,20 @@ section you can use %brace_open% in any other snippet.

    Snippet names must not contain spaces otherwise they won't work correctly. But beside that you can define almost any string as a snippet 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.

    +to existing contructs of certain programming languages(like if, +for, switch). Define whatever you need.

    +

    Template wildcards

    Since Geany 0.15 you can also use most of the available templates wildcards -listed in Template wildcards. All wildcards which are listed as +listed in Template wildcards. All wildcards which are listed as available in snippets can be used. For instance to improve the above example:

     [Default]
     myname=My name is {developer}
     mysystem=My system: {command:uname -a}
     
    -

    this will replace myname with "My name is " and the value of the template -preference developer.

    +

    this will replace myname with "My name is " and the value of the template +preference developer.

    +

    Word characters

    You can change the way Geany recognizes the word to complete, that is how the start and end of a word is recognised when the snippet completion is requested. The section "Special" may @@ -1470,8 +1474,8 @@ to be recognized as a word for completion. Leave it commented to use default characters or define it to add or remove characters to fit your needs.

    -
    -

    Inserting Unicode characters

    +
    +

    Inserting Unicode characters

    With GTK 2.10 and above, you can insert Unicode code points by hitting Ctrl-Shift-u, then still holding Ctrl-Shift, type some hex digits representing the code point for the character you want and hit Enter or Return (still @@ -1480,7 +1484,7 @@ holding Ctrl-Shift). If you release Ctrl-Shift before hitting Enter or Return character is also entered. In the case of Enter/Return, it is a newline, as you might expect.

    In some earlier versions of Geany, you might need to first unbind Ctrl-Shift-u -in the keybinding preferences, then select Tools->Reload Configuration +in the keybinding preferences, then select Tools->Reload Configuration or restart Geany. Note that it works slightly differently from other GTK applications, in that you'll need to continue to hold down the Ctrl and Shift keys while typing the code point hex digits (and the Enter or Return to finish the code point).

    @@ -1489,8 +1493,8 @@ is not necessary. One problem is that you may find the alphabetic keys conflict with other Geany keybindings.

    -
    -

    Search, replace and go to

    +
    +

    Search, replace and go to

    This section describes search-related commands from the Search menu and the editor window's popup menu:

      @@ -1503,30 +1507,30 @@ and the editor window's popup menu:

    • Go to tag declaration
    • Go to line
    -
    -

    Toolbar entries

    +
    +

    Toolbar entries

    There are also two toolbar entries:

    • Search bar
    • Go to line entry
    -

    There are keybindings to focus each of these - see Focus +

    There are keybindings to focus each of these - see Focus keybindings. Pressing Escape will then focus the editor.

    - -
    -

    Find

    +
    +

    Find

    The Find dialog is used for finding text in one or more open documents.

    ./images/find_dialog.png -
    -

    Matching options

    +
    +

    Matching options

    The syntax for the Use regular expressions option is shown in -Regular expressions.

    +Regular expressions.

    Note

    Use escape sequences is implied for regular expressions.

    @@ -1536,8 +1540,8 @@ into their UTF-8 equivalent. For example, \t will be transformed into a tab character. Other recognized symbols are: \\, \n, \r, \uXXXX (Unicode characters).

    -
    -

    Find all

    +
    +

    Find all

    To find all matches, click on the Find All expander. This will reveal several options:

      @@ -1552,8 +1556,8 @@ In Session does the same for all open documents.

      colored box. These markers can be removed by selecting the Remove Markers command from the Document menu.

    -
    -

    Change font in search dialog text fields

    +
    +

    Change font in search dialog text fields

    All search related dialogs use a Monospace for the text input fields to increase the readability of input text. This is useful when you are typing input such as regular expressions with spaces, periods and commas which @@ -1574,12 +1578,12 @@ of this style to the highest available. Otherwise, the style is ignored for the search dialogs.

    -
    -

    Find selection

    +
    +

    Find selection

    The Find Next/Previous Selection commands perform a search for the current selected text. If nothing is selected, by default the current word is used instead. This can be customized by the -find_selection_type hidden pref - see Hidden preferences.

    +find_selection_type hidden pref - see Hidden preferences.

    %cursor% Place the cursor at this position after completion has been done. You can define multiple %cursor% wildcards -and use the keybinding Move cursor in snippet to jump +and use the keybinding Move cursor in snippet to jump to the next defined cursor position in the completed snippet.
    @@ -1603,8 +1607,8 @@ word is used instead. This can be customized by the
    -
    -

    Find usage

    +
    +

    Find usage

    Find usage searches all open files. It is similar to the Find All In Session option in the Find dialog.

    If there is a selection, then it is used as the search text; otherwise @@ -1613,8 +1617,8 @@ 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.

    -
    -

    Find in files

    +
    +

    Find in files

    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 @@ -1622,7 +1626,7 @@ utility. GNU Grep is recommended (see note below).

    ./images/find_in_files_dialog.png

    The Files field optionally searches only files matching the patterns listed. Patterns are basic and shell-like, separated by a -space. To search all .c and .h files, use: *.c *.h.

    +space. To search all .c and .h files, use: *.c *.h.

    The Encoding field can be used to define the encoding of the files to be searched. The entered search text is converted to the chosen encoding and the search results are converted back to UTF-8.

    @@ -1634,13 +1638,13 @@ the grep tool.

    uses -r; both are GNU Grep options and may not work with other Grep implementations.

    -
    -

    Filtering out version control files

    +
    +

    Filtering out version control files

    When using the Recurse in subfolders option with a directory that's under version control, you can set the Extra options field to filter out version control files.

    If you have GNU Grep >= 2.5.2 you can use the --exclude-dir -argument to filter out CVS and hidden directories like .svn.

    +argument to filter out CVS and hidden directories like .svn.

    Example: --exclude-dir=.svn --exclude-dir=CVS

    If you have an older Grep, you can try using the --exclude flag to filter out filenames.

    @@ -1648,18 +1652,18 @@ to filter out filenames.

    The --exclude argument only matches the file name part, not the path.

    -
    -

    Replace

    +
    +

    Replace

    The Replace dialog is used for replacing text in one or more open documents.

    ./images/replace_dialog.png

    The Replace dialog has the same options for matching text as the Find -dialog. See the section Matching options.

    +dialog. See the section Matching options.

    The Use regular expressions option allows regular expressions to be used in the search string and back references in the replacement -text -- see the entry for '\n' in Regular expressions.

    -
    -

    Replace all

    +text -- see the entry for '\n' in Regular expressions.

    +
    +

    Replace all

    To replace several matches, click on the Replace All expander. This will reveal several options:

      @@ -1673,8 +1677,8 @@ documents. Replace All In Selection will replace all matching text in the current selection of the current document.

    -
    -

    Go to tag definition

    +
    +

    Go to tag definition

    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 @@ -1682,20 +1686,20 @@ current word is either the word nearest the edit cursor, or the word underneath the popup menu click position when the popup menu is used.

    -
    -

    Go to tag declaration

    +
    +

    Go to tag declaration

    Like Go to tag definition, but for a forward declaration such as a -C function prototype or extern declaration instead of a function +C function prototype or extern declaration instead of a function body.

    -
    -

    Go to line

    +
    +

    Go to line

    Go to a particular line number in the current file.

    -
    -

    Regular expressions

    +
    +

    Regular expressions

    You can use regular expressions in the Find and Replace dialogs -by selecting the Use regular expressions check box (see Matching +by selecting the Use regular expressions check box (see Matching options). The syntax is POSIX compatible, as described in the table below.

    @@ -1802,32 +1806,32 @@ Saam, Saaam and so on.

    Note

    This table is adapted from Scintilla and SciTE documentation, -distributed under the License for Scintilla and SciTE.

    +distributed under the License for Scintilla and SciTE.

    -
    -

    Tags

    +
    +

    Tags

    Tags are information that relates symbols in a program with the source file location of the declaration and definition.

    Geany has built-in functionality for generating tag information (aka "workspace tags") for supported filetypes when you open a file. You can also have Geany automatically load external tag files (aka "global tags files") upon startup, or manually using Tools --> Load Tags.

    -

    Geany uses its own tag file format, similar to what ctags uses +

    Geany uses its own tag file format, similar to what ctags uses (but is incompatible with ctags). You use Geany to generate global tags files, as described below.

    -
    -

    Workspace tags

    +
    +

    Workspace tags

    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 of symbols and calltips for all documents open in the current session that have the same filetype.

    The Go to Tag commands can be used with all workspace tags. See -Go to tag definition.

    +Go to tag definition.

    -
    -

    Global tags

    +
    +

    Global tags

    Global tags are used to provide autocompletion of symbols 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 @@ -1837,9 +1841,9 @@ the library.

  • Using the Load Tags command in the Tools menu.
  • By creating a directory ~/.config/geany/tags, and moving or symlinking the tags files there before starting Geany.
  • -
  • By creating a directory $prefix/share/geany/tags, and moving +
  • By creating a directory $prefix/share/geany/tags, and moving or symlinking the tags files there before starting Geany. -$prefix is the installation prefix (see Installation prefix).
  • +$prefix is the installation prefix (see Installation prefix).

    You can either download these files or generate your own. They have the format:

    @@ -1847,10 +1851,10 @@ the format:

    name.lang_ext.tags

    lang_ext is one of the extensions set for the filetype associated -with the tags. See the section called Filetype extensions for +with the tags. See the section called Filetype extensions for more information.

    -
    -

    Default global tags files

    +
    +

    Default global tags files

    For some languages, a list of global tags is loaded when the corresponding filetype is first used. Currently these are for:

      @@ -1862,27 +1866,27 @@ corresponding filetype is first used. Currently these are for:

    • Python
    -
    -

    Global tags file format

    +
    +

    Global tags file format

    Global tags files can have two different formats:

    • Tagmanager format
    • Pipe-separated format

    The first line of global tags files should be a comment, introduced -by # followed by a space and a string like format=pipe -or format=tagmanager respectively, these are case-sensitive. +by # followed by a space and a string like format=pipe +or format=tagmanager respectively, these are case-sensitive. This helps Geany to read the file properly. If this line is missing, Geany tries to auto-detect the used format but this might fail.

    The Tagmanager format is a bit more complex and is used for files -created by the geany -g command. There is one tag per line. +created by the geany -g command. There is one tag per line. Different tag attributes like the return value or the argument list are separated with different characters indicating the type of the following argument.

    The Pipe-separated format is easier to read and write. There is one tag per line and different tag attributes are separated -by the pipe character (|). A line looks like:

    +by the pipe character (|). A line looks like:

     basename|string|(string path [, string suffix])|
     
    @@ -1897,10 +1901,10 @@ currently unused and should be left empty.
    empty but the pipe separator must appear for them.

    You can easily write your own global tag files using this format. Just save them in your tags directory, as described earlier in the -section Global tags.

    +section Global tags.

    -
    -

    Generating a global tags file

    +
    +

    Generating a global tags file

    You can generate your own global tags files by parsing a list of source files. The command is:

    @@ -1908,12 +1912,12 @@ geany -g [-P] <Tag File> <File list>
     
    • Tag File filename should be in the format described earlier -- -see the section called Global tags.
    • +see the section called Global tags.
    • File list 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).
    • -P or --no-preprocessing disables using the C pre-processor -to process #include directives for C/C++ source files. Use this +to process #include directives for C/C++ source files. Use this option if you want to specify each source file on the command-line instead of using a 'master' header file. Also can be useful if you don't want to specify the CFLAGS environment variable.
    • @@ -1944,8 +1948,8 @@ copy of the generated tags file because it will get overwritten when upgrading Geany.

    -
    -

    Ignore tags

    +
    +

    Ignore tags

    You can also ignore certain tags if they would lead to wrong parsing of the code. Simply create a file called "ignore.tags" in your Geany configuration directory (usually ~/.config/geany/). Then list all tags @@ -1968,8 +1972,8 @@ identifiers is replaced by the second identifiers for parsing purposes. Exuberant Ctags.

    -
    -

    Preferences

    +
    +

    Preferences

    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 @@ -1980,17 +1984,17 @@ on it.

    persist between Geany sessions. The settings under the Document menu, however, are only for the current document and revert to defaults when restarting Geany.

    -

    There are also some rarer Hidden preferences.

    +

    There are also some rarer Hidden preferences.

    Note

    In the paragraphs that follow, the text describing a dialog tab comes after the screenshot of that tab.

    -
    -

    General Startup preferences

    +
    +

    General Startup preferences

    ./images/pref_dialog_gen_startup.png -
    -

    Startup

    +
    +

    Startup

    Load files from the last session
    On startup, load the same files you had open the last time you @@ -2001,8 +2005,8 @@ used Geany.
    Allow plugins to be used in Geany.
    -
    -

    Shutdown

    +
    +

    Shutdown

    Save window position and geometry
    Save the current position and size of the main window so next time @@ -2011,8 +2015,8 @@ you open Geany it's in the same location.
    Have a dialog pop up to confirm that you really want to quit Geany.
    -
    -

    Paths

    +
    +

    Paths

    Startup path
    Path to start in when opening or saving files. @@ -2030,11 +2034,11 @@ Leave blank to not set an additional lookup path.
    -
    -

    General Miscellaneous preferences

    +
    +

    General Miscellaneous preferences

    ./images/pref_dialog_gen_misc.png -
    -

    Miscellaneous

    +
    +

    Miscellaneous

    Beep on errors when compilation has finished
    Have the computer make a beeping sound when compilation of your program @@ -2045,10 +2049,10 @@ once a new status message arrives.
    Suppress status messages in the status bar

    Remove all messages from the status bar. The messages are still displayed in the status messages window.

    -
    +

    Tip

    Another option is to use the Switch to Editor keybinding - it -reshows the document statistics on the status bar. See Focus +reshows the document statistics on the status bar. See Focus keybindings.

    @@ -2061,8 +2065,8 @@ This works for the main editor widget, the scribble, the toolbar search field goto line fields and the VTE.
    -