geany/doc/geany.txt
Enrico Tröger f0b5dcbeb8 updated for Geany 0.7
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@406 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-06-04 13:10:16 +00:00

1317 lines
53 KiB
Plaintext

Geany 0.7
Enrico Troeger
Nick Treleaven
Frank Lanitz
Copyright © 2005-2006
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 in the appendix of this document.
_________________________________________________________
Table of Contents
1. Introduction
1.1. About Geany
1.2. About this document
1.3. Where to get it
1.4. License
2. Installation
2.1. Requirements
2.2. Source Compilation
2.3. Binary Packages
2.3.1. Fedora
2.3.2. Debian
2.3.3. SuSE
2.3.4. Gentoo
3. Usage
3.1. Getting Started
3.2. Command line options
3.3. General
3.3.1. Startup
3.3.2. Detection of a running instance
3.3.3. Global C tags
3.3.4. Virtual terminal emulator widget (VTE)
3.4. Search and Replace
3.5. Preferences
3.5.1. Compile time options
3.6. Build System
3.6.1. Compile
3.6.2. Build
3.6.3. Build with "make"
3.6.4. Build with make (custom target)
3.6.5. Execute
3.6.6. Set Includes and Arguments
3.6.7. File type configuration settings
3.7. Keybindings
3.8. Filetype definition files
3.8.1. Format
3.8.2. Special file filetypes.common
3.9. Templates
A. Geany key mapping
A.1. Geany key mapping
B. GNU General Public License
B.1. Preamble
B.2. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
MODIFICATION
B.2.1. Section 0
B.2.2. Section 1
B.2.3. Section 2
B.2.4. Section 3
B.2.5. Section 4
B.2.6. Section 5
B.2.7. Section 6
B.2.8. Section 7
B.2.9. Section 8
B.2.10. Section 9
B.2.11. Section 10
B.2.12. Section 11 NO WARRANTY
B.2.13. Section 12
B.3. How to Apply These Terms to Your New Programs
List of Tables
3-1. Command line Options
3-2. Regular expressions
3-3. Compile time options
3-4. Keybindings action table
3-5. General settings
3-6. Build settings
3-7. General settings
3-8. Template wildcards
List of Figures
3-1. Search dialog
3-2. General tab in preferences dialog
3-3. Editor tab in preferences dialog
3-4. Tools tab in preferences dialog
3-5. Template tab in preferences dialog
3-6. Keybinding tab in preferences dialog
3-7. VTE tab in preferences dialog
List of Examples
3-1. Comment indentation
_________________________________________________________
Chapter 1. Introduction
1.1. 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 from other packages. Another
goal was to be as independent as possible from a special
Desktop Environment like KDE or GNOME, so Geany only requires
the GTK2 toolkit and therefore you only need the GTK2 runtime
libraries installed to run it.
The basic features of Geany are:
* Syntax highlighting
* Code completion
* Auto completion of often used constructs like if, for and
while
* Auto completion of XML and HTML tags
* Call tips
* Many supported filetypes like C, Java, PHP, HTML, Python,
Perl, Pascal
* Tag/Symbol lists
_________________________________________________________
1.2. About this document
This documentation is available in various formats like HTML,
text and PDF. The latest version is always available at
http://geany.uvena.de.
_________________________________________________________
1.3. Where to get it
You can obtain Geany from http://geany.uvena.de or perhaps
from your distributor.
_________________________________________________________
1.4. 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 appendix of this document.
_________________________________________________________
Chapter 2. Installation
2.1. Requirements
For compiling Geany 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 http://www.gtk.org.
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.
_________________________________________________________
2.2. Source Compilation
Compiling Geany is quite easy. The following should do it:
% ./configure
% make
% make install
The configure script supports several common options, for a
detailed list, type
% ./configure --help
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 Geany with
dynamic linking loader support to automatically load
libvte.so.4 if available.
Geany has been successfully compiled and tested under Debian
3.1 Sarge, Debian 3.2 Etch, Fedora Core 4, LinuxFromScratch
and FreeBSD 6.0. It also compiles under Microsoft Windows(TM),
but there are lots of changes to the makefiles necessary.
If there are any errors during compilation, check your build
environment and try to find the error, otherwise contact the
author at <enrico.troeger@uvena.de>.
_________________________________________________________
2.3. Binary Packages
2.3.1. Fedora
You can use the Fedora Core 4 repository from
http://naturidentisch.de/packages/fc4/.
_________________________________________________________
2.3.2. Debian
Binary packages for Debian are available at
http://debian.uvena.de/. You can add one of the following
lines(depending on your system) to your apt sources.list to
automatically get the latest version of Geany:
deb http://debian.uvena.de/ ./stable/
deb http://debian.uvena.de/ ./testing/
_________________________________________________________
2.3.3. SuSE
Packages for SuSE are not yet available.
_________________________________________________________
2.3.4. Gentoo
An ebuild for Gentoo can be found on http://www.gentoo.de.
_________________________________________________________
Chapter 3. Usage
3.1. Getting Started
You can start Geany in the following ways:
* From the Desktop Environment menu
Choose in your application menu of your used Desktop
Environment: Development->Geany.
* From the command line
To start Geany from a command line, type the following and
press Return:
% geany
_________________________________________________________
3.2. Command line options
Table 3-1. Command line Options
Short option Long option Function
-n --no-ctags Do not load auto completion and call tip data.
Use this option if you do not want to use them. For more
information see Section 3.3.3.
-m --no-msgwin Do not show the message window. Use this option
if you do not need compiler messages or VTE support.
-p --no-pipe Do not open files in a running instance, force
opening a new instance.
-t --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,
then terminal-support is automatically disabled.
-l --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 only needed when the
autodetection does not work.
-c directory_name --config=directory_name Use an alternate
configuration directory. Default configuration directory is
~/.geany/ and there resides geany.conf and other configuration
files.
-d --debug Run Geany in debug mode, which means being verbose
and printing lots of information.
-? --help Show help information and exit.
-v --version Show version information and exit.
[files ...] Open all given files at startup. This option
causes Geany to ignore loading stored files from the last
session (if enabled).
Geany supports all generic GTK options, a list is available on
the help screen.
_________________________________________________________
3.3. General
3.3.1. Startup
At startup, Geany loads the first 15 files from the last time
Geany was launched. You can disable this feature in the
preferences dialog(see Figure 3-2). If you specify some files
on the command line, only these files will be opened, but you
can find the files from the last session in the file menu
under the "Recent files" item. This contains the last 15
recently opened files. It may be that Geany loads not exactly
15 session files, this depends on the compile time option
GEANY_SESSION_FILES; the default is 15. For details see
Section 3.5.1.
_________________________________________________________
3.3.2. Detection of a running instance
Geany detects an already running instance of itself and opens
new files in the already running one. So, you can use Geany
like an editor to view and edit files by opening them from
other programs. If you do not like this for some reason, you
can disable it with the appropriate command line option.
In the case that Geany crashed, you will get a message dialog
at the next start, which asks you whether to delete an
existing named pipe. If you are sure that there is no other
instance of Geany is running, you can say Yes and Geany will
start as usual. Otherwise click No and Geany will not start.
_________________________________________________________
3.3.3. Global C tags
If a C file (with extension .c, .cpp, .h, etc.) is opened, a
global tags file is loaded once, which contains many function
declarations from glibc and some other libraries, like X,
Bonobo, Gnome, GTK, Glib and so on. These declarations are
used for call tips and auto completion. These tags are only
useful if you are writing C or C++ source code, so if you know
that you do not need these things, you can skip loading this
tag file. To do so, start Geany with the argument "-n" or
"--no-ctags", for more information see Section 3.2.
_________________________________________________________
3.3.4. Virtual terminal emulator widget (VTE)
If you have installed libvte.so in 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 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 Section 3.2.
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).
Note
Geany tries to load libvte.so. If this fails, it tries to load
libvte.so.4. If this fails too, you should check whether you
installed libvte correctly. Again, Geany also runs without
this library.
It could be, that the library is called something else than
libvte.so.4 (e.g. on FreeBSD 6.0 it is called libvte.so.8). So
please set a link to the correct file (as root).
# ln -s /usr/lib/libvte.so.X /usr/lib/libvte.so.4
Obviously, you have to adjust the paths and set X to the
number of your libvte.so.
_________________________________________________________
3.4. Search and Replace
You can use regular expressions in the search dialog, just by
activating the check box (see the image below). Detailed
information about special characters can be found in the Table
3-2.
Figure 3-1. Search dialog
[find_dialog.jpg]
Table 3-2. Regular expressions
In a regular expression, the following characters are
interpreted:
. Matches any character.
\( This marks the start of a region for tagging a match.
\) This marks the end of a tagged region.
\n 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.
\< This matches the start of a word.
\> This matches the end of a word.
\x 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.
[...] 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.
[^...] The complement of the characters in the set. For
example, [^A-Za-z] means any character except an alphabetic
character.
$ This matches the end of a line.
* This matches 0 or more times. For example, Sa*m matches Sm,
Sam, Saam, Saaam and so on.
+ This matches 1 or more times. For example, Sa+m matches Sam,
Saam, Saaam and so on.
_________________________________________________________
3.5. Preferences
should be written
Figure 3-2. General tab in preferences dialog
[pref_dialog_gen.jpg]
Figure 3-3. Editor tab in preferences dialog
[pref_dialog_edit.jpg]
Figure 3-4. Tools tab in preferences dialog
[pref_dialog_tools.jpg]
Figure 3-5. Template tab in preferences dialog
[pref_dialog_templ.jpg]
Figure 3-6. Keybinding tab in preferences dialog
[pref_dialog_keys.jpg]
Note
For more information see Section 3.7.
Figure 3-7. VTE tab in preferences dialog
[pref_dialog_vte.jpg]
_________________________________________________________
3.5.1. Compile time options
There are some options which can only be changed at compile
time. To change these options, edit the file src/geany.h. Look
for a block of lines starting with "#define GEANY_*". Any
definitions which are not listed here should not be changed.
Table 3-3. Compile time options
Option Description Default
GEANY_MAX_OPEN_FILES The limit to how many files can be open
at the same time. 25
GEANY_SESSION_FILES How many files should be reopened from the
last run. Obviously, the value should be smaller than
GEANY_MAX_OPEN_FILES. 15
GEANY_WORDCHARS These characters define word boundaries. (look
at sourcecode)
GEANY_MAX_AUTOCOMPLETE_WORDS How many auto completion
suggestions should Geany provide. 30
GEANY_STRING_UNTITLED A string used as the default name for
new files. Be aware that the string can be translated, so
change it only if you know what you are doing. untitled
GEANY_CHECK_FILE_DELAY Time in seconds between checking a file
for external changes. 30
GEANY_WINDOW_MINIMAL_WIDTH The minimal width of the main
window. 620
GEANY_WINDOW_MINIMAL_HEIGHT The minimal height of the main
window. 440
GEANY_WINDOW_DEFAULT_WIDTH The default width of the main
window at the first start. 900
GEANY_WINDOW_DEFAULT_HEIGHT The default height of the main
window at the first start. 600
_________________________________________________________
3.6. Build System
Geany has an integrated build system. When you compile, link,
syntax check or otherwise process a source file, the output
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 Geany will switch
to the relevant source file (if it is open) and mark the line
number so the problem can be corrected.
Depending on the current file's filetype, the Build menu will
contain the following items:
* Compile
* Build
* Build with "make"
* Build with make (custom target)
* Execute
* Set Includes and Arguments
_________________________________________________________
3.6.1. Compile
By default, the Compile command is setup to build binary
object files for compilable languages such as C and C++.
Java 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 the language interpreter.
_________________________________________________________
3.6.2. Build
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.
Interpreted languages do not use the Build command.
_________________________________________________________
3.6.3. Build with "make"
This effectively runs "make all" in the same directory as the
current file. The Make tool path must be correctly set in the
Tools tab of the Preferences dialog.
_________________________________________________________
3.6.4. Build with make (custom target)
This is identical to running 'Build with "make"' 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" (but using the full path to the Make tool set
in Preferences).
_________________________________________________________
3.6.5. Execute
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. 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.
_________________________________________________________
3.6.6. Set Includes and Arguments
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. Note that 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.
These settings are not saved when Geany is shut down. See
below for how to set permanent arguments.
If you need complex settings for your build system, or several
different settings, then writing a Makefile and using 'Build
with "make"' is recommended.
_________________________________________________________
3.6.7. File type configuration settings
You can set the commands to run for compiling, building or
executing by opening the relevant filetypes.* configuration
file, and checking the build_settings section. See Section 3.8
for more information.
_________________________________________________________
3.7. Keybindings
For all listed actions 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.
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 Ctrl-O is
set, but you can also define Alt-O, so that the file open
dialog is shown by pressing either Ctrl-O or Alt-O.
The following table lists all available actions for keyboard
shortcuts.
Table 3-4. Keybindings action table
Action Description
Menu items
menu_new Creates a new file.
menu_open Opens a file.
menu_save Saves the current file.
menu_saveall Saves all open files.
menu_closeall Closes all open files.
menu_reloadfile Reloads the current file. All unsaved changes
will be lost.
menu_undo Undoes the last action.
menu_redo Redoes the last action.
menu_preferences Opens preferences dialog.
menu_findnext Finds next result.
menu_findprevious Finds previous result.
menu_replace Opens the replace dialog.
menu_gotoline Opens the Go To Line dialog.
menu_opencolorchooser Opens the colour chooser dialog.
menu_fullscreen Switches to fullscreen mode.
menu_messagewindow Toggles the message window (status and
compiler messages) on and off.
menu_zoomin Zooms in the text
menu_zoomout Zooms out the text
menu_replacetabs Replaces all tabs with the right amount of
spaces.
menu_foldall Folds all contractible code blocks.
menu_unfoldall Unfolds all contracted code blocks.
Build options
build_compile Compiles the current file.
build_link Builds (compiles if necessary and links) the
current file.
build_make Builds the current file with the Make tool.
build_makeowntarget Builds the current file with the Make tool
and a given target.
build_run Executes the current file in a terminal emulation.
build_run2 Executes the current file in a terminal emulation.
build_options Opens the build options dialog.
Miscellaneous
reloadtaglist Reloads the tag/symbol list.
switch_editor Switches to editor widget.
switch_scribble Switches to scribble widget.
switch_vte Switches to VTE widget.
switch_tableft Switches to the previous open document.
switch_tabright Switches to the next open document.
toggle_sidebar Shows or hides the sidebar.
Editing operations
edit_duplicateline Duplicates the current line.
edit_commentline Comments current line or selection.
edit_autocomplete Shows auto completion list.
edit_calltip Shows call tips for the current function or
method.
edit_macrolist Shows a list of available macros and variables
in the workspace.
edit_suppresscompletion If you type something like if or for
and press this key, it will not be auto completed.
_________________________________________________________
3.8. Filetype definition files
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.
The system-wide configuration files can be found in
$prefix/share/geany and are called filetypes.$ext, where
$prefix is the path where Geany is installed (commonly
/usr/local) and $ext is the name of the filetype. For every
filetype there is a corresponding definition file. There is
one exception: filetypes.common - this file is for general
settings, which are not specific to a certain filetype. It is
not recommended to edit the system-wide files, because they
will be overridden when Geany is updated.
To change the settings, copy a file from $prefix/share/geany
to the subdirectory filedefs in your configuration directory
(usually ~/.geany/).
For example:
% cp /usr/local/share/geany/filetypes.c /home/username/.geany/filedefs/
Then you can edit the file and the changes are also available
after an update of Geany because they reside in your
configuration directory. Alternatively, you can create a file
~/.geany/filedefs/filetypes.X and add only these settings you
want to change. All missing settings will be read from the
corresponding global definition file in $prefix/share/geany.
_________________________________________________________
3.8.1. Format
3.8.1.1. [styling] Section
In this section the colours for syntax highlighting are
defined. The format is always:
key=forground_colour;background_colour;bold;italic
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.
_________________________________________________________
3.8.1.2. [keywords] Section
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
The keywords list must be in one line without line ending
characters.
_________________________________________________________
3.8.1.3. [settings] Section
Table 3-5. General settings
Key Description Example
wordchars Word delimiting characters. These characters define
word boundaries. (look at sourcecode)
comment_open 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. comment_open=/*
comment_close If multiline comments are used, this is the
character or string to close the comment. comment_close=*/
comment_use_indent 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.
Example 3-1. Comment indentation
comment_use_indent=true would generate this if a line is
commented (e.g. with Ctrl-D)
#command_example();
comment_use_indent=false would generate this if a line is
commented (e.g. with Ctrl-D)
#command_example();
Note
This setting only works for single line comments.
comment_use_indent=true
_________________________________________________________
3.8.1.4. [build_settings] Section
Table 3-6. Build settings
Key Description Example
compiler 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.
You should quote the filename to also support filenames with
spaces. The following wildcards for filenames are available:
* %f - complete filename without path
* %e - filename without path and without extension
compiler=gcc -Wall -c "%f"
linker 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 Geany. This
item works well with GNU gcc, but may be problematic with
other compilers (esp. with the linker). linker=gcc -Wall "%f"
run_cmd 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. run_cmd="./%e"
_________________________________________________________
3.8.2. Special file filetypes.common
There is a special filetype definition file called
filetypes.common. This file defines some general
non-filetype-specific settings.
Table 3-7. General settings
Key Description Example
default The default style for text (e.g. for files without
filetype). For the detailed format, please see the above
"[styling] Section". default=0x000000;0xffffff;false;false
selection The style for colouring selections. Only foreground
and background colour are interpreted.
selection=0xc0c0c0;0x00007F;false;false
brace_good The style for brace highlighting when a matching
brace was found. brace_good=0xff0000;0xFFFFFF;true;false
brace_bad The style for brace highlighting when no matching
brace was found. brace_bad=0x0000ff;0xFFFFFF;true;false
current_line The style for colouring the background of the
current line. Only the second argument is interpreted.
current_line=0x0;0xE5E5E5;false;false
folding_style The style of folding icons. Only first and
second arguments are used.
Valid values for the first argument are:
* 1 - for boxes
* 2 - for circles
Valid values for the second argument are:
* 1 - for straight lines
* 2 - for curved lines
folding_style=1;1;false;false
_________________________________________________________
3.9. Templates
Geany supports several templates for file headers, multiline
comments (frame comments), function descriptions, a typical
ChangeLog entry and a short GPL notice. To use these
templates, just open the Edit menu or open the popup menu by
right-clicking in the editor widget, and choose "Insert
Comments" and insert templates as you want.
Some templates (like file header or ChangeLog entry) will
always be inserted at the top of the file.
To insert a function description, the cursor must be inside of
the function, so that the function name can be determined
automatically. The description will be positioned correctly
one line above the function, just check it out. If the cursor
is not inside of a function or the function name cannot be
determined, you cannot insert a function description.
Each template can be customized to your needs. The templates
are in the configuration directory, which is in ~/.geany/ (see
Section 3.2 for further information about the configuration
directory). Just open the desired template with an editor
(ideally Geany ;-) ) and edit the template as your needs.
There are some wildcards which will be automatically replaced
by Geany at startup.
All wildcards must be enclosed by "{" and "}", e.g. {date}.
In the configuration dialog you can find a tab "Templates"
(see Figure 3-5). You can define the default values which will
be inserted in the templates. You should restart Geany after
making changes, because they are only read at startup.
Since Geany 0.3 there are also templates for creating new
files. They can be found in ~/.geany/, too. All template files
for creating new files begin with template.filetype. followed
by the filetype. At creating a new file with a filetype
template, the template for the fileheader is automatically
prepended. Please note that the complete behaviour is still
under development and will probably be changed in one of the
next releases. Sorry.
Table 3-8. Template wildcards
Wildcard Description Available in following templates
developer The name of the developer. filetypes, file header,
function description, ChangeLog entry
initial The developer's initials, e.g. "ET" for Enrico Troeger
or "JFD" for John Foobar Doe. filetypes, file header, function
description, ChangeLog entry
mail The email address of the developer. file header, function
description, ChangeLog entry
company The company the developer is working for. filetypes,
file header, function description, ChangeLog entry
year The current year in the format: YYYY filetypes, file
header, function description, ChangeLog entry
version The initial version of a new file. filetypes, file
header, function description, ChangeLog entry
date The current date in the format: YYYY-MM-DD filetypes,
file header, function description, ChangeLog entry
untitled The string "untitled" (this will be translated to
your locale), used in filetype templates filetypes, file
header, function description, ChangeLog entry
geanyversion The actual Geany version, e.g. "Geany 0.7"
filetypes, file header, function description, ChangeLog entry
datetime The current date and time in the format: DD.MM.YYYY
HH:mm:ss ZZZZ file header, function description
filename The filename of the current file. Only available for
the file header template. file header
gpl This wildcard inserts a short GPL notice. file header
functionname The function name of the function at the cursor
position. This wildcard will only be replaced in the function
description template. function description
If you need any other wildcards or a special date/time format,
please email the author <enrico.troeger@uvena.de>.
_________________________________________________________
Appendix A. Geany key mapping
A.1. Geany key mapping
Since Geany 0.7, most of the keybindings are definable in the
preferences dialog. See Section 3.7.
_________________________________________________________
Appendix B. GNU General Public License
B.1. Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General
Public License is intended to guarantee your freedom to share
and change free software - to make sure the software is free
for all its users. This General Public License applies to most
of the Free Software Foundation's software and to any other
program whose authors commit to using it. (Some other Free
Software Foundation software is covered by the GNU Library
General Public License instead.) You can apply it to your
programs, too.
When we speak of free software, we are referring to freedom,
not price. Our General Public Licenses are designed to make
sure that you have the freedom to distribute copies of free
software (and charge for this service if you wish), that you
receive source code or can get it if you want it, that you can
change the software or use pieces of it in new free programs;
and that you know you can do these things.
To protect your rights, we need to make restrictions that
forbid anyone to deny you these rights or to ask you to
surrender the rights. These restrictions translate to certain
responsibilities for you if you distribute copies of the
software, or if you modify it.
For example, if you distribute copies of such a program,
whether gratis or for a fee, you must give the recipients all
the rights that you have. You must make sure that they, too,
receive or can get the source code. And you must show them
these terms so they know their rights.
We protect your rights with two steps:
1. copyright the software, and
2. offer you this license which gives you legal permission to
copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make
certain that everyone understands that there is no warranty
for this free software. If the software is modified by someone
else and passed on, we want its recipients to know that what
they have is not the original, so that any problems introduced
by others will not reflect on the original authors'
reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a
free program will individually obtain patent licenses, in
effect making the program proprietary. To prevent this, we
have made it clear that any patent must be licensed for
everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
_________________________________________________________
B.2. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
B.2.1. Section 0
This License applies to any program or other work which
contains a notice placed by the copyright holder saying it may
be distributed under the terms of this General Public License.
The "Program", below, refers to any such program or work, and
a "work based on the Program " means either the Program or any
derivative work under copyright law: that is to say, a work
containing the Program or a portion of it, either verbatim or
with modifications and/or translated into another language.
(Hereinafter, translation is included without limitation in
the term "modification ".) Each licensee is addressed as
"you".
Activities other than copying, distribution and modification
are not covered by this License; they are outside its scope.
The act of running the Program is not restricted, and the
output from the Program is covered only if its contents
constitute a work based on the Program (independent of having
been made by running the Program). Whether that is true
depends on what the Program does.
_________________________________________________________
B.2.2. Section 1
You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep
intact all the notices that refer to this License and to the
absence of any warranty; and give any other recipients of the
Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a
copy, and you may at your option offer warranty protection in
exchange for a fee.
_________________________________________________________
B.2.3. Section 2
You may modify your copy or copies of the Program or any
portion of it, thus forming a work based on the Program, and
copy and distribute such modifications or work under the terms
of Section 1 above, provided that you also meet all of these
conditions:
1. You must cause the modified files to carry prominent
notices stating that you changed the files and the date of
any change.
2. You must cause any work that you distribute or publish,
that in whole or in part contains or is derived from the
Program or any part thereof, to be licensed as a whole at
no charge to all third parties under the terms of this
License.
3. If the modified program normally reads commands
interactively when run, you must cause it, when started
running for such interactive use in the most ordinary way,
to print or display an announcement including an
appropriate copyright notice and a notice that there is no
warranty (or else, saying that you provide a warranty) and
that users may redistribute the program under these
conditions, and telling the user how to view a copy of
this License.
Note Exception:
If the Program itself is interactive but does not normally
print such an announcement, your work based on the Program is
not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the
Program, and can be reasonably considered independent and
separate works in themselves, then this License, and its
terms, do not apply to those sections when you distribute them
as separate works. But when you distribute the same sections
as part of a whole which is a work based on the Program, the
distribution of the whole must be on the terms of this
License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of
who wrote it.
Thus, it is not the intent of this section to claim rights or
contest your rights to work written entirely by you; rather,
the intent is to exercise the right to control the
distribution of derivative or collective works based on the
Program.
In addition, mere aggregation of another work not based on the
Program with the Program (or with a work based on the Program)
on a volume of a storage or distribution medium does not bring
the other work under the scope of this License.
_________________________________________________________
B.2.4. Section 3
You may copy and distribute the Program (or a work based on
it, under Section 2 in object code or executable form under
the terms of Sections 1 and 2 above provided that you also do
one of the following:
1. Accompany it with the complete corresponding
machine-readable source code, which must be distributed
under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
2. Accompany it with a written offer, valid for at least
three years, to give any third party, for a charge no more
than your cost of physically performing source
distribution, a complete machine-readable copy of the
corresponding source code, to be distributed under the
terms of Sections 1 and 2 above on a medium customarily
used for software interchange; or,
3. Accompany it with the information you received as to the
offer to distribute corresponding source code. (This
alternative is allowed only for noncommercial distribution
and only if you received the program in object code or
executable form with such an offer, in accord with
Subsection b above.)
The source code for a work means the preferred form of the
work for making modifications to it. For an executable work,
complete source code means all the source code for all modules
it contains, plus any associated interface definition files,
plus the scripts used to control compilation and installation
of the executable. However, as a special exception, the source
code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating
system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by
offering access to copy from a designated place, then offering
equivalent access to copy the source code from the same place
counts as distribution of the source code, even though third
parties are not compelled to copy the source along with the
object code.
_________________________________________________________
B.2.5. Section 4
You may not copy, modify, sublicense, or distribute the
Program except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense or distribute
the Program is void, and will automatically terminate your
rights under this License. However, parties who have received
copies, or rights, from you under this License will not have
their licenses terminated so long as such parties remain in
full compliance.
_________________________________________________________
B.2.6. Section 5
You are not required to accept this License, since you have
not signed it. However, nothing else grants you permission to
modify or distribute the Program or its derivative works.
These actions are prohibited by law if you do not accept this
License. Therefore, by modifying or distributing the Program
(or any work based on the Program), you indicate your
acceptance of this License to do so, and all its terms and
conditions for copying, distributing or modifying the Program
or works based on it.
_________________________________________________________
B.2.7. Section 6
Each time you redistribute the Program (or any work based on
the Program), the recipient automatically receives a license
from the original licensor to copy, distribute or modify the
Program subject to these terms and conditions. You may not
impose any further restrictions on the recipients' exercise of
the rights granted herein. You are not responsible for
enforcing compliance by third parties to this License.
_________________________________________________________
B.2.8. Section 7
If, as a consequence of a court judgment or allegation of
patent infringement or for any other reason (not limited to
patent issues), conditions are imposed on you (whether by
court order, agreement or otherwise) that contradict the
conditions of this License, they do not excuse you from the
conditions of this License. If you cannot distribute so as to
satisfy simultaneously your obligations under this License and
any other pertinent obligations, then as a consequence you may
not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the
Program by all those who receive copies directly or indirectly
through you, then the only way you could satisfy both it and
this License would be to refrain entirely from distribution of
the Program.
If any portion of this section is held invalid or
unenforceable under any particular circumstance, the balance
of the section is intended to apply and the section as a whole
is intended to apply in other circumstances.
It is not the purpose of this section to induce you to
infringe any patents or other property right claims or to
contest validity of any such claims; this section has the sole
purpose of protecting the integrity of the free software
distribution system, which is implemented by public license
practices. Many people have made generous contributions to the
wide range of software distributed through that system in
reliance on consistent application of that system; it is up to
the author/donor to decide if he or she is willing to
distribute software through any other system and a licensee
cannot impose that choice.
This section is intended to make thoroughly clear what is
believed to be a consequence of the rest of this License.
_________________________________________________________
B.2.9. Section 8
If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted
interfaces, the original copyright holder who places the
Program under this License may add an explicit geographical
distribution limitation excluding those countries, so that
distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the
limitation as if written in the body of this License.
_________________________________________________________
B.2.10. Section 9
The Free Software Foundation may publish revised and/or new
versions of the General Public License from time to time. Such
new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies a version number of this License which
applies to it and "any later version", you have the option of
following the terms and conditions either of that version or
of any later version published by the Free Software
Foundation. If the Program does not specify a version number
of this License, you may choose any version ever published by
the Free Software Foundation.
_________________________________________________________
B.2.11. Section 10
If you wish to incorporate parts of the Program into other
free programs whose distribution conditions are different,
write to the author to ask for permission. For software which
is copyrighted by the Free Software Foundation, write to the
Free Software Foundation; we sometimes make exceptions for
this. Our decision will be guided by the two goals of
preserving the free status of all derivatives of our free
software and of promoting the sharing and reuse of software
generally.
_________________________________________________________
B.2.12. Section 11 NO WARRANTY
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE
COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS
IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
_________________________________________________________
B.2.13. Section 12
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES
SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR
OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
_________________________________________________________
B.3. How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the
greatest possible use to the public, the best way to achieve
this is to make it free software which everyone can
redistribute and change under these terms.
To do so, attach the following notices to the program. It is
safest to attach them to the start of each source file to most
effectively convey the exclusion of warranty; and each file
should have at least the "copyright" line and a pointer to
where the full notice is found.
<one line to give the program's name and a brief idea of what
it does.> Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or
modify it 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.
This program is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
Also add information on how to contact you by electronic and
paper mail.
If the program is interactive, make it output a short notice
like this when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
type `show w'. This is free software, and you are welcome to
redistribute it under certain conditions; type `show c' for
details.
The hypothetical commands `show w' and `show c' should show
the appropriate parts of the General Public License. Of
course, the commands you use may be called something other
than `show w' and `show c'; they could even be mouse-clicks or
menu items--whatever suits your program.
You should also get your employer (if you work as a
programmer) or your school, if any, to sign a "copyright
disclaimer" for the program, if necessary. Here is a sample;
alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
program `Gnomovision' (which makes passes at compilers)
written by James Hacker.
<signature of Ty Coon>, 1 April 1989 Ty Coon, President of
Vice
This General Public License does not permit incorporating your
program into proprietary programs. If your program is a
subroutine library, you may consider it more useful to permit
linking proprietary applications with the library. If this is
what you want to do, use the GNU Library General Public
License instead of this License.