2007-05-21 15:24:27 +00:00
|
|
|
|
Geany 0.11
|
2005-11-22 12:26:26 +00:00
|
|
|
|
|
2006-08-09 17:18:25 +00:00
|
|
|
|
Enrico Tröger
|
2005-11-22 12:26:26 +00:00
|
|
|
|
|
2006-06-04 13:10:16 +00:00
|
|
|
|
Nick Treleaven
|
2005-11-22 12:26:26 +00:00
|
|
|
|
|
2006-06-04 13:10:16 +00:00
|
|
|
|
Frank Lanitz
|
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Copyright © 2005-2007
|
|
|
|
|
|
|
|
|
|
This document is distributed under the terms of the GNU General Public License
|
|
|
|
|
as published by the Free Software Foundation; either version 2 of the License,
|
|
|
|
|
or (at your option) any later version. A copy of this license can be found in
|
|
|
|
|
the file COPYING included with the source code of this program and see
|
|
|
|
|
Appendix D, GNU General Public License.
|
|
|
|
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
Table of Contents
|
|
|
|
|
|
|
|
|
|
1. Introduction
|
|
|
|
|
|
|
|
|
|
About Geany
|
|
|
|
|
About this document
|
|
|
|
|
Where to get it
|
|
|
|
|
License
|
|
|
|
|
|
|
|
|
|
2. Installation
|
|
|
|
|
|
|
|
|
|
Requirements
|
|
|
|
|
Source compilation
|
|
|
|
|
Binary packages
|
|
|
|
|
|
|
|
|
|
Fedora
|
|
|
|
|
Debian
|
|
|
|
|
SuSE
|
|
|
|
|
Gentoo
|
|
|
|
|
|
|
|
|
|
3. Usage
|
|
|
|
|
|
|
|
|
|
Getting started
|
|
|
|
|
Command line options
|
|
|
|
|
General
|
|
|
|
|
|
|
|
|
|
Startup
|
|
|
|
|
Opening files from the command-line in a running instance
|
|
|
|
|
Virtual terminal emulator widget (VTE)
|
|
|
|
|
Defining own widget styles using .gtkrc-2.0
|
|
|
|
|
|
|
|
|
|
Character sets and Unicode Byte-Order-Mark (BOM)
|
|
|
|
|
|
|
|
|
|
Using character sets
|
|
|
|
|
Special encoding "None"
|
|
|
|
|
Unicode Byte-Order-Mark (BOM)
|
|
|
|
|
|
|
|
|
|
Editing
|
|
|
|
|
|
|
|
|
|
Drag and drop of text
|
|
|
|
|
Auto indentation
|
|
|
|
|
Construct completion
|
|
|
|
|
Bookmarks
|
|
|
|
|
Send text through definable commands
|
|
|
|
|
Context actions
|
|
|
|
|
|
|
|
|
|
Search, replace and go to
|
|
|
|
|
|
|
|
|
|
Find
|
|
|
|
|
Find usage
|
|
|
|
|
Find in files
|
|
|
|
|
Replace
|
|
|
|
|
Go to tag definition
|
|
|
|
|
Go to tag declaration
|
|
|
|
|
Go to line
|
|
|
|
|
Regular expressions
|
|
|
|
|
|
|
|
|
|
Tags
|
|
|
|
|
|
|
|
|
|
Workspace tags
|
|
|
|
|
Global tags
|
|
|
|
|
|
|
|
|
|
Preferences
|
|
|
|
|
Project Management
|
|
|
|
|
|
|
|
|
|
New Project
|
|
|
|
|
Project Properties
|
|
|
|
|
Close Project
|
|
|
|
|
Open Project
|
|
|
|
|
|
|
|
|
|
Build system
|
|
|
|
|
|
|
|
|
|
Compile
|
|
|
|
|
Build
|
|
|
|
|
Make all
|
|
|
|
|
Make custom target
|
|
|
|
|
Make object
|
|
|
|
|
Execute
|
|
|
|
|
Stopping running processes
|
|
|
|
|
Set Includes and Arguments
|
|
|
|
|
Indicators
|
|
|
|
|
File type configuration settings
|
|
|
|
|
|
|
|
|
|
Printing support
|
|
|
|
|
Keybindings
|
|
|
|
|
|
|
|
|
|
4. Configuration files
|
|
|
|
|
|
|
|
|
|
Filetype definition files
|
|
|
|
|
|
|
|
|
|
Format
|
|
|
|
|
Special file filetypes.common
|
|
|
|
|
|
|
|
|
|
Filetype extensions
|
|
|
|
|
Templates
|
|
|
|
|
|
|
|
|
|
Template metadata
|
|
|
|
|
Filetype templates
|
|
|
|
|
Customizing templates
|
|
|
|
|
|
|
|
|
|
A. Contributing to this document
|
|
|
|
|
B. Scintilla keyboard commands
|
|
|
|
|
|
|
|
|
|
Keyboard commands
|
|
|
|
|
|
|
|
|
|
C. Compile time options
|
|
|
|
|
D. GNU General Public License
|
|
|
|
|
|
|
|
|
|
Preamble
|
|
|
|
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
|
|
|
|
|
|
|
|
Section 0
|
|
|
|
|
Section 1
|
|
|
|
|
Section 2
|
|
|
|
|
Section 3
|
|
|
|
|
Section 4
|
|
|
|
|
Section 5
|
|
|
|
|
Section 6
|
|
|
|
|
Section 7
|
|
|
|
|
Section 8
|
|
|
|
|
Section 9
|
|
|
|
|
Section 10
|
|
|
|
|
Section 11 NO WARRANTY
|
|
|
|
|
Section 12
|
|
|
|
|
|
|
|
|
|
How to Apply These Terms to Your New Programs
|
|
|
|
|
|
|
|
|
|
E. License for Scintilla and SciTE
|
|
|
|
|
|
|
|
|
|
List of Figures
|
|
|
|
|
|
|
|
|
|
3.1. Find dialog
|
|
|
|
|
3.2. Find in files dialog
|
|
|
|
|
3.3. Replace dialog
|
|
|
|
|
3.4. General tab in preferences dialog
|
|
|
|
|
3.5. Interface tab in preferences dialog
|
|
|
|
|
3.6. Toolbar tab in preferences dialog
|
|
|
|
|
3.7. Files tab in preferences dialog
|
|
|
|
|
3.8. Editor tab in preferences dialog
|
|
|
|
|
3.9. Tools tab in preferences dialog
|
|
|
|
|
3.10. Template tab in preferences dialog
|
|
|
|
|
3.11. Keybinding tab in preferences dialog
|
|
|
|
|
3.12. VTE tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
List of Tables
|
|
|
|
|
|
|
|
|
|
3.1. Command line Options
|
|
|
|
|
3.2. Regular expressions
|
|
|
|
|
3.3. Keybindings action table
|
|
|
|
|
4.1. General settings
|
|
|
|
|
4.2. Build settings
|
|
|
|
|
4.3. General settings
|
|
|
|
|
4.4. Template wildcards
|
|
|
|
|
B.1. Scintilla keyboard commands
|
|
|
|
|
C.1. Compile time options
|
|
|
|
|
|
|
|
|
|
List of Examples
|
|
|
|
|
|
|
|
|
|
4.1. Comment indentation
|
|
|
|
|
|
|
|
|
|
Chapter 1. Introduction
|
2006-06-04 13:10:16 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Table of Contents
|
2005-11-22 12:26:26 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
About Geany
|
|
|
|
|
About this document
|
|
|
|
|
Where to get it
|
|
|
|
|
License
|
2005-11-22 12:26:26 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
About Geany
|
2005-11-22 12:26:26 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
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.
|
2005-11-22 12:26:26 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
The basic features of Geany are:
|
2005-11-22 12:26:26 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
● 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 including C, Java, PHP, HTML, Python, Perl,
|
|
|
|
|
Pascal, and others
|
|
|
|
|
|
|
|
|
|
● Tag/Symbol lists
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Where to get it
|
|
|
|
|
|
|
|
|
|
You can obtain Geany from http://geany.uvena.de or perhaps from your
|
|
|
|
|
distributor.
|
|
|
|
|
|
|
|
|
|
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 or see Appendix D,
|
|
|
|
|
GNU General Public License.
|
|
|
|
|
|
|
|
|
|
The included Scintilla library (found in the subdirectory scintilla/) has its
|
|
|
|
|
own license, which can be found in the appendix (see Appendix E, License for
|
|
|
|
|
Scintilla and SciTE).
|
|
|
|
|
|
|
|
|
|
Chapter 2. Installation
|
|
|
|
|
|
|
|
|
|
Table of Contents
|
|
|
|
|
|
|
|
|
|
Requirements
|
|
|
|
|
Source compilation
|
|
|
|
|
Binary packages
|
|
|
|
|
|
|
|
|
|
Fedora
|
|
|
|
|
Debian
|
|
|
|
|
SuSE
|
|
|
|
|
Gentoo
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Source compilation
|
|
|
|
|
|
|
|
|
|
Compiling Geany is quite easy. The following should do it:
|
2005-12-21 19:42:55 +00:00
|
|
|
|
|
2005-11-22 12:26:26 +00:00
|
|
|
|
% ./configure
|
|
|
|
|
% make
|
|
|
|
|
% make install
|
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
The configure script supports several common options, for a detailed list, type
|
|
|
|
|
|
2005-11-22 12:26:26 +00:00
|
|
|
|
% ./configure --help
|
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
There also some compile time options which can be found in src/geany.h. Please
|
|
|
|
|
see Appendix C, Compile time options for more information.
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
4.0 Etch, Fedora Core 3/4/5, LinuxFromScratch and FreeBSD 6.0. It also compiles
|
|
|
|
|
under Microsoft Windows™.
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
>.
|
|
|
|
|
|
|
|
|
|
Binary packages
|
|
|
|
|
|
|
|
|
|
Fedora
|
|
|
|
|
|
|
|
|
|
You can use the Fedora Core 4 repository from http://naturidentisch.de/packages
|
|
|
|
|
/fc4/.
|
|
|
|
|
|
|
|
|
|
You can also use the Fedora Core 5 repository from http://naturidentisch.de/
|
|
|
|
|
packages/fc5/.
|
|
|
|
|
|
|
|
|
|
Debian
|
|
|
|
|
|
|
|
|
|
Geany is available through the official Debian archives.
|
|
|
|
|
|
|
|
|
|
apt-get install geany
|
|
|
|
|
|
|
|
|
|
SuSE
|
|
|
|
|
|
|
|
|
|
Packages for SuSE are not yet available.
|
|
|
|
|
|
|
|
|
|
Gentoo
|
|
|
|
|
|
|
|
|
|
An ebuild for Gentoo can be found on http://bugs.gentoo.de.
|
|
|
|
|
|
|
|
|
|
Chapter 3. Usage
|
|
|
|
|
|
|
|
|
|
Table of Contents
|
|
|
|
|
|
|
|
|
|
Getting started
|
|
|
|
|
Command line options
|
|
|
|
|
General
|
|
|
|
|
|
|
|
|
|
Startup
|
|
|
|
|
Opening files from the command-line in a running instance
|
|
|
|
|
Virtual terminal emulator widget (VTE)
|
|
|
|
|
Defining own widget styles using .gtkrc-2.0
|
|
|
|
|
|
|
|
|
|
Character sets and Unicode Byte-Order-Mark (BOM)
|
|
|
|
|
|
|
|
|
|
Using character sets
|
|
|
|
|
Special encoding "None"
|
|
|
|
|
Unicode Byte-Order-Mark (BOM)
|
|
|
|
|
|
|
|
|
|
Editing
|
|
|
|
|
|
|
|
|
|
Drag and drop of text
|
|
|
|
|
Auto indentation
|
|
|
|
|
Construct completion
|
|
|
|
|
Bookmarks
|
|
|
|
|
Send text through definable commands
|
|
|
|
|
Context actions
|
|
|
|
|
|
|
|
|
|
Search, replace and go to
|
|
|
|
|
|
|
|
|
|
Find
|
|
|
|
|
Find usage
|
|
|
|
|
Find in files
|
|
|
|
|
Replace
|
|
|
|
|
Go to tag definition
|
|
|
|
|
Go to tag declaration
|
|
|
|
|
Go to line
|
|
|
|
|
Regular expressions
|
|
|
|
|
|
|
|
|
|
Tags
|
|
|
|
|
|
|
|
|
|
Workspace tags
|
|
|
|
|
Global tags
|
|
|
|
|
|
|
|
|
|
Preferences
|
|
|
|
|
Project Management
|
|
|
|
|
|
|
|
|
|
New Project
|
|
|
|
|
Project Properties
|
|
|
|
|
Close Project
|
|
|
|
|
Open Project
|
|
|
|
|
|
|
|
|
|
Build system
|
|
|
|
|
|
|
|
|
|
Compile
|
|
|
|
|
Build
|
|
|
|
|
Make all
|
|
|
|
|
Make custom target
|
|
|
|
|
Make object
|
|
|
|
|
Execute
|
|
|
|
|
Stopping running processes
|
|
|
|
|
Set Includes and Arguments
|
|
|
|
|
Indicators
|
|
|
|
|
File type configuration settings
|
|
|
|
|
|
|
|
|
|
Printing support
|
|
|
|
|
Keybindings
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Command line options
|
|
|
|
|
|
|
|
|
|
Table 3.1. Command line Options
|
|
|
|
|
|
|
|
|
|
┌──────────┬────────────────┬─────────────────────────────────────────────────┐
|
|
|
|
|
│ Short │ Long option │ Function │
|
|
|
|
|
│ option │ │ │
|
|
|
|
|
├──────────┼────────────────┼─────────────────────────────────────────────────┤
|
|
|
|
|
│ │ --column │ Set initial column number for the first opened │
|
|
|
|
|
│ │ │ file. │
|
|
|
|
|
├──────────┼────────────────┼─────────────────────────────────────────────────┤
|
|
|
|
|
│ │ │ Use an alternate configuration directory. │
|
|
|
|
|
│ -c │ --config= │ Default configuration directory is ~/.geany/ │
|
|
|
|
|
│ dir_name │ directory_name │ 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. │
|
|
|
|
|
├──────────┼────────────────┼─────────────────────────────────────────────────┤
|
|
|
|
|
│ │ │ Do not open files in a running instance, force │
|
|
|
|
|
│ -i │ --new-instance │ opening a new instance. Only available if Geany │
|
|
|
|
|
│ │ │ was compiled with support for Sockets. │
|
|
|
|
|
├──────────┼────────────────┼─────────────────────────────────────────────────┤
|
|
|
|
|
│ -l │ --line │ Set initial line number for the first opened │
|
|
|
|
|
│ │ │ file. │
|
|
|
|
|
├──────────┼────────────────┼─────────────────────────────────────────────────┤
|
|
|
|
|
│ │ │ Do not show the message window. Use this option │
|
|
|
|
|
│ -m │ --no-msgwin │ if you do not need compiler messages or VTE │
|
|
|
|
|
│ │ │ support. │
|
|
|
|
|
├──────────┼────────────────┼─────────────────────────────────────────────────┤
|
|
|
|
|
│ -n │ --no-ctags │ Do not load auto completion and call tip data. │
|
|
|
|
|
│ │ │ Use this option if you do not want to use them. │
|
|
|
|
|
├──────────┼────────────────┼─────────────────────────────────────────────────┤
|
|
|
|
|
│ -s │ --no-session │ Don't load the previous session's files. │
|
|
|
|
|
├──────────┼────────────────┼─────────────────────────────────────────────────┤
|
|
|
|
|
│ │ │ Do not load terminal support. Use this option │
|
|
|
|
|
│ │ │ if you do not want to load the virtual terminal │
|
|
|
|
|
│ -t │ --no-terminal │ emulator widget 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. │
|
|
|
|
|
├──────────┼────────────────┼─────────────────────────────────────────────────┤
|
|
|
|
|
│ │ │ Specify explicitly the path including filename │
|
|
|
|
|
│ │ │ or only the filename to the VTE library, e.g. / │
|
|
|
|
|
│ │ --vte-lib │ usr/lib/libvte.so or libvte.so. This option is │
|
|
|
|
|
│ │ │ only needed when the autodetection does not │
|
|
|
|
|
│ │ │ work. Only available if Geany was compiled with │
|
|
|
|
|
│ │ │ support for VTE. │
|
|
|
|
|
├──────────┼────────────────┼─────────────────────────────────────────────────┤
|
|
|
|
|
│ -v │ --version │ Show version information and exit. │
|
|
|
|
|
├──────────┼────────────────┼─────────────────────────────────────────────────┤
|
|
|
|
|
│ -? │ --help │ Show help information and exit. │
|
|
|
|
|
├──────────┼────────────────┼─────────────────────────────────────────────────┤
|
|
|
|
|
│ │ │ Open all given files at startup. This option │
|
|
|
|
|
│ │ [files ...] │ 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.
|
|
|
|
|
|
|
|
|
|
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 Figure 3.4, “General tab
|
|
|
|
|
in preferences dialog”). If you specify some files on the command line, only
|
|
|
|
|
these files will be opened, but you can find the files from the last session in
|
|
|
|
|
the file menu under the "Recent files" item. By default this contains the last
|
|
|
|
|
10 recently opened files. You can change the amount of recently opened files in
|
|
|
|
|
the preferences dialog.
|
|
|
|
|
|
|
|
|
|
You can start several instances of Geany, but only the first will load files
|
|
|
|
|
from the last session. To run a second instance of Geany, do not specify any
|
|
|
|
|
filenames on the command-line, or disable opening files in a running instance
|
|
|
|
|
using the appropriate command line option.
|
|
|
|
|
|
|
|
|
|
Opening files from the command-line in a running instance
|
|
|
|
|
|
|
|
|
|
Geany detects an already running instance of itself and opens files from the
|
|
|
|
|
command-line in the already running instance. So, Geany can be used to view and
|
|
|
|
|
edit files by opening them from other programs such as a file manager. If you
|
|
|
|
|
do not like this for some reason, you can disable using the first instance by
|
|
|
|
|
using the appropriate command line option - see the section called “Command
|
|
|
|
|
line options”.
|
|
|
|
|
|
|
|
|
|
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 the section called
|
|
|
|
|
“Command line options”.
|
|
|
|
|
|
|
|
|
|
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).
|
|
|
|
|
|
|
|
|
|
In the preferences dialog you can specify a shell which should be started in
|
|
|
|
|
the VTE. To make the specified shell a login shell just use the appropriate
|
|
|
|
|
command line options for the shell. These options should be found in the manual
|
|
|
|
|
page of the shell. For zsh and bash you can use the argument --login.
|
|
|
|
|
|
|
|
|
|
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).
|
|
|
|
|
|
2005-12-21 19:42:55 +00:00
|
|
|
|
# ln -s /usr/lib/libvte.so.X /usr/lib/libvte.so.4
|
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Obviously, you have to adjust the paths and set X to the number of your
|
|
|
|
|
libvte.so.
|
|
|
|
|
|
|
|
|
|
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 Geany installation on Windows).
|
|
|
|
|
|
|
|
|
|
To get a defined style get noticed by Geany you must it assign to one of
|
|
|
|
|
Geany's widgets. To do so, use the following line:
|
|
|
|
|
|
|
|
|
|
widget "Geany*" style "geany_style"
|
|
|
|
|
|
|
|
|
|
This would assign your already defined style "geany_style" to all Geany
|
|
|
|
|
widgets. You can also assign styles only to specific widgets. At the moment you
|
|
|
|
|
can use the following widgets:
|
|
|
|
|
|
|
|
|
|
1. GeanyMainWindow
|
|
|
|
|
|
|
|
|
|
2. GeanyEditMenu
|
|
|
|
|
|
|
|
|
|
3. GeanyToolbarMenu
|
|
|
|
|
|
|
|
|
|
4. GeanyDialog
|
|
|
|
|
|
|
|
|
|
5. GeanyDialogPrefs
|
|
|
|
|
|
|
|
|
|
6. GeanyDialogProject
|
|
|
|
|
|
|
|
|
|
7. GeanyDialogSearch
|
|
|
|
|
|
|
|
|
|
Example of a simple .gtkrc-2.0:
|
|
|
|
|
|
|
|
|
|
style "geanyStyle"
|
|
|
|
|
{
|
|
|
|
|
font_name="Sans 12"
|
|
|
|
|
}
|
|
|
|
|
widget "GeanyMainWindow" style "geanyStyle"
|
|
|
|
|
|
|
|
|
|
style "geanyStyle"
|
|
|
|
|
{
|
|
|
|
|
font_name="Sans 10"
|
|
|
|
|
}
|
|
|
|
|
widget "GeanyPrefsDialog" style "geanyStyle"
|
|
|
|
|
|
|
|
|
|
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 can convert a file
|
|
|
|
|
from a character set to another one. To do this, Geany uses the character
|
|
|
|
|
conversion capabilities of the GLib.
|
|
|
|
|
|
|
|
|
|
Only text files are supported, i.e. opening files which contain NUL-bytes may
|
|
|
|
|
fail. Geany will try to open the file anyway but it is likely that the file
|
|
|
|
|
will be truncated because it can only opened up to the first occurrence of the
|
|
|
|
|
first NUL-byte. All characters after this position are lost and are not written
|
|
|
|
|
when you save the file.
|
|
|
|
|
|
|
|
|
|
Geany tries to detect the encoding of a file while opening it. It might be that
|
|
|
|
|
the encoding of a file cannot be detected correctly so you have to set manually
|
|
|
|
|
the encoding of the file in order to display it correctly. You can this in the
|
|
|
|
|
file open dialog by selecting an encoding in the drop down box or by reloading
|
|
|
|
|
the file with the file menu item "Reload as". The auto detection works well for
|
|
|
|
|
most encodings but there are also some encodings known where auto detection has
|
|
|
|
|
its problems. Auto detecting the encoding of a file is not easy and sometimes
|
|
|
|
|
an encoding might be detected not correctly.
|
|
|
|
|
|
|
|
|
|
There are different ways to use different encodings in Geany:
|
|
|
|
|
|
|
|
|
|
1. Using the file open dialog
|
|
|
|
|
|
|
|
|
|
This opens the file with the encoding specified in the encoding drop down
|
|
|
|
|
box. If the encoding is set to "Detect from file" auto detection will be
|
|
|
|
|
used. If the encoding is set to "Without encoding (None)" the file will be
|
|
|
|
|
opened without any character conversion and Geany will not try to auto
|
|
|
|
|
detect the encoding(see below for more information).
|
|
|
|
|
|
|
|
|
|
2. Using the "Reload as" menu item
|
|
|
|
|
|
|
|
|
|
This item reloads the current file with the specified encoding. It can help
|
|
|
|
|
if you opened a file and found out that a wrong encoding was used.
|
|
|
|
|
|
|
|
|
|
3. Using the "Set encoding" menu item
|
|
|
|
|
|
|
|
|
|
In contrary to the above two options, this will not change or reload the
|
|
|
|
|
current file unless you save it. It is useful when you want to change the
|
|
|
|
|
encoding of the file.
|
|
|
|
|
|
|
|
|
|
Special encoding "None"
|
|
|
|
|
|
|
|
|
|
There is a special encoding "None" which is actually no real encoding. It is
|
|
|
|
|
useful when you know that Geany cannot auto detect the encoding of a file and
|
|
|
|
|
it is not displayed correctly. Especially when the file contains NUL-bytes this
|
|
|
|
|
can be useful to skip auto detection and open the file properly at least until
|
|
|
|
|
the occurrence of the first NUL-byte. Using this encoding opens the file as it
|
|
|
|
|
is without any character conversion.
|
|
|
|
|
|
|
|
|
|
Unicode Byte-Order-Mark (BOM)
|
|
|
|
|
|
|
|
|
|
Furthermore, Geany detects an Unicode Byte Order Mark (see http://
|
|
|
|
|
en.wikipedia.org/wiki/Byte_Order_Mark for details). Of course, this feature is
|
|
|
|
|
only available if the opened file is in an unicode encoding. The Byte Order
|
|
|
|
|
Mark helps to detect the encoding of a file, e.g. whether it is UTF-16LE or
|
|
|
|
|
UTF-16BE and so on. On Unix-like systems using a Byte Order Mark could cause
|
|
|
|
|
some problems, e.g. the gcc stops with stray errors, PHP does not parse a
|
|
|
|
|
script containing a BOM and script files starting with a she-bang maybe cannot
|
|
|
|
|
be started. In the status bar you can easily see whether the file starts with a
|
|
|
|
|
BOM or not. If you want to set a BOM for a file or if you want to remove it
|
|
|
|
|
from a file, just use the document menu and toggle the checkbox.
|
|
|
|
|
|
|
|
|
|
Note
|
|
|
|
|
|
|
|
|
|
If you are unsure what a BOM is or if you do not understand where to use it,
|
|
|
|
|
then it is not important for you and you can safely ignore it.
|
|
|
|
|
|
|
|
|
|
Editing
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Auto indentation
|
|
|
|
|
|
|
|
|
|
Geany knows three types of auto indentation: None, Basic and Advanced.
|
|
|
|
|
|
|
|
|
|
Auto indentation types
|
|
|
|
|
|
|
|
|
|
None
|
|
|
|
|
|
|
|
|
|
Disables auto indentation completely.
|
|
|
|
|
|
|
|
|
|
Basic
|
|
|
|
|
|
|
|
|
|
Adds the same amount of whitespace on a new line as on the last line.
|
|
|
|
|
|
|
|
|
|
Advanced
|
|
|
|
|
|
|
|
|
|
Does the same as Basic but also indents curly brackets and adds a tabulator
|
|
|
|
|
character (or spaces) on a new line after an opening '{' brace.
|
|
|
|
|
|
|
|
|
|
Construct completion
|
|
|
|
|
|
|
|
|
|
Built-in construct completion is available for C-like languages. By default the
|
|
|
|
|
Tab key is used straight after typing the construct keyword.
|
|
|
|
|
|
|
|
|
|
Example: for<TAB>
|
|
|
|
|
|
|
|
|
|
typed into a C file expands to:
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < ; i++)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
To place a mark on a line, either left-mouse-click in the left margin of the
|
|
|
|
|
editor window, or else use Ctrl-m. Either way, this will produce a small green
|
|
|
|
|
plus symbol in the margin. You can have as many marks in a document as you
|
|
|
|
|
like. Click again (or use Ctrl-m again) to remove the bookmark. To remove all
|
|
|
|
|
the marks in a given document, use "Remove Markers" in the Document menu.
|
|
|
|
|
|
|
|
|
|
To navigate down your document, jumping from one mark to the next, use Ctrl-.
|
|
|
|
|
(control period). To go in the opposite direction on the page, use Ctrl-,
|
|
|
|
|
(control comma). Using the bookmarking feature together with the commands to
|
|
|
|
|
switch from one editor tab to another (Ctrl-PgUp/PgDn and Ctrl-Tab) provides a
|
|
|
|
|
particularly fast way to navigate around multiple files.
|
|
|
|
|
|
|
|
|
|
Send text through definable commands
|
|
|
|
|
|
|
|
|
|
You can define several custom commands in Geany and send the current selection
|
|
|
|
|
to one of these commands. The output of the command will be used to replace the
|
|
|
|
|
current selection. So, it is possible to use text formatting tools with Geany
|
|
|
|
|
in a general way. The selected text will be sent to the standard input of the
|
|
|
|
|
executed command, so the command should be able to read from it and it should
|
|
|
|
|
print all results to its standard output which will be read by Geany. To help
|
|
|
|
|
finding errors in executing the command, the output of the program's standard
|
|
|
|
|
error will be printed on Geany's standard output.
|
|
|
|
|
|
|
|
|
|
To add a custom command, just go to the Set Custom Commands dialog in the
|
|
|
|
|
Format sub menu of the Edit and Popup menu. Then click on Add to get a new text
|
|
|
|
|
entry and type the command. You can also specify some command line options. To
|
|
|
|
|
delete a command, just clear the text entry and press Ok. It will be deleted
|
|
|
|
|
automatically.
|
|
|
|
|
|
|
|
|
|
Context actions
|
|
|
|
|
|
|
|
|
|
You can execute a specified command on the current word near the cursor
|
|
|
|
|
position or an available selection and this word is passed as an argument to
|
|
|
|
|
this command. It can be used for example to open some API documentation in a
|
|
|
|
|
browser window or open any other external program. To do this, there is an menu
|
|
|
|
|
entry in the popup menu of the editor widget and also a keyboard shortcut(see
|
|
|
|
|
the section called “Keybindings”).
|
|
|
|
|
|
|
|
|
|
The command can be specified in the preferences dialog and additionally for
|
|
|
|
|
each filetype (see "context_action_cmd" in the section called “Format”). At
|
|
|
|
|
executing, the filetype specific command is used if available otherwise the
|
|
|
|
|
command specified in the preferences dialog is executed.
|
|
|
|
|
|
|
|
|
|
The passed word can be referred with the wildcard "%s" everywhere in the
|
|
|
|
|
command, before executing it will be replaced by the current word. For example,
|
|
|
|
|
the command to open the PHP API documentation would be:
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Search, replace and go to
|
|
|
|
|
|
|
|
|
|
This section describes search-related commands from the Search menu and the
|
|
|
|
|
editor window's popup menu:
|
|
|
|
|
|
|
|
|
|
● Find
|
|
|
|
|
|
|
|
|
|
● Find usage *
|
|
|
|
|
|
|
|
|
|
● Find in files
|
|
|
|
|
|
|
|
|
|
● Replace
|
|
|
|
|
|
|
|
|
|
● Go to tag definition *
|
|
|
|
|
|
|
|
|
|
● Go to tag declaration *
|
|
|
|
|
|
|
|
|
|
● Go to line
|
|
|
|
|
|
|
|
|
|
* These items are available from the editor window's popup menu, or by using a
|
|
|
|
|
keyboard shortcut (see the section called “Keybindings”).
|
|
|
|
|
|
|
|
|
|
Find
|
|
|
|
|
|
|
|
|
|
The Find dialog is used for finding text in one or more open documents.
|
|
|
|
|
|
|
|
|
|
Figure 3.1. Find dialog
|
|
|
|
|
|
|
|
|
|
Find dialog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Matching options
|
|
|
|
|
|
|
|
|
|
The syntax for the Use regular expressions option is shown in Table 3.2,
|
|
|
|
|
“Regular expressions”.
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
The Use escape sequences option will transform any escaped characters into
|
|
|
|
|
their UTF-8 equivalent. For example, \t will be transformed into a tab
|
|
|
|
|
character. Other recognised symbols are: \\, \n, \r, \uXXXX (Unicode
|
|
|
|
|
chararacters).
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Find all
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
To find all matches, click on the Find All expander. This will reveal several
|
|
|
|
|
options:
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
● In Document
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
● In Session
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
● Mark
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Find All In Document will show a list of matching lines in the current document
|
|
|
|
|
in the Messages tab of the Message Window. Find All In Session does the same
|
|
|
|
|
for all open documents.
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Mark will set markers for all matching lines in the current document, if the
|
|
|
|
|
Markers margin is visible. If not, the background colour of matching lines will
|
|
|
|
|
be highlighted. Markers and highlighting can be removed by selecting the Remove
|
|
|
|
|
Markers command from the Document menu.
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Find usage
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Find usage searches all open files. It is similar to the Find All In Session
|
|
|
|
|
Find dialog command.
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
If there is a selection, then it is used as the search text; otherwise the
|
|
|
|
|
current word is used. The current word is either taken from the word nearest
|
|
|
|
|
the edit cursor, or the word underneath the popup menu click position when the
|
|
|
|
|
popup menu is used. The search results are shown in the Messages tab of the
|
|
|
|
|
Message Window.
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Find in files
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Find in files is a more powerful version of Find usage that searches all files
|
|
|
|
|
in a certain directory using the Grep tool. The Grep tool must be correctly set
|
|
|
|
|
in Preferences to the path of the system's Grep utility. GNU Grep is
|
|
|
|
|
recommended.
|
2006-08-09 17:18:25 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Figure 3.2. Find in files dialog
|
2005-11-22 12:26:26 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Find in files dialog
|
2006-06-04 13:10:16 +00:00
|
|
|
|
|
2006-07-01 17:41:46 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
The Extra options field is used to pass any additional arguments to the grep
|
|
|
|
|
tool.
|
2006-07-01 17:41:46 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Filtering out version control files
|
2006-07-01 17:41:46 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
When using the Recurse in subfolders option with a directory that's under
|
|
|
|
|
version control, you can set the Extra options field to use grep's --exclude
|
|
|
|
|
flag to filter out filenames.
|
2006-06-04 13:10:16 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
SVN Example: --exclude=*.svn-base
|
2006-06-04 13:10:16 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
Note
|
2006-06-04 13:10:16 +00:00
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
The GNU Grep project added support for excluding directories, using the
|
|
|
|
|
--exclude-dir flag. At the time of writing (April 2007) this is unreleased
|
|
|
|
|
outside of version control. Check your Grep manual to see if your version
|
|
|
|
|
supports it.
|
|
|
|
|
|
|
|
|
|
Example: --exclude-dir=.* --exclude-dir=CVS
|
|
|
|
|
|
|
|
|
|
Replace
|
|
|
|
|
|
|
|
|
|
The Replace dialog is used for replacing text in one or more open documents.
|
|
|
|
|
|
|
|
|
|
Figure 3.3. Replace dialog
|
|
|
|
|
|
|
|
|
|
Replace dialog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The Replace dialog has the same options for matching text as the Find dialog.
|
|
|
|
|
See the section called “Matching options”.
|
|
|
|
|
|
|
|
|
|
The Use regular expressions option applies both to the search string and to the
|
|
|
|
|
replacement text; for the latter back references can be used - see the entry
|
|
|
|
|
for '\n' in Table 3.2, “Regular expressions”.
|
|
|
|
|
|
|
|
|
|
Replace all
|
|
|
|
|
|
|
|
|
|
To replace several matches, click on the Replace All expander. This will reveal
|
|
|
|
|
several options:
|
|
|
|
|
|
|
|
|
|
● In Document
|
|
|
|
|
|
|
|
|
|
● In Session
|
|
|
|
|
|
|
|
|
|
● In Selection
|
|
|
|
|
|
|
|
|
|
Replace All In Document will replace all matching text in the current document.
|
|
|
|
|
Replace All In Session does the same for all open documents. Replace All In
|
|
|
|
|
Selection will replace all matching text in the current selection of the
|
|
|
|
|
current document.
|
|
|
|
|
|
|
|
|
|
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 current word is either
|
|
|
|
|
taken from the word nearest the edit cursor, or the word underneath the popup
|
|
|
|
|
menu click position when the popup menu is used.
|
|
|
|
|
|
|
|
|
|
Go to tag declaration
|
|
|
|
|
|
|
|
|
|
Like Go to tag definition, but for a forward declaration such as a function
|
|
|
|
|
prototype or extern declaration instead of a function body.
|
|
|
|
|
|
|
|
|
|
Go to line
|
|
|
|
|
|
|
|
|
|
Go to a particular line number in the current file.
|
|
|
|
|
|
|
|
|
|
Regular expressions
|
|
|
|
|
|
|
|
|
|
You can use regular expressions in the Find and Replace dialogs by selecting
|
|
|
|
|
the Use regular expressions check box. The syntax is POSIX-like, as described
|
|
|
|
|
below in Table 3.2, “Regular expressions”.
|
|
|
|
|
|
|
|
|
|
Note
|
|
|
|
|
|
|
|
|
|
Searching backwards with regular expressions is not supported.
|
|
|
|
|
|
|
|
|
|
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. │
|
|
|
|
|
├────────┼────────────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ │ Where n is 1 through 9 refers to the first through ninth tagged │
|
|
|
|
|
│ \n │ 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. │
|
|
|
|
|
├────────┼────────────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ │ This allows you to use a character x that would otherwise have a │
|
|
|
|
|
│ \x │ special meaning. For example, \[ would be interpreted as [ and not │
|
|
|
|
|
│ │ as the start of a character set. Use \\ for a literal backslash. │
|
|
|
|
|
├────────┼────────────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ │ 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 start of a line (unless used inside a set, see │
|
|
|
|
|
│ │ above). │
|
|
|
|
|
├────────┼────────────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ $ │ 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. │
|
|
|
|
|
└────────┴────────────────────────────────────────────────────────────────────┘
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Partial POSIX compatibility
|
|
|
|
|
|
|
|
|
|
Note that the POSIX '?' regular expression character for optional matching is
|
|
|
|
|
not supported by the Find and Replace dialogs.
|
|
|
|
|
|
|
|
|
|
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 and calltips in other documents open in the current session.
|
|
|
|
|
|
|
|
|
|
The Go to Tag commands can be used with all workspace tags. See the section
|
|
|
|
|
called “Go to tag definition”.
|
|
|
|
|
|
|
|
|
|
Global tags
|
|
|
|
|
|
|
|
|
|
Global tags are used to provide autocompletion and calltips without having to
|
|
|
|
|
open the corresponding source files. This is intended for library APIs, as the
|
|
|
|
|
tags file only has to be updated when you upgrade the library.
|
|
|
|
|
|
|
|
|
|
You can load a custom global tags file in two ways:
|
|
|
|
|
|
|
|
|
|
● Using the Load Tags command in the File menu.
|
|
|
|
|
|
|
|
|
|
● By creating a directory ~/.geany/tags, and moving or symlinking the tags
|
|
|
|
|
files there before starting Geany.
|
|
|
|
|
|
|
|
|
|
You can either download these files or generate your own. They have the format:
|
|
|
|
|
|
|
|
|
|
libraryname.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 more information.
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
● C - GTK+ and GLib
|
|
|
|
|
|
|
|
|
|
● Pascal
|
|
|
|
|
|
|
|
|
|
● PHP
|
|
|
|
|
|
|
|
|
|
● HTML - &symbol; completion, e.g. for ampersand, copyright, etc.
|
|
|
|
|
|
|
|
|
|
● LaTeX
|
|
|
|
|
|
|
|
|
|
Generating a global tags file
|
|
|
|
|
|
|
|
|
|
Filetypes support
|
|
|
|
|
|
|
|
|
|
Currently this is not yet supported for Pascal, PHP and LaTeX filetypes.
|
|
|
|
|
|
|
|
|
|
You can generate your own global tags files by parsing a list of source files.
|
|
|
|
|
The command is:
|
|
|
|
|
|
|
|
|
|
geany -g <Tag File> <File list>
|
|
|
|
|
|
|
|
|
|
● Tag File should be in the format described earlier - 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).
|
|
|
|
|
|
|
|
|
|
Example for the wxD library for the D programming language:
|
|
|
|
|
|
|
|
|
|
geany -g wxd.d.tags /home/username/wxd/wx/*.d
|
|
|
|
|
|
|
|
|
|
Generating C/C++ tag files
|
|
|
|
|
|
|
|
|
|
For C/C++ tag files, gcc and grep are required, so that header files can be
|
|
|
|
|
preprocessed to include any other headers they depend upon.
|
|
|
|
|
|
|
|
|
|
For C/C++ files, the environment variable CFLAGS should be set with appropriate
|
|
|
|
|
-I/path include paths. The following example works with the bash shell,
|
|
|
|
|
generating tags for the GnomeUI library:
|
|
|
|
|
|
|
|
|
|
CFLAGS=`pkg-config --cflags libgnomeui-2.0` geany -g gnomeui.c.tags
|
|
|
|
|
/usr/include/libgnomeui-2.0/gnome.h
|
|
|
|
|
|
|
|
|
|
You can adapt this command to use CFLAGS and header files appropriate for
|
|
|
|
|
whichever libraries you want.
|
|
|
|
|
|
|
|
|
|
Replacing the default C/C++ tags file
|
|
|
|
|
|
|
|
|
|
Geany currently uses a default global tags file global.tags for C and C++,
|
|
|
|
|
commonly installed in /usr/share/geany. This file can be replaced with one
|
|
|
|
|
containing tags parsed from a different set of header files. When Geany is next
|
|
|
|
|
started, your custom tags file will be loaded instead of the default
|
|
|
|
|
global.tags. You should keep a copy of the generated tags file because it will
|
|
|
|
|
get overwritten when upgrading Geany.
|
|
|
|
|
|
|
|
|
|
This is a temporary solution - in later versions this will be unnecessary.
|
|
|
|
|
|
|
|
|
|
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 sessions. Note that most
|
|
|
|
|
settings here have descriptive popup bubble help -- just hover the mouse over
|
|
|
|
|
the item in question to get help on it.
|
|
|
|
|
|
|
|
|
|
You may also adjust some View settings (under the View menu) that persist
|
|
|
|
|
between Geany sessions. The settings under the Document menu, however, are only
|
|
|
|
|
for the current document and revert to defaults when restarting Geany.
|
|
|
|
|
|
|
|
|
|
Note, in the paragraphs that follow, the text describing a dialog tab (if
|
|
|
|
|
present) comes after the screenshot of that tab.
|
|
|
|
|
|
|
|
|
|
Figure 3.4. General tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
General tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The "Context Activation" setting needs to be documented.
|
|
|
|
|
|
|
|
|
|
Figure 3.5. Interface tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
Interface tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The open files list and the editor tabs are two different ways to switch
|
|
|
|
|
between documents using the mouse. When you hit the key combination to move
|
|
|
|
|
between tabs, the order is determined by the tab order, not alphabetical as
|
|
|
|
|
shown in the open files list (regardless whether or not editor tabs are
|
|
|
|
|
visible).
|
|
|
|
|
|
|
|
|
|
Figure 3.6. Toolbar tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
Toolbar tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Figure 3.7. Files tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
Files tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Figure 3.8. Editor tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
Editor tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Line wrapping refers to the display of the text in the editor. Currently, there
|
|
|
|
|
is no setting to have Geany automatically insert newlines into your document
|
|
|
|
|
while you type.
|
|
|
|
|
|
|
|
|
|
Figure 3.9. Tools tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
Tools tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Figure 3.10. Template tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
Template tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Figure 3.11. Keybinding tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
Keybinding tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There are some handy commands in here that are not, by default, bound to a key
|
|
|
|
|
combination, and may in fact not even be available as a menu item (for example,
|
|
|
|
|
the very handy "Hide and show all additional widgets").
|
|
|
|
|
|
|
|
|
|
Note
|
|
|
|
|
|
|
|
|
|
For more information see the section called “Keybindings”.
|
|
|
|
|
|
|
|
|
|
Figure 3.12. VTE tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
VTE tab in preferences dialog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Project Management
|
|
|
|
|
|
|
|
|
|
Project Management is optional in Geany. Currently it can be used for:
|
|
|
|
|
|
|
|
|
|
● Running Make from the project's base directory.
|
|
|
|
|
|
|
|
|
|
● Setting a custom Run command specific to the project.
|
|
|
|
|
|
|
|
|
|
As long as a project is open, the Make and Run commands will use the project's
|
|
|
|
|
settings, instead of the defaults. These will be used whichever document is
|
|
|
|
|
currently displayed.
|
|
|
|
|
|
|
|
|
|
The current project's settings are saved when it is closed, or when Geany is
|
|
|
|
|
shutdown. When restarting Geany, the previously opened project file that was in
|
|
|
|
|
use at the end of the last session will be reopened.
|
|
|
|
|
|
|
|
|
|
New Project
|
|
|
|
|
|
|
|
|
|
To create a new project, fill in the Name field. By default this will setup a
|
|
|
|
|
new project file ~/projects/name.geany. Usually it's best to store all your
|
|
|
|
|
project files in the same directory (they are independent of any source
|
|
|
|
|
directory trees).
|
|
|
|
|
|
|
|
|
|
The Base path text field is setup to use ~/projects/name. This can safely be
|
|
|
|
|
set to any existing path - it will not touch the file structure contained in
|
|
|
|
|
it.
|
|
|
|
|
|
|
|
|
|
Project Properties
|
|
|
|
|
|
|
|
|
|
You can set an optional description for the project, but it is not used
|
|
|
|
|
elsewhere by Geany.
|
|
|
|
|
|
|
|
|
|
The Base path field is used as the directory to run the Make command in.
|
|
|
|
|
|
|
|
|
|
The Run command overrides the default run command. You can set this to the
|
|
|
|
|
executable or main script file for the project, and append any command-line
|
|
|
|
|
arguments.
|
|
|
|
|
|
|
|
|
|
Close Project
|
|
|
|
|
|
|
|
|
|
Project file settings are saved when the project is closed.
|
|
|
|
|
|
|
|
|
|
Open Project
|
|
|
|
|
|
|
|
|
|
The Open command displays a standard file chooser, starting in ~/projects.
|
|
|
|
|
|
|
|
|
|
Build system
|
|
|
|
|
|
|
|
|
|
Geany has an integrated build system. Firstly this means that the current
|
|
|
|
|
source file will be saved before it is processed. This is for convenience so
|
|
|
|
|
that you don't need to keep saving small changes to the current file before
|
|
|
|
|
building.
|
|
|
|
|
|
|
|
|
|
Secondly the output for Compile, Build and Make actions will be captured in the
|
|
|
|
|
Compiler notebook tab of the messages window (assuming you have it visible). If
|
|
|
|
|
there are any warnings or errors with line numbers shown in the Compiler output
|
|
|
|
|
tab, you can double click on them and Geany will switch to the relevant source
|
|
|
|
|
file (if it is open) and mark the line number so the problem can be corrected.
|
|
|
|
|
Geany will also set indicators for warnings or errors with line numbers.
|
|
|
|
|
|
|
|
|
|
Depending on the current file's filetype, the Build menu will contain the
|
|
|
|
|
following items:
|
|
|
|
|
|
|
|
|
|
● Compile
|
|
|
|
|
|
|
|
|
|
● Build
|
|
|
|
|
|
|
|
|
|
● Make all
|
|
|
|
|
|
|
|
|
|
● Make custom target
|
|
|
|
|
|
|
|
|
|
● Make object
|
|
|
|
|
|
|
|
|
|
● Execute
|
|
|
|
|
|
|
|
|
|
● Set Includes and Arguments
|
|
|
|
|
|
|
|
|
|
Compile
|
|
|
|
|
|
|
|
|
|
The Compile command has different uses for different kinds of files.
|
|
|
|
|
|
|
|
|
|
For compilable languages such as C and C++, the Compile command is setup to
|
|
|
|
|
compile the current source file into a binary object file.
|
|
|
|
|
|
|
|
|
|
Java source files will be compiled to class file bytecode. Interpreted
|
|
|
|
|
languages such as Perl, Python, Ruby will compile to bytecode if the language
|
|
|
|
|
supports it, or will run a syntax check, or failing that will run the file in
|
|
|
|
|
its language interpreter.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Make all
|
|
|
|
|
|
|
|
|
|
This effectively runs "make all" in the same directory as the current file.
|
|
|
|
|
|
|
|
|
|
Note
|
|
|
|
|
|
|
|
|
|
For each of the Make commands, The Make tool path must be correctly set in the
|
|
|
|
|
Tools tab of the Preferences dialog.
|
|
|
|
|
|
|
|
|
|
Make custom target
|
|
|
|
|
|
|
|
|
|
This is similar to running 'Make all' but you will be prompted for the make
|
|
|
|
|
target name to be passed to the Make tool. For example, typing 'clean' in the
|
|
|
|
|
dialog prompt will run "make clean".
|
|
|
|
|
|
|
|
|
|
Make object
|
|
|
|
|
|
|
|
|
|
Make object will run "make current_file.o" in the same directory as the current
|
|
|
|
|
file, using its prefix for 'current_file'. It is useful for compiling just the
|
|
|
|
|
current file without building the whole project.
|
|
|
|
|
|
|
|
|
|
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 and accept the "-e" command line
|
|
|
|
|
argument to start a command.
|
|
|
|
|
|
|
|
|
|
After your program or script has finished executing, you will be prompted to
|
|
|
|
|
press the return key. This allows you to review any text output from the
|
|
|
|
|
program before the terminal window is closed.
|
|
|
|
|
|
|
|
|
|
Stopping running processes
|
|
|
|
|
|
|
|
|
|
When there is a running program, the Run button in the toolbar becomes a stop
|
|
|
|
|
button and you can stop the current action. This works by sending a signal to
|
|
|
|
|
the process (and its child process(es)) to stop the process. The used signal is
|
|
|
|
|
SIGQUIT.
|
|
|
|
|
|
|
|
|
|
Depending on the process you started it might occur that the process cannot be
|
|
|
|
|
stopped. This can happen when the process creates more than one child process.
|
|
|
|
|
Therefore stopping any make actions is not possible because make creates child
|
|
|
|
|
processes and these child processes creates again child process. There might be
|
|
|
|
|
some other programs which cannot be stopped correctly. Xterm is known to work
|
|
|
|
|
properly. If you are using "Terminal" (the terminal program of Xfce), you
|
|
|
|
|
should add the command line option "--disable-server" otherwise the started
|
|
|
|
|
process cannot be stopped. Just add this option in the preferences dialog on
|
|
|
|
|
the Tools tab in the terminal field.
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
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 the Make commands is recommended.
|
|
|
|
|
|
|
|
|
|
Indicators
|
|
|
|
|
|
|
|
|
|
Indicators are red squiggly underlines which are used to highlight errors which
|
|
|
|
|
occured while compiling the current file. So you can easily see where your code
|
|
|
|
|
failed to compile. To remove the indicators, just click on "Remove all
|
|
|
|
|
indicators" in the document file menu.
|
|
|
|
|
|
|
|
|
|
If you do not like this feature, you can disable it in the preferences dialog.
|
|
|
|
|
|
|
|
|
|
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 the section called “Filetype definition files” for more
|
|
|
|
|
information.
|
|
|
|
|
|
|
|
|
|
Printing support
|
|
|
|
|
|
|
|
|
|
Geany has basic printing support. This means you can print a file by passing
|
|
|
|
|
the filename of the current file to a command which actually prints the file.
|
|
|
|
|
However, the printed document contains no syntax highlighting. You can adjust
|
|
|
|
|
the command to which the filename is passed in the preferences dialog. The
|
|
|
|
|
default command is:
|
2006-07-01 17:41:46 +00:00
|
|
|
|
|
|
|
|
|
% lpr %f
|
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
%f will be substituted by the filename of the current file. Geany will not show
|
|
|
|
|
errors from the command itself, so you should make sure that it works before
|
|
|
|
|
(e.g. by trying to execute it from the command line).
|
|
|
|
|
|
|
|
|
|
A nicer example, which I prefer is:
|
2006-07-01 17:41:46 +00:00
|
|
|
|
|
|
|
|
|
% a2ps -1 --medium=A4 -o - %f | xfprint4
|
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
But this depends on a2ps and xfprint4. As a replacement for xfprint4, gtklp or
|
|
|
|
|
similar programs can be used.
|
|
|
|
|
|
|
|
|
|
Note
|
|
|
|
|
|
|
|
|
|
The printing support of Geany will be improved in the future. With GTK 2.10,
|
|
|
|
|
better printing (including syntax highlighting) will be possible.
|
|
|
|
|
|
|
|
|
|
Keybindings
|
|
|
|
|
|
|
|
|
|
Geany supports the default keyboard shortcuts for the Scintilla editing widget.
|
|
|
|
|
For a list of these commands, see Appendix B, Scintilla keyboard commands. The
|
|
|
|
|
Scintilla keyboard shortcuts will be overridden by any custom keybindings with
|
|
|
|
|
the same keyboard shortcut.
|
|
|
|
|
|
|
|
|
|
For all actions listed below you can define your own keybindings. Open the
|
|
|
|
|
Preferences dialog, select the desired action and click on change. In the
|
|
|
|
|
opening dialog you can press any key combination you want and it will be saved
|
|
|
|
|
when you press OK. You can define only one key combination for one action.
|
|
|
|
|
|
|
|
|
|
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 customizable keyboard shortcuts.
|
|
|
|
|
|
|
|
|
|
Table 3.3. Keybindings action table
|
|
|
|
|
|
|
|
|
|
┌──────────────┬──────────────────────────────────────────────────────────────┐
|
|
|
|
|
│ Action │ Description │
|
|
|
|
|
├──────────────┴──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Menu items │
|
|
|
|
|
├──────────────┬──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ New │ Creates a new file. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Open │ Opens a file. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Save │ Saves the current file. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Save As │ Saves the current file under a new name. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Save all │ Saves all open files. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Close all │ Closes all open files. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Close │ Closes the current file. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Reload file │ Reloads the current file. All unsaved changes will be lost. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Print │ Prints the current file. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Undo │ Undoes the last action. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Redo │ Redoes the last action. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Select all │ Makes a selection of all text in the current document. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Insert date │ Inserts a customisable date. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Preferences │ Opens preferences dialog. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Find Next │ Finds next result. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Find │ Finds previous result. │
|
|
|
|
|
│ Previous │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Replace │ Opens the Replace dialog. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Find in │ Opens the Find in files dialog. │
|
|
|
|
|
│ files │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Next message │ Jumps to the line with the next message from the last call │
|
|
|
|
|
│ │ to Find usage. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Go to line │ Opens the Go to line dialog. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Show Colour │ Opens the Colour Chooser dialog. │
|
|
|
|
|
│ Chooser │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Fullscreen │ Switches to fullscreen mode. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Toggle │ Toggles the message window (status and compiler messages) on │
|
|
|
|
|
│ Messages │ and off. │
|
|
|
|
|
│ Window │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Toggle │ Shows or hides the sidebar. │
|
|
|
|
|
│ Sidebar │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Toggle all │ Hide and show all additional widgets like the notebook tabs, │
|
|
|
|
|
│ additional │ the toolbar, the messages window and the statusbar. │
|
|
|
|
|
│ widgets │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Zoom In │ Zooms in the text │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Zoom Out │ Zooms out the text │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Replace tabs │ Replaces all tabs with the right amount of spaces. │
|
|
|
|
|
│ by space │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Fold all │ Folds all contractible code blocks. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Unfold all │ Unfolds all contracted code blocks. │
|
|
|
|
|
├──────────────┴──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Build options │
|
|
|
|
|
├──────────────┬──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Compile │ Compiles the current file. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Build │ Builds (compiles if necessary and links) the current file. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Make all │ Builds the current file with the Make tool. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Make custom │ Builds the current file with the Make tool and a given │
|
|
|
|
|
│ target │ target. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Make object │ Compiles the current file with the Make tool. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Next error │ Jumps to the line with the next error from the last build │
|
|
|
|
|
│ │ process. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Run │ Executes the current file in a terminal emulation. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Run │ │
|
|
|
|
|
│ (alternative │ Executes the current file in a terminal emulation. │
|
|
|
|
|
│ command) │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Build │ Opens the build options dialog. │
|
|
|
|
|
│ options │ │
|
|
|
|
|
├──────────────┴──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Miscellaneous │
|
|
|
|
|
├──────────────┬──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Reload │ Reloads the tag/symbol list. │
|
|
|
|
|
│ symbol list │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Switch to │ Switches to editor widget. │
|
|
|
|
|
│ Editor │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Switch to │ Switches to scribble widget. │
|
|
|
|
|
│ Scribble │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Switch to │ Switches to VTE widget. │
|
|
|
|
|
│ VTE │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Switch to │ Switches to the search bar in the toolbar (if visible). │
|
|
|
|
|
│ Search Bar │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Switch to │ │
|
|
|
|
|
│ left │ Switches to the previous open document. │
|
|
|
|
|
│ document │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Switch to │ │
|
|
|
|
|
│ right │ Switches to the next open document. │
|
|
|
|
|
│ document │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Switch to │ │
|
|
|
|
|
│ last used │ Switches to the previously selected open document. │
|
|
|
|
|
│ document │ │
|
|
|
|
|
├──────────────┴──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Editing operations │
|
|
|
|
|
├──────────────┬──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Convert │ │
|
|
|
|
|
│ selection to │ Converts the current selection to lower case. │
|
|
|
|
|
│ lower case │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Convert │ │
|
|
|
|
|
│ selection to │ Converts the current selection to upper case. │
|
|
|
|
|
│ upper case │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Duplicate │ │
|
|
|
|
|
│ line or │ Duplicates the current line or selection. │
|
|
|
|
|
│ selection │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Comment line │ Comments current line or selection. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Uncomment │ Uncomments current line or selection. │
|
|
|
|
|
│ line │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Toggle line │ Comments a line if it is not commented or removes a comment │
|
|
|
|
|
│ commentation │ if the line is commented. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Increase │ Indents the current line or selection by one tabulator. │
|
|
|
|
|
│ indent │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Decrease │ Removes one tabulator from the indentation of the current │
|
|
|
|
|
│ indent │ line or selection. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Goto │ If the cursor is ahead or behind a brace, then it is moved │
|
|
|
|
|
│ matching │ to the brace which belongs to the current one. If this │
|
|
|
|
|
│ brace │ keyboard shortcut is pressed again, the cursor is moved back │
|
|
|
|
|
│ │ to the first brace. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Toggle │ Set a marker on the current line, or clear the marker if │
|
|
|
|
|
│ marker │ there already is one. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Goto next │ Goto the next marker in the current document. │
|
|
|
|
|
│ marker │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Goto │ │
|
|
|
|
|
│ previous │ Goto the previous marker in the current document. │
|
|
|
|
|
│ marker │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Complete │ Shows auto completion list. │
|
|
|
|
|
│ word │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Show calltip │ Shows call tips for the current function or method. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Show macro │ Shows a list of available macros and variables in the │
|
|
|
|
|
│ list │ workspace. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Complete │ If you type a construct like if or for and press this key, │
|
|
|
|
|
│ construct │ it will be completed with a matching template. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ │ If you type a construct like if or for and press this key, │
|
|
|
|
|
│ │ it will not be completed, and a space or tab will be │
|
|
|
|
|
│ Suppress │ inserted, depending on what the construct completion │
|
|
|
|
|
│ construct │ keybinding is set to. For example, if you have set the │
|
|
|
|
|
│ completion │ construct completion keybinding to space, then setting this │
|
|
|
|
|
│ │ to Shift+space will prevent construct completion and insert │
|
|
|
|
|
│ │ a space. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Select │ Selects the current word under the cursor. │
|
|
|
|
|
│ current word │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Insert │ Inserts a tabulator character when spaces should be used for │
|
|
|
|
|
│ alternative │ indentation and inserts space characters of the amount of a │
|
|
|
|
|
│ whitespace │ tabulator width when tabulators should be used for │
|
|
|
|
|
│ │ indentation. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ │ Finds all occurrences of the current word (near the keyboard │
|
|
|
|
|
│ Find Usage │ cursor) or selection and displays them in the messages │
|
|
|
|
|
│ │ window. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ │ Jump to the definition of the current word (near the │
|
|
|
|
|
│ Go to tag │ keyboard cursor). If the definition cannot be found (e.g. │
|
|
|
|
|
│ definition │ the relevant file is not open) Geany will beep and do │
|
|
|
|
|
│ │ nothing. See the section called “Go to tag definition”. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ │ Jump to the declaration of the current word (near the │
|
|
|
|
|
│ Go to tag │ keyboard cursor). If the declaration cannot be found (e.g. │
|
|
|
|
|
│ declaration │ the relevant file is not open) Geany will beep and do │
|
|
|
|
|
│ │ nothing. See the section called “Go to tag definition”. │
|
|
|
|
|
├──────────────┼──────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ Context │ Executes a command and passes the current word (near the │
|
|
|
|
|
│ Action │ cursor postion) or selection as an argument. See the section │
|
|
|
|
|
│ │ called “Context actions”. │
|
|
|
|
|
└──────────────┴──────────────────────────────────────────────────────────────┘
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Chapter 4. Configuration files
|
|
|
|
|
|
|
|
|
|
Table of Contents
|
|
|
|
|
|
|
|
|
|
Filetype definition files
|
|
|
|
|
|
|
|
|
|
Format
|
|
|
|
|
Special file filetypes.common
|
|
|
|
|
|
|
|
|
|
Filetype extensions
|
|
|
|
|
Templates
|
|
|
|
|
|
|
|
|
|
Template metadata
|
|
|
|
|
Filetype templates
|
|
|
|
|
Customizing templates
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
2006-06-04 13:10:16 +00:00
|
|
|
|
% cp /usr/local/share/geany/filetypes.c /home/username/.geany/filedefs/
|
|
|
|
|
|
2007-05-21 15:24:27 +00:00
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Format
|
|
|
|
|
|
|
|
|
|
[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.
|
|
|
|
|
|
|
|
|
|
[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.
|
|
|
|
|
|
|
|
|
|
[settings] Section
|
|
|
|
|
|
|
|
|
|
Table 4.1. General settings
|
|
|
|
|
|
|
|
|
|
┌────────────────────┬───────────────────────────────────┬────────────────────┐
|
|
|
|
|
│ Key │ Description │ Example │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ These characters define word │ │
|
|
|
|
|
│ wordchars │ boundaries when making selections │ (look at system │
|
|
|
|
|
│ │ and searching using word matching │ filetypes.* files) │
|
|
|
|
|
│ │ options. │ │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ A character or string which is │ │
|
|
|
|
|
│ │ used to comment code. If you want │ │
|
|
|
|
|
│ comment_open │ to use multiline comments, also │ comment_open=/* │
|
|
|
|
|
│ │ set comment_close, otherwise │ │
|
|
|
|
|
│ │ leave it empty. │ │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ If multiline comments are used, │ │
|
|
|
|
|
│ comment_close │ this is the character or string │ comment_close=*/ │
|
|
|
|
|
│ │ to close the comment. │ │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ 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 4.1. Comment indentation │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ comment_use_indent=true would │ │
|
|
|
|
|
│ │ generate this if a line is │ │
|
|
|
|
|
│ │ commented (e.g. with Ctrl-D) │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ comment_use_indent │ #command_example(); │ comment_use_indent │
|
|
|
|
|
│ │ │ =true │
|
|
|
|
|
│ │ 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 (like '//', │ │
|
|
|
|
|
│ │ '#' or ';'). │ │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ A command which can be executed │ │
|
|
|
|
|
│ │ on a certain word or the current │ │
|
|
|
|
|
│ │ selection. Example usage: Open │ │
|
|
|
|
|
│ │ the API documentation for the │ │
|
|
|
|
|
│ │ current function call at the │ │
|
|
|
|
|
│ │ cursor position. The command can │ │
|
|
|
|
|
│ │ be set for every filetype or if │ │
|
|
|
|
|
│ │ not set, a global command will be │ │
|
|
|
|
|
│ │ used. The command itself can be │ │
|
|
|
|
|
│ │ specified without the full path, │ │
|
|
|
|
|
│ │ then it is searched in $PATH. But │ context_action_cmd │
|
|
|
|
|
│ context_action_cmd │ for security reasons, it is │ =devhelp -s "%s" │
|
|
|
|
|
│ │ recommended to specify the full │ │
|
|
|
|
|
│ │ path to the command. The wildcard │ │
|
|
|
|
|
│ │ %s will be replaced by the │ │
|
|
|
|
|
│ │ current word at the cursor │ │
|
|
|
|
|
│ │ position or by the current │ │
|
|
|
|
|
│ │ selection. │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ Hint: for PHP files the following │ │
|
|
|
|
|
│ │ could be quite useful: │ │
|
|
|
|
|
│ │ context_action_cmd=firefox "http: │ │
|
|
|
|
|
│ │ //www.php.net/%s" │ │
|
|
|
|
|
└────────────────────┴───────────────────────────────────┴────────────────────┘
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[build_settings] Section
|
|
|
|
|
|
|
|
|
|
Table 4.2. Build settings
|
|
|
|
|
|
|
|
|
|
┌──────────┬───────────────────────────────────────────────────────┬──────────┐
|
|
|
|
|
│ Key │ Description │ Example │
|
|
|
|
|
├──────────┼───────────────────────────────────────────────────────┼──────────┤
|
|
|
|
|
│ │ 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. │ compiler │
|
|
|
|
|
│ compiler │ │ =gcc │
|
|
|
|
|
│ │ You should quote the filename to also support │ -Wall -c │
|
|
|
|
|
│ │ filenames with spaces. The following wildcards for │ "%f" │
|
|
|
|
|
│ │ filenames are available: │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ ● %f - complete filename without path │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ ● %e - filename without path and without extension │ │
|
|
|
|
|
├──────────┼───────────────────────────────────────────────────────┼──────────┤
|
|
|
|
|
│ │ This item specifies the command to link the file. If │ │
|
|
|
|
|
│ │ the file is not already compiled, it will be compiled │ linker= │
|
|
|
|
|
│ linker │ while linking. The -o option is automatically added │ gcc │
|
|
|
|
|
│ │ by Geany. This item works well with GNU gcc, but may │ -Wall │
|
|
|
|
|
│ │ be problematic with other compilers (esp. with the │ "%f" │
|
|
|
|
|
│ │ linker). │ │
|
|
|
|
|
├──────────┼───────────────────────────────────────────────────────┼──────────┤
|
|
|
|
|
│ │ Use this item to execute your file. It has to have │ │
|
|
|
|
|
│ │ been built already. Use the %e wildcard to have only │ run_cmd= │
|
|
|
|
|
│ run_cmd │ the name of the executable (i.e. without extension) │ "./%e" │
|
|
|
|
|
│ │ or use the %f wildcard if you need the complete │ │
|
|
|
|
|
│ │ filename, e.g. for shell scripts. │ │
|
|
|
|
|
└──────────┴───────────────────────────────────────────────────────┴──────────┘
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Special file filetypes.common
|
|
|
|
|
|
|
|
|
|
There is a special filetype definition file called filetypes.common. This file
|
|
|
|
|
defines some general non-filetype-specific settings.
|
|
|
|
|
|
|
|
|
|
Table 4.3. General settings
|
|
|
|
|
|
|
|
|
|
┌────────────────────┬───────────────────────────────────┬────────────────────┐
|
|
|
|
|
│ Key │ Description │ Example │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ This is the default style. It is │ default=0x000000; │
|
|
|
|
|
│ default │ used for styling files without a │ 0xffffff;false; │
|
|
|
|
|
│ │ filetype set. │ false │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ The style for colouring selected │ │
|
|
|
|
|
│ │ text. The format is: │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ ● Foreground colour │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ ● Background colour │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ ● Use foreground colour │ selection= │
|
|
|
|
|
│ selection │ │ 0xc0c0c0;0x00007F; │
|
|
|
|
|
│ │ ● Use background colour │ true;true │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ The colours are only set if the │ │
|
|
|
|
|
│ │ 3rd or 4th argument is true. When │ │
|
|
|
|
|
│ │ the colours are not overridden, │ │
|
|
|
|
|
│ │ the default is a dark grey │ │
|
|
|
|
|
│ │ background with syntax │ │
|
|
|
|
|
│ │ highlighted foreground text. │ │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ The style for brace highlighting │ brace_good= │
|
|
|
|
|
│ brace_good │ when a matching brace was found. │ 0xff0000;0xFFFFFF; │
|
|
|
|
|
│ │ │ true;false │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ The style for brace highlighting │ brace_bad= │
|
|
|
|
|
│ brace_bad │ when no matching brace was found. │ 0x0000ff;0xFFFFFF; │
|
|
|
|
|
│ │ │ true;false │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ The style for colouring the caret │ caret=0x000000; │
|
|
|
|
|
│ caret │ (the blinking cursor). Only the │ 0x0;false;false │
|
|
|
|
|
│ │ first argument is interpreted. │ │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ The width for the caret(the │ │
|
|
|
|
|
│ │ blinking cursor). Only the first │ │
|
|
|
|
|
│ │ argument is interpreted. The │ caret=1;0;false; │
|
|
|
|
|
│ caret_width │ width is specified in pixels with │ false │
|
|
|
|
|
│ │ a maximum of three pixel. Use the │ │
|
|
|
|
|
│ │ width 0 to make the caret │ │
|
|
|
|
|
│ │ invisible. │ │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ The style for colouring the │ │
|
|
|
|
|
│ │ background of the current line. │ │
|
|
|
|
|
│ │ Only the second and third │ │
|
|
|
|
|
│ │ arguments are interpreted. The │ current_line=0x0; │
|
|
|
|
|
│ current_line │ second argument is the background │ 0xe5e5e5;true; │
|
|
|
|
|
│ │ colour. Use the third argument to │ false │
|
|
|
|
|
│ │ enable or disable background │ │
|
|
|
|
|
│ │ highlighting for the current line │ │
|
|
|
|
|
│ │ (has to be true/false). │ │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ The style for colouring the │ indent_guide= │
|
|
|
|
|
│ indent_guide │ indentation guides. Only the │ 0xc0c0c0;0xffffff; │
|
|
|
|
|
│ │ first and second arguments are │ false;false │
|
|
|
|
|
│ │ interpreted. │ │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ The style for colouring the white │ │
|
|
|
|
|
│ │ space if it is shown. The first │ │
|
|
|
|
|
│ │ both arguments define the │ │
|
|
|
|
|
│ │ foreground and background │ │
|
|
|
|
|
│ │ colours, the third argument sets │ white_space= │
|
|
|
|
|
│ white_space │ whether to use the defined │ 0xc0c0c0;0xffffff; │
|
|
|
|
|
│ │ foreground colour or to use the │ true;true │
|
|
|
|
|
│ │ colour defined by each filetype │ │
|
|
|
|
|
│ │ for the white space. The fourth │ │
|
|
|
|
|
│ │ argument defines whether to use │ │
|
|
|
|
|
│ │ the background colour. │ │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ The style of folding icons. Only │ │
|
|
|
|
|
│ │ first and second arguments are │ │
|
|
|
|
|
│ │ used. │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ Valid values for the first │ │
|
|
|
|
|
│ │ argument are: │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ ● 1 - for boxes │ folding_style=1;1; │
|
|
|
|
|
│ folding_style │ │ false;false │
|
|
|
|
|
│ │ ● 2 - for circles │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ Valid values for the second │ │
|
|
|
|
|
│ │ argument are: │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ ● 1 - for straight lines │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ ● 2 - for curved lines │ │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ Draw a thin horizontal line at │ │
|
|
|
|
|
│ │ the line where text is folded. │ │
|
|
|
|
|
│ │ Only first argument is used. │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ Valid values for the first │ │
|
|
|
|
|
│ │ argument are: │ │
|
|
|
|
|
│ │ │ folding_horiz_line │
|
|
|
|
|
│ folding_horiz_line │ ● 0 - disable, do not draw a │ =0;0;false;false │
|
|
|
|
|
│ │ line │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ ● 1 - draw the line above │ │
|
|
|
|
|
│ │ folded text │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ ● 2 - draw the line below │ │
|
|
|
|
|
│ │ folded text │ │
|
|
|
|
|
├────────────────────┼───────────────────────────────────┼────────────────────┤
|
|
|
|
|
│ │ Whether to invert all defined │ │
|
|
|
|
|
│ │ colours. This is useful if you │ │
|
|
|
|
|
│ │ like a dark background colour │ │
|
|
|
|
|
│ │ (e.g. black) and do not want to │ │
|
|
|
|
|
│ │ change every single line. Please │ │
|
|
|
|
|
│ invert_all │ note, at time of writing this was │ invert_all=0;0; │
|
|
|
|
|
│ │ only tested with the C syntax │ false;false │
|
|
|
|
|
│ │ highlighting. │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ Only first argument is │ │
|
|
|
|
|
│ │ interpreted. Set it to 1 to │ │
|
|
|
|
|
│ │ invert all colours. │ │
|
|
|
|
|
└────────────────────┴───────────────────────────────────┴────────────────────┘
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Filetype extensions
|
|
|
|
|
|
|
|
|
|
You can override the default extensions that Geany uses for each filetype using
|
|
|
|
|
the filetype_extensions.conf file.
|
|
|
|
|
|
|
|
|
|
To override the system-wide configuration file, copy it from $prefix/share/
|
|
|
|
|
geany to your configuration directory, usually ~/.geany/. $prefix is the path
|
|
|
|
|
where Geany is installed (commonly /usr/local).
|
|
|
|
|
|
|
|
|
|
For example:
|
|
|
|
|
|
|
|
|
|
% cp /usr/local/share/geany/filetype_extensions.conf /home/username/.geany/
|
|
|
|
|
|
|
|
|
|
Then edit it and remove all the lines for filetype extensions that you do not
|
|
|
|
|
want to override. The remaining lines can be edited after the = sign, using a
|
|
|
|
|
semi-colon separated list of patterns which should be matched for that
|
|
|
|
|
filetype.
|
|
|
|
|
|
|
|
|
|
For example, to set the filetype extensions for Make, the /home/username/.geany
|
|
|
|
|
/filetype_extensions.conf file should look like:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Extensions]
|
|
|
|
|
Make=Makefile*;*.mk;Buildfile;
|
|
|
|
|
|
|
|
|
|
Templates
|
|
|
|
|
|
|
|
|
|
Geany supports the following templates:
|
|
|
|
|
|
|
|
|
|
● ChangeLog entry
|
|
|
|
|
|
|
|
|
|
● File header
|
|
|
|
|
|
|
|
|
|
● Function description
|
|
|
|
|
|
|
|
|
|
● Short GPL notice
|
|
|
|
|
|
|
|
|
|
● Short BSD notice
|
|
|
|
|
|
|
|
|
|
● Filetype template
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Template metadata
|
|
|
|
|
|
|
|
|
|
Metadata can be used with all templates, but by default user set metadata is
|
|
|
|
|
only used for the ChangeLog and File header templates.
|
|
|
|
|
|
|
|
|
|
In the configuration dialog you can find a tab "Templates" (see Figure 3.10,
|
|
|
|
|
“Template tab in preferences dialog”). 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.
|
|
|
|
|
|
|
|
|
|
Filetype templates
|
|
|
|
|
|
|
|
|
|
Filetype templates are templates used as the basis of a new file. To use them,
|
|
|
|
|
choose the New (with Template) menu item from the File menu.
|
|
|
|
|
|
|
|
|
|
By default, templates are created for some filetypes. Other filetype templates
|
|
|
|
|
can be added by creating the appropriate template file and restarting Geany.
|
|
|
|
|
You can also edit the default filetype templates.
|
|
|
|
|
|
|
|
|
|
Filetype template files are read from the ~/.geany/templates directory, and are
|
|
|
|
|
named 'filetype.' followed by the filetype name, e.g. filetype.python,
|
|
|
|
|
filetype.sh. If you are unsure about the filetype name extensions, they are the
|
|
|
|
|
same as the filetype configuration file extensions, commonly installed in /usr/
|
|
|
|
|
share/geany, with the prefix 'filetypes.'.
|
|
|
|
|
|
|
|
|
|
The file's contents are just the text to place in the document, except for the
|
|
|
|
|
optional {fileheader} template wildcard. This can be placed anywhere, but is
|
|
|
|
|
usually on the first line of the file, followed by a blank line.
|
|
|
|
|
|
|
|
|
|
There is also a template file template.none which is used when the New command
|
|
|
|
|
is used without a filetype. This is empty by default.
|
|
|
|
|
|
|
|
|
|
Customizing templates
|
|
|
|
|
|
|
|
|
|
Each template can be customized to your needs. The templates are stored in the
|
|
|
|
|
~/.geany/templates/ directory (see the section called “Command line options”
|
|
|
|
|
for further information about the configuration directory). Just open the
|
|
|
|
|
desired template with an editor (ideally Geany ;-) ) and edit the template to
|
|
|
|
|
your needs. There are some wildcards which will be automatically replaced by
|
|
|
|
|
Geany at startup.
|
|
|
|
|
|
|
|
|
|
Template wildcards
|
|
|
|
|
|
|
|
|
|
All wildcards must be enclosed by "{" and "}", e.g. {date}.
|
|
|
|
|
|
|
|
|
|
Table 4.4. Template wildcards
|
|
|
|
|
|
|
|
|
|
┌──────────────┬──────────────────────────────────────┬───────────────────────┐
|
|
|
|
|
│ Wildcard │ Description │ Available in │
|
|
|
|
|
│ │ │ following templates │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ │ │ filetypes, file │
|
|
|
|
|
│ │ │ header, function │
|
|
|
|
|
│ developer │ The name of the developer. │ description, │
|
|
|
|
|
│ │ │ ChangeLog entry, bsd, │
|
|
|
|
|
│ │ │ gpl │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ │ │ filetypes, file │
|
|
|
|
|
│ │ The developer's initials, e.g. "ET" │ header, function │
|
|
|
|
|
│ initial │ for Enrico Tröger or "JFD" for John │ description, │
|
|
|
|
|
│ │ Foobar Doe. │ ChangeLog entry, bsd, │
|
|
|
|
|
│ │ │ gpl │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ │ │ file header, function │
|
|
|
|
|
│ mail │ The email address of the developer. │ description, │
|
|
|
|
|
│ │ │ ChangeLog entry, bsd, │
|
|
|
|
|
│ │ │ gpl │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ │ │ filetypes, file │
|
|
|
|
|
│ │ The company the developer is working │ header, function │
|
|
|
|
|
│ company │ for. │ description, │
|
|
|
|
|
│ │ │ ChangeLog entry, bsd, │
|
|
|
|
|
│ │ │ gpl │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ │ │ filetypes, file │
|
|
|
|
|
│ │ │ header, function │
|
|
|
|
|
│ year │ The current year in the format: YYYY │ description, │
|
|
|
|
|
│ │ │ ChangeLog entry, bsd, │
|
|
|
|
|
│ │ │ gpl │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ │ │ filetypes, file │
|
|
|
|
|
│ │ │ header, function │
|
|
|
|
|
│ version │ The initial version of a new file. │ description, │
|
|
|
|
|
│ │ │ ChangeLog entry, bsd, │
|
|
|
|
|
│ │ │ gpl │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ │ │ filetypes, file │
|
|
|
|
|
│ │ The current date in the format: │ header, function │
|
|
|
|
|
│ date │ YYYY-MM-DD │ description, │
|
|
|
|
|
│ │ │ ChangeLog entry, bsd, │
|
|
|
|
|
│ │ │ gpl │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ │ │ filetypes, file │
|
|
|
|
|
│ │ The string "untitled" (this will be │ header, function │
|
|
|
|
|
│ untitled │ translated to your locale), used in │ description, │
|
|
|
|
|
│ │ filetype templates │ ChangeLog entry, bsd, │
|
|
|
|
|
│ │ │ gpl │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ │ │ filetypes, file │
|
|
|
|
|
│ │ The actual Geany version, e.g. │ header, function │
|
|
|
|
|
│ geanyversion │ "Geany 0.11" │ description, │
|
|
|
|
|
│ │ │ ChangeLog entry, bsd, │
|
|
|
|
|
│ │ │ gpl │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ datetime │ The current date and time in the │ file header, function │
|
|
|
|
|
│ │ format: DD.MM.YYYY HH:mm:ss ZZZZ │ description │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ │ The filename of the current file. │ │
|
|
|
|
|
│ filename │ Only available for the file header │ file header │
|
|
|
|
|
│ │ template. │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ gpl │ This wildcard inserts a short GPL │ file header │
|
|
|
|
|
│ │ notice. │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ bsd │ This wildcard inserts a short BSD │ file header │
|
|
|
|
|
│ │ licence notice. │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ │ The function name of the function at │ │
|
|
|
|
|
│ functionname │ the cursor position. This wildcard │ function description │
|
|
|
|
|
│ │ will only be replaced in the │ │
|
|
|
|
|
│ │ function description template. │ │
|
|
|
|
|
├──────────────┼──────────────────────────────────────┼───────────────────────┤
|
|
|
|
|
│ │ The file header template. This │ │
|
|
|
|
|
│ fileheader │ wildcard will only be replaced in │ filetypes │
|
|
|
|
|
│ │ filetype templates. │ │
|
|
|
|
|
└──────────────┴──────────────────────────────────────┴───────────────────────┘
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If you need any other wildcards or a special date/time format, please email the
|
|
|
|
|
author <enrico.troeger@uvena.de>.
|
|
|
|
|
|
|
|
|
|
Appendix A. Contributing to this document
|
|
|
|
|
|
|
|
|
|
This document is written in Docbook XML. The source file for it is located in
|
|
|
|
|
the subdirectory "doc" of the source directory of Geany. If you intend on
|
|
|
|
|
making changes, you should grab the source right from SVN to make sure you have
|
|
|
|
|
got the newest version. After editing that file, to build the docs and see how
|
|
|
|
|
your changes look, run "make doc" in the subdirectory "doc" of the source
|
|
|
|
|
directory of Geany to build HTML pages and a text file. Your updated HTML docs
|
|
|
|
|
will end up in the ./html directory. To generate a PDF file, use the command
|
|
|
|
|
"make pdf" which should generate a file called geany-0.11.pdf.
|
|
|
|
|
|
|
|
|
|
After you are happy with your changes, create a patch:
|
|
|
|
|
|
|
|
|
|
% svn diff geany.docbook > whatever.patch
|
|
|
|
|
|
|
|
|
|
and then submit that file to the mailing list for review.
|
|
|
|
|
|
|
|
|
|
Note, you will need the docbook-xml and xmlto software packages installed to
|
|
|
|
|
build the docs.
|
|
|
|
|
|
|
|
|
|
Scintilla keyboard commands
|
|
|
|
|
|
|
|
|
|
Copyright © 1998, 2006 Neil Hodgson <neilh@scintilla.org>
|
|
|
|
|
|
|
|
|
|
This appendix is distributed under the terms of the License for Scintilla and
|
|
|
|
|
SciTE. A copy of this license can be found in the file scintilla/License.txt
|
|
|
|
|
included with the source code of this program and in the appendix of this
|
|
|
|
|
document. See Appendix E, License for Scintilla and SciTE.
|
|
|
|
|
|
|
|
|
|
20 June 2006
|
|
|
|
|
|
|
|
|
|
Table of Contents
|
|
|
|
|
|
|
|
|
|
Keyboard commands
|
|
|
|
|
|
|
|
|
|
Keyboard commands
|
|
|
|
|
|
|
|
|
|
Keyboard commands for Scintilla mostly follow common Windows and GTK+
|
|
|
|
|
conventions. All move keys (arrows, page up/down, home and end) allows to
|
|
|
|
|
extend or reduce the stream selection when holding the Shift key, and the
|
|
|
|
|
rectangular selection when holding the Shift and Alt keys. Some keys may not be
|
|
|
|
|
available with some national keyboards or because they are taken by the system
|
|
|
|
|
such as by a window manager on GTK+. Keyboard equivalents of menu commands are
|
|
|
|
|
listed in the menus. Some less common commands with no menu equivalent are:
|
|
|
|
|
|
|
|
|
|
Table B.1. Scintilla keyboard commands
|
|
|
|
|
|
|
|
|
|
┌──────────────────────────────────────────────┬──────────────────────┐
|
|
|
|
|
│ Action │ Shortcut key │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Magnify text size. │ Ctrl+Keypad+ │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Reduce text size. │ Ctrl+Keypad- │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Restore text size to normal. │ Ctrl+Keypad/ │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Indent block. │ Tab │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Dedent block. │ Shift+Tab │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Delete to start of word. │ Ctrl+BackSpace │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Delete to end of word. │ Ctrl+Delete │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Delete to start of line. │ Ctrl+Shift+BackSpace │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Delete to end of line. │ Ctrl+Shift+Delete │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Go to start of document. │ Ctrl+Home │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Extend selection to start of document. │ Ctrl+Shift+Home │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Go to start of display line. │ Alt+Home │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Extend selection to start of display line. │ Alt+Shift+Home │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Go to end of document. │ Ctrl+End │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Extend selection to end of document. │ Ctrl+Shift+End │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Go to end of display line. │ Alt+End │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Extend selection to end of display line. │ Alt+Shift+End │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Scroll up. │ Ctrl+Up │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Scroll down. │ Ctrl+Down │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Line cut. │ Ctrl+L │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Line copy. │ Ctrl+Shift+T │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Line delete. │ Ctrl+Shift+L │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Line transpose with previous. │ Ctrl+T │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Selection duplicate. │ Ctrl+D │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Previous paragraph. Shift extends selection. │ Ctrl+[ │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Next paragraph. Shift extends selection. │ Ctrl+] │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Previous word. Shift extends selection. │ Ctrl+Left │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Next word. Shift extends selection. │ Ctrl+Right │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Previous word part. Shift extends selection │ Ctrl+/ │
|
|
|
|
|
├──────────────────────────────────────────────┼──────────────────────┤
|
|
|
|
|
│ Next word part. Shift extends selection. │ Ctrl+\ │
|
|
|
|
|
└──────────────────────────────────────────────┴──────────────────────┘
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Appendix C. 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.
|
|
|
|
|
|
|
|
|
|
Note
|
|
|
|
|
|
|
|
|
|
Most users should not need to change these options.
|
|
|
|
|
|
|
|
|
|
Table C.1. Compile time options
|
|
|
|
|
|
|
|
|
|
┌────────────────────────────────┬──────────────────────────────┬─────────────┐
|
|
|
|
|
│ Option │ Description │ Default │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ │ These characters define word │ │
|
|
|
|
|
│ GEANY_WORDCHARS │ boundaries when making │ (look at │
|
|
|
|
|
│ │ selections and searching │ sourcecode) │
|
|
|
|
|
│ │ using word matching options. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ │ How many auto completion │ │
|
|
|
|
|
│ GEANY_MAX_AUTOCOMPLETE_WORDS │ suggestions should Geany │ 30 │
|
|
|
|
|
│ │ provide. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ │ How many suggestions should │ │
|
|
|
|
|
│ GEANY_MAX_AUTOCOMPLETE_HEIGHT │ be visible in the auto │ 10 │
|
|
|
|
|
│ │ completion list. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ │ The default filename │ │
|
|
|
|
|
│ │ extension for Geany project │ │
|
|
|
|
|
│ GEANY_PROJECT_EXT │ files. It is used when │ geany │
|
|
|
|
|
│ │ creating new projects and as │ │
|
|
|
|
|
│ │ filter mask for the project │ │
|
|
|
|
|
│ │ open dialog. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ │ A string used as the default │ │
|
|
|
|
|
│ │ name for new files. Be aware │ │
|
|
|
|
|
│ GEANY_STRING_UNTITLED │ that the string can be │ untitled │
|
|
|
|
|
│ │ translated, so change it │ │
|
|
|
|
|
│ │ only if you know what you │ │
|
|
|
|
|
│ │ are doing. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ │ Time in seconds between │ │
|
|
|
|
|
│ GEANY_CHECK_FILE_DELAY │ checking a file for external │ 30 │
|
|
|
|
|
│ │ changes. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ GEANY_WINDOW_MINIMAL_WIDTH │ The minimal width of the │ 620 │
|
|
|
|
|
│ │ main window. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ GEANY_WINDOW_MINIMAL_HEIGHT │ The minimal height of the │ 440 │
|
|
|
|
|
│ │ main window. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ │ The default width of the │ │
|
|
|
|
|
│ GEANY_WINDOW_DEFAULT_WIDTH │ main window at the first │ 900 │
|
|
|
|
|
│ │ start. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ │ The default height of the │ │
|
|
|
|
|
│ GEANY_WINDOW_DEFAULT_HEIGHT │ main window at the first │ 600 │
|
|
|
|
|
│ │ start. │ │
|
|
|
|
|
├────────────────────────────────┴──────────────────────────────┴─────────────┤
|
|
|
|
|
│ Default values │
|
|
|
|
|
├────────────────────────────────┬──────────────────────────────┬─────────────┤
|
|
|
|
|
│ GEANY_DEFAULT_TOOLS_MAKE │ The make tool. This can also │ "make" │
|
|
|
|
|
│ │ include a path. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ │ A terminal emulator. It has │ │
|
|
|
|
|
│ GEANY_DEFAULT_TOOLS_TERMINAL │ to accept the command line │ "xterm" │
|
|
|
|
|
│ │ option "-e". This can also │ │
|
|
|
|
|
│ │ include a path. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ GEANY_DEFAULT_TOOLS_BROWSER │ A web browser. This can also │ "mozilla" │
|
|
|
|
|
│ │ include a path. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ │ A printing tool. It should │ │
|
|
|
|
|
│ │ be able to accept and │ │
|
|
|
|
|
│ GEANY_DEFAULT_TOOLS_PRINTCMD │ process plain text files. │ "lpr" │
|
|
|
|
|
│ │ This can also include a │ │
|
|
|
|
|
│ │ path. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ │ A grep tool. It should be │ │
|
|
|
|
|
│ GEANY_DEFAULT_TOOLS_GREP │ compatible with GNU grep. │ "grep" │
|
|
|
|
|
│ │ This can also include a │ │
|
|
|
|
|
│ │ path. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ GEANY_DEFAULT_MRU_LENGHTH │ The length of the "Recent │ "10" │
|
|
|
|
|
│ │ files" list. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ GEANY_DEFAULT_FONT_SYMBOL_LIST │ The font used in sidebar to │ "Sans 9" │
|
|
|
|
|
│ │ show symbols and open files. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ GEANY_DEFAULT_FONT_MSG_WINDOW │ The font used in the │ "Sans 9" │
|
|
|
|
|
│ │ messages window. │ │
|
|
|
|
|
├────────────────────────────────┼──────────────────────────────┼─────────────┤
|
|
|
|
|
│ GEANY_DEFAULT_FONT_EDITOR │ The font used in the editor │ "Monospace │
|
|
|
|
|
│ │ window. │ 10" │
|
|
|
|
|
├────────────────────────────────┴──────────────────────────────┴─────────────┤
|
|
|
|
|
│ Windows specific │
|
|
|
|
|
├────────────────────────────────┬──────────────────────────────┬─────────────┤
|
|
|
|
|
│ │ Set this to 1 if you want to │ │
|
|
|
|
|
│ │ use the default Windows file │ │
|
|
|
|
|
│ │ open dialog instead GTK's │ │
|
|
|
|
|
│ │ file open dialog. The │ │
|
|
|
|
|
│ │ default Windows file open │ │
|
|
|
|
|
│ GEANY_USE_WIN32_DIALOG │ dialog is missing some nice │ 0 │
|
|
|
|
|
│ │ features like choosing a │ │
|
|
|
|
|
│ │ filetype or an encoding. Do │ │
|
|
|
|
|
│ │ not touch this setting when │ │
|
|
|
|
|
│ │ building on a non-Win32 │ │
|
|
|
|
|
│ │ system. │ │
|
|
|
|
|
└────────────────────────────────┴──────────────────────────────┴─────────────┘
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GNU General Public License
|
|
|
|
|
|
|
|
|
|
Version 2, June 1991
|
|
|
|
|
|
|
|
|
|
Copyright © 1989, 1991 Free Software Foundation, Inc.
|
|
|
|
|
|
|
|
|
|
Free Software Foundation, Inc.
|
|
|
|
|
59 Temple Place, Suite 330,
|
|
|
|
|
Boston,
|
|
|
|
|
MA
|
|
|
|
|
02111-1307
|
|
|
|
|
USA
|
|
|
|
|
|
|
|
|
|
.
|
|
|
|
|
|
|
|
|
|
Everyone is permitted to copy and distribute verbatim copies of this license
|
|
|
|
|
document, but changing it is not allowed.
|
|
|
|
|
|
|
|
|
|
Version 2, June 1991
|
|
|
|
|
|
|
|
|
|
Table of Contents
|
|
|
|
|
|
|
|
|
|
Preamble
|
|
|
|
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
|
|
|
|
|
|
|
|
Section 0
|
|
|
|
|
Section 1
|
|
|
|
|
Section 2
|
|
|
|
|
Section 3
|
|
|
|
|
Section 4
|
|
|
|
|
Section 5
|
|
|
|
|
Section 6
|
|
|
|
|
Section 7
|
|
|
|
|
Section 8
|
|
|
|
|
Section 9
|
|
|
|
|
Section 10
|
|
|
|
|
Section 11 NO WARRANTY
|
|
|
|
|
Section 12
|
|
|
|
|
|
|
|
|
|
How to Apply These Terms to Your New Programs
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Appendix E. License for Scintilla and SciTE
|
|
|
|
|
|
|
|
|
|
Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org>
|
|
|
|
|
|
|
|
|
|
All Rights Reserved
|
|
|
|
|
|
|
|
|
|
Permission to use, copy, modify, and distribute this software and its
|
|
|
|
|
documentation for any purpose and without fee is hereby granted, provided that
|
|
|
|
|
the above copyright notice appear in all copies and that both that copyright
|
|
|
|
|
notice and this permission notice appear in supporting documentation.
|
|
|
|
|
|
|
|
|
|
NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
|
|
|
|
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NEIL
|
|
|
|
|
HODGSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
|
|
|
|
|
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
|
|
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
|
|
|
|
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
|
|