12
This document is distributed under the terms of the GNU
13
General Public License as published by the Free Software
14
Foundation; either version 2 of the License, or (at your
15
option) any later version. A copy of this license can be found
16
in the file COPYING included with the source code of this
17
program and see Appendix B.
18
_________________________________________________________
24
1.2. About this document
31
2.2. Source compilation
42
3.2. Command line options
46
3.3.2. Opening files from the command-line in a
49
3.3.3. Virtual terminal emulator widget (VTE)
51
3.4. Character sets and Unicode Byte-Order-Mark (BOM)
52
3.5. Search, replace and go to
58
3.5.5. Go to tag definition
59
3.5.6. Go to tag declaration
61
3.5.8. Regular expressions
65
3.6.1. Compile time options
72
3.7.4. Make custom target
75
3.7.7. Set Includes and Arguments
77
3.7.9. File type configuration settings
82
4. Configuration files
84
4.1. Filetype definition files
87
4.1.2. Special file filetypes.common
89
4.2. Filetype extensions
92
A. Scintilla keyboard commands
94
A.1. Keyboard commands
96
B. GNU General Public License
99
B.2. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
113
B.2.12. Section 11 NO WARRANTY
116
B.3. How to Apply These Terms to Your New Programs
118
C. License for Scintilla and SciTE
121
3-1. Command line Options
122
3-2. Regular expressions
123
3-3. Compile time options
124
3-4. Keybindings action table
125
4-1. General settings
127
4-3. General settings
128
4-4. Template wildcards
129
A-1. Scintilla keyboard commands
133
3-2. General tab in preferences dialog
134
3-3. Interface tab in preferences dialog
135
3-4. Toolbar tab in preferences dialog
136
3-5. Editor tab in preferences dialog
137
3-6. Tools tab in preferences dialog
138
3-7. Template tab in preferences dialog
139
3-8. Keybinding tab in preferences dialog
140
3-9. VTE tab in preferences dialog
143
4-1. Comment indentation
144
_________________________________________________________
146
Chapter 1. Introduction
150
Geany is a small and lightweight Integrated Development
151
Environment. It was developed to provide a small and fast IDE,
152
which has only a few dependencies from other packages. Another
153
goal was to be as independent as possible from a special
154
Desktop Environment like KDE or GNOME, so Geany only requires
155
the GTK2 toolkit and therefore you only need the GTK2 runtime
156
libraries installed to run it.
158
The basic features of Geany are:
160
* Syntax highlighting
162
* Auto completion of often used constructs like if, for and
164
* Auto completion of XML and HTML tags
166
* Many supported filetypes like C, Java, PHP, HTML, Python,
169
_________________________________________________________
171
1.2. About this document
173
This documentation is available in various formats like HTML,
174
text and PDF. The latest version is always available at
175
http://geany.uvena.de.
176
_________________________________________________________
180
You can obtain Geany from http://geany.uvena.de or perhaps
181
from your distributor.
182
_________________________________________________________
186
Geany is distributed under the terms of the GNU General Public
187
License as published by the Free Software Foundation; either
188
version 2 of the License, or (at your option) any later
189
version. A copy of this license can be found in the file
190
COPYING included with the source code of this program or see
193
The included Scintilla library (found in the subdirectory
194
scintilla/) has its own license, which can be found in the
195
appendix (see Appendix C).
196
_________________________________________________________
198
Chapter 2. Installation
202
For compiling Geany yourself, you will need the GTK (>= 2.6.0)
203
libraries and header files. You will also need the Pango, Glib
204
and ATK libraries and header files. All these files are
205
available at http://www.gtk.org.
207
Furthermore you need, of course, a C compiler and the Make
208
tool; a C++ compiler is also required for the included
209
Scintilla library. The GNU versions of these tools are
211
_________________________________________________________
213
2.2. Source compilation
215
Compiling Geany is quite easy. The following should do it:
11
This document is distributed under the terms of the GNU General Public License
12
as published by the Free Software Foundation; either version 2 of the License,
13
or (at your option) any later version. A copy of this license can be found in
14
the file COPYING included with the source code of this program and see
15
Appendix B, GNU General Public License.
17
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
46
Opening files from the command-line in a running instance
47
Virtual terminal emulator widget (VTE)
49
Character sets and Unicode Byte-Order-Mark (BOM)
52
Special encoding "None"
53
Unicode Byte-Order-Mark (BOM)
55
Search, replace and go to
78
Stopping running processes
79
Set Includes and Arguments
81
File type configuration settings
86
4. Configuration files
88
Filetype definition files
91
Special file filetypes.common
96
A. Scintilla keyboard commands
100
B. GNU General Public License
103
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
116
Section 11 NO WARRANTY
119
How to Apply These Terms to Your New Programs
121
C. License for Scintilla and SciTE
126
3.2. Find in files dialog
128
3.4. General tab in preferences dialog
129
3.5. Interface tab in preferences dialog
130
3.6. Toolbar tab in preferences dialog
131
3.7. Files tab in preferences dialog
132
3.8. Editor tab in preferences dialog
133
3.9. Tools tab in preferences dialog
134
3.10. Template tab in preferences dialog
135
3.11. Keybinding tab in preferences dialog
136
3.12. VTE tab in preferences dialog
140
3.1. Command line Options
141
3.2. Regular expressions
142
3.3. Compile time options
143
3.4. Keybindings action table
144
4.1. General settings
146
4.3. General settings
147
4.4. Template wildcards
148
A.1. Scintilla keyboard commands
152
4.1. Comment indentation
154
Chapter 1. Introduction
165
Geany is a small and lightweight Integrated Development Environment. It was
166
developed to provide a small and fast IDE, which has only a few dependencies
167
from other packages. Another goal was to be as independent as possible from a
168
special Desktop Environment like KDE or GNOME, so Geany only requires the GTK2
169
toolkit and therefore you only need the GTK2 runtime libraries installed to run
172
The basic features of Geany are:
174
● Syntax highlighting
178
● Auto completion of often used constructs like if, for and while
180
● Auto completion of XML and HTML tags
184
● Many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal
190
This documentation is available in various formats like HTML, text and PDF. The
191
latest version is always available at http://geany.uvena.de.
195
You can obtain Geany from http://geany.uvena.de or perhaps from your
200
Geany is distributed under the terms of the GNU General Public License as
201
published by the Free Software Foundation; either version 2 of the License, or
202
(at your option) any later version. A copy of this license can be found in the
203
file COPYING included with the source code of this program or see Appendix B,
204
GNU General Public License.
206
The included Scintilla library (found in the subdirectory scintilla/) has its
207
own license, which can be found in the appendix (see Appendix C, License for
208
Scintilla and SciTE).
210
Chapter 2. Installation
225
For compiling Geany yourself, you will need the GTK (>= 2.6.0) libraries and
226
header files. You will also need the Pango, Glib and ATK libraries and header
227
files. All these files are available at http://www.gtk.org.
229
Furthermore you need, of course, a C compiler and the Make tool; a C++ compiler
230
is also required for the included Scintilla library. The GNU versions of these
231
tools are recommended.
235
Compiling Geany is quite easy. The following should do it:
220
The configure script supports several common options, for a
241
The configure script supports several common options, for a detailed list, type
222
243
% ./configure --help
224
In the case that your system lacks dynamic linking loader
225
support, you probably want to pass the option --disable-vte to
226
the configure script. This prevents compiling Geany with
227
dynamic linking loader support to automatically load
228
libvte.so.4 if available.
230
Geany has been successfully compiled and tested under Debian
231
3.1 Sarge, Debian 3.2 Etch, Fedora Core 4, LinuxFromScratch
232
and FreeBSD 6.0. It also compiles under Microsoft Windows(TM),
233
but there are lots of changes to the makefiles necessary.
235
If there are any errors during compilation, check your build
236
environment and try to find the error, otherwise contact the
237
author at <enrico.troeger@uvena.de>.
238
_________________________________________________________
244
You can use the Fedora Core 4 repository from
245
http://naturidentisch.de/packages/fc4/.
247
You can also use the Fedora Core 5 repository from
248
http://naturidentisch.de/packages/fc5/.
249
_________________________________________________________
253
Geany is available through the official Debian archives.
255
apt-get install geany
256
_________________________________________________________
260
Packages for SuSE are not yet available.
261
_________________________________________________________
265
An ebuild for Gentoo can be found on http://bugs.gentoo.de.
266
_________________________________________________________
272
You can start Geany in the following ways:
274
* From the Desktop Environment menu
275
Choose in your application menu of your used Desktop
276
Environment: Development->Geany.
277
* From the command line
278
To start Geany from a command line, type the following and
281
_________________________________________________________
283
3.2. Command line options
285
Table 3-1. Command line Options
286
Short option Long option Function
287
-s --no-session Don't load the previous session's files.
288
-n --no-ctags Do not load auto completion and call tip data.
289
Use this option if you do not want to use them.
290
-m --no-msgwin Do not show the message window. Use this option
291
if you do not need compiler messages or VTE support.
292
-i --new-instance Do not open files in a running instance,
293
force opening a new instance.
294
-t --no-terminal Do not load terminal support. Use this option
295
if you do not want to load the virtual terminal emulator
296
widget at startup. If you do not have libvte.so.4 installed,
297
then terminal-support is automatically disabled.
298
-l --vte-lib Specify explicitly the path including filename or
299
only the filename to the VTE library, e.g. /usr/lib/libvte.so
300
or libvte.so. This option is only needed when the
301
autodetection does not work.
302
-c directory_name --config=directory_name Use an alternate
303
configuration directory. Default configuration directory is
304
~/.geany/ and there resides geany.conf and other configuration
306
-d --debug Run Geany in debug mode, which means being verbose
307
and printing lots of information.
308
-? --help Show help information and exit.
309
-v --version Show version information and exit.
310
[files ...] Open all given files at startup. This option
311
causes Geany to ignore loading stored files from the last
312
session (if enabled).
313
Geany supports all generic GTK options, a list is available on
315
_________________________________________________________
321
At startup, Geany loads the first 15 files from the last time
322
Geany was launched. You can disable this feature in the
323
preferences dialog(see Figure 3-2). If you specify some files
324
on the command line, only these files will be opened, but you
325
can find the files from the last session in the file menu
326
under the "Recent files" item. This contains the last 15
327
recently opened files. It may be that Geany loads not exactly
328
15 session files, this depends on the compile time option
329
GEANY_SESSION_FILES; the default is 15. For details see
332
You can start several instances of Geany, but only the first
333
will load files from the last session. To run a second
334
instance of Geany, do not specify any filenames on the
335
command-line, or disable opening files in a running instance
336
using the appropriate command line option.
337
_________________________________________________________
339
3.3.2. Opening files from the command-line in a running instance
341
Geany detects an already running instance of itself and opens
342
files from the command-line in the already running instance.
343
So, Geany can be used to view and edit files by opening them
344
from other programs such as a file manager. If you do not like
345
this for some reason, you can disable using the first instance
346
by using the appropriate command line option - see Section
348
_________________________________________________________
350
3.3.3. Virtual terminal emulator widget (VTE)
352
If you have installed libvte.so in your system, it is loaded
353
automatically by Geany, and you will have a terminal widget in
354
the notebook at the bottom.
356
If Geany cannot find libvte.so at startup, the terminal widget
357
will not be loaded. So there is no need to install the package
358
containing this file in order to run Geany. Additionally, you
359
can disable the use of the terminal widget by command line
360
option, for more information see Section 3.2.
362
You can use this terminal (from now on called VTE) nearly as
363
an usual terminal program like xterm. There is basic clipboard
364
support. You can paste the contents of the clipboard by
365
pressing the right mouse button to open the popup menu and
366
choosing Paste. To copy text from the VTE, just select the
367
desired text and then press the right mouse button and choose
368
Copy from the popup menu. On systems running the X Window
369
System you can paste the last selected text by pressing the
370
middle mouse button in the VTE (on 2-button mice, the middle
371
button can often be simulated by pressing both mouse buttons
376
Geany tries to load libvte.so. If this fails, it tries to load
377
libvte.so.4. If this fails too, you should check whether you
378
installed libvte correctly. Again, Geany also runs without
381
It could be, that the library is called something else than
382
libvte.so.4 (e.g. on FreeBSD 6.0 it is called libvte.so.8). So
383
please set a link to the correct file (as root).
245
There also some compile time options which can be found in src/geany.h. Please
246
see the section called “Compile time options” for more information.
248
In the case that your system lacks dynamic linking loader support, you probably
249
want to pass the option --disable-vte to the configure script. This prevents
250
compiling Geany with dynamic linking loader support to automatically load
251
libvte.so.4 if available.
253
Geany has been successfully compiled and tested under Debian 3.1 Sarge, Debian
254
4.0 Etch, Fedora Core 3/4/5, LinuxFromScratch and FreeBSD 6.0. It also compiles
255
under Microsoft Windows™.
257
If there are any errors during compilation, check your build environment and
258
try to find the error, otherwise contact the author at <enrico.troeger@uvena.de
265
You can use the Fedora Core 4 repository from http://naturidentisch.de/packages
268
You can also use the Fedora Core 5 repository from http://naturidentisch.de/
273
Geany is available through the official Debian archives.
275
apt-get install geany
279
Packages for SuSE are not yet available.
283
An ebuild for Gentoo can be found on http://bugs.gentoo.de.
294
Opening files from the command-line in a running instance
295
Virtual terminal emulator widget (VTE)
297
Character sets and Unicode Byte-Order-Mark (BOM)
300
Special encoding "None"
301
Unicode Byte-Order-Mark (BOM)
303
Search, replace and go to
310
Go to tag declaration
326
Stopping running processes
327
Set Includes and Arguments
329
File type configuration settings
336
You can start Geany in the following ways:
338
● From the Desktop Environment menu
340
Choose in your application menu of your used Desktop Environment:
343
● From the command line
345
To start Geany from a command line, type the following and press Return:
352
Table 3.1. Command line Options
354
┌──────────┬────────────────┬─────────────────────────────────────────────────┐
355
│ Short │ Long option │ Function │
357
├──────────┼────────────────┼─────────────────────────────────────────────────┤
358
│ │ │ Use an alternate configuration directory. │
359
│ -c │ --config= │ Default configuration directory is ~/.geany/ │
360
│ dir_name │ directory_name │ and there resides geany.conf and other │
361
│ │ │ configuration files. │
362
├──────────┼────────────────┼─────────────────────────────────────────────────┤
363
│ -d │ --debug │ Run Geany in debug mode, which means being │
364
│ │ │ verbose and printing lots of information. │
365
├──────────┼────────────────┼─────────────────────────────────────────────────┤
366
│ │ │ Do not open files in a running instance, force │
367
│ -i │ --new-instance │ opening a new instance. Only available if Geany │
368
│ │ │ was compiled with support for Sockets. │
369
├──────────┼────────────────┼─────────────────────────────────────────────────┤
370
│ -l │ --line │ Set initial line number for the first opened │
372
├──────────┼────────────────┼─────────────────────────────────────────────────┤
373
│ │ │ Do not show the message window. Use this option │
374
│ -m │ --no-msgwin │ if you do not need compiler messages or VTE │
376
├──────────┼────────────────┼─────────────────────────────────────────────────┤
377
│ -n │ --no-ctags │ Do not load auto completion and call tip data. │
378
│ │ │ Use this option if you do not want to use them. │
379
├──────────┼────────────────┼─────────────────────────────────────────────────┤
380
│ -s │ --no-session │ Don't load the previous session's files. │
381
├──────────┼────────────────┼─────────────────────────────────────────────────┤
382
│ │ │ Do not load terminal support. Use this option │
383
│ │ │ if you do not want to load the virtual terminal │
384
│ -t │ --no-terminal │ emulator widget at startup. If you do not have │
385
│ │ │ libvte.so.4 installed, then terminal-support is │
386
│ │ │ automatically disabled. Only available if Geany │
387
│ │ │ was compiled with support for VTE. │
388
├──────────┼────────────────┼─────────────────────────────────────────────────┤
389
│ │ │ Specify explicitly the path including filename │
390
│ │ │ or only the filename to the VTE library, e.g. / │
391
│ │ --vte-lib │ usr/lib/libvte.so or libvte.so. This option is │
392
│ │ │ only needed when the autodetection does not │
393
│ │ │ work. Only available if Geany was compiled with │
394
│ │ │ support for VTE. │
395
├──────────┼────────────────┼─────────────────────────────────────────────────┤
396
│ -v │ --version │ Show version information and exit. │
397
├──────────┼────────────────┼─────────────────────────────────────────────────┤
398
│ -? │ --help │ Show help information and exit. │
399
├──────────┼────────────────┼─────────────────────────────────────────────────┤
400
│ │ │ Open all given files at startup. This option │
401
│ │ [files ...] │ causes Geany to ignore loading stored files │
402
│ │ │ from the last session (if enabled). │
403
└──────────┴────────────────┴─────────────────────────────────────────────────┘
406
Geany supports all generic GTK options, a list is available on the help screen.
412
At startup, Geany loads all files from the last time Geany was launched. You
413
can disable this feature in the preferences dialog(see Figure 3.4, “General tab
414
in preferences dialog”). If you specify some files on the command line, only
415
these files will be opened, but you can find the files from the last session in
416
the file menu under the "Recent files" item. By default this contains the last
417
10 recently opened files. You can change the amount of recently opened files in
418
the preferences dialog.
420
You can start several instances of Geany, but only the first will load files
421
from the last session. To run a second instance of Geany, do not specify any
422
filenames on the command-line, or disable opening files in a running instance
423
using the appropriate command line option.
425
Opening files from the command-line in a running instance
427
Geany detects an already running instance of itself and opens files from the
428
command-line in the already running instance. So, Geany can be used to view and
429
edit files by opening them from other programs such as a file manager. If you
430
do not like this for some reason, you can disable using the first instance by
431
using the appropriate command line option - see the section called “Command
434
Virtual terminal emulator widget (VTE)
436
If you have installed libvte.so in your system, it is loaded automatically by
437
Geany, and you will have a terminal widget in the notebook at the bottom.
439
If Geany cannot find libvte.so at startup, the terminal widget will not be
440
loaded. So there is no need to install the package containing this file in
441
order to run Geany. Additionally, you can disable the use of the terminal
442
widget by command line option, for more information see the section called
443
“Command line options”.
445
You can use this terminal (from now on called VTE) nearly as an usual terminal
446
program like xterm. There is basic clipboard support. You can paste the
447
contents of the clipboard by pressing the right mouse button to open the popup
448
menu and choosing Paste. To copy text from the VTE, just select the desired
449
text and then press the right mouse button and choose Copy from the popup menu.
450
On systems running the X Window System you can paste the last selected text by
451
pressing the middle mouse button in the VTE (on 2-button mice, the middle
452
button can often be simulated by pressing both mouse buttons together).
456
Geany tries to load libvte.so. If this fails, it tries to load libvte.so.4. If
457
this fails too, you should check whether you installed libvte correctly. Again,
458
Geany also runs without this library.
460
It could be, that the library is called something else than libvte.so.4 (e.g.
461
on FreeBSD 6.0 it is called libvte.so.8). So please set a link to the correct
384
464
# ln -s /usr/lib/libvte.so.X /usr/lib/libvte.so.4
386
Obviously, you have to adjust the paths and set X to the
387
number of your libvte.so.
388
_________________________________________________________
390
3.4. Character sets and Unicode Byte-Order-Mark (BOM)
392
Geany provides support for detecting and converting character
393
sets. So you can open and save files in different character
394
sets and even can convert a file from a character set to
395
another one. To do this, Geany uses the character conversion
396
capabilities of the GLib.
398
Furthermore, Geany detects an Unicode Byte Order Mark (see
399
http://en.wikipedia.org/wiki/Byte_Order_Mark for details). Of
400
course, this feature is only available if the opened file is
401
in an unicode encoding. The Byte Order Mark helps to detect
402
the encoding of a file, e.g. whether it is UTF-16LE or
403
UTF-16BE and so on. On Unix-like systems using a Byte Order
404
Mark could cause some problems, e.g. the gcc stops with stray
405
errors, PHP does not parse a script containing a BOM and
406
script files starting with a she-bang maybe cannot be started.
407
In the status bar you can easily see whether the file starts
408
with a BOM or not. If you want to set a BOM for a file or if
409
you want to remove it from a file, just use the document menu
410
and toggle the checkbox.
414
If you are unsure what a BOM is or if you do not understand
415
where to use it, then it is not important for you and you can
417
_________________________________________________________
419
3.5. Search, replace and go to
421
This section describes search-related commands from the Search
422
menu and the editor window's popup menu:
428
* Go to tag definition *
429
* Go to tag declaration *
432
* These items are available from the editor window's popup
433
menu, or by using a keyboard shortcut (see Section 3.9).
434
_________________________________________________________
438
The Find dialog is used for finding text within the current
439
document. The syntax for the "Use regular expressions" option
440
is shown in Table 3-2.
442
Figure 3-1. Find dialog
445
_________________________________________________________
449
Find usage searches all open files. If there is a selection,
450
then it is used as the search text; otherwise the current word
451
is used. The current word is either taken from the word
452
nearest the edit cursor, or the word underneath the popup menu
453
click position when the popup menu is used. The search results
454
are shown in the Messages window.
455
_________________________________________________________
459
Find in files is a more powerful version of Find usage that
460
searches all files in a certain directory using the Grep tool.
461
The Grep tool must be correctly set in Preferences to the path
462
of the system's Grep utility.
463
_________________________________________________________
467
The Replace dialog has the same options for finding text as
468
the Find dialog. There is also a "Replace in all files"
469
option, which is used with the Replace All button to perform
470
the replacement for all open files.
472
The "Use regular expressions" option applies both to the
473
search string and to the replacement text; for the latter back
474
references can be used - see the entry for '\n' in Table 3-2.
475
_________________________________________________________
477
3.5.5. Go to tag definition
479
If the current word is the name of a function and the file
480
containing the function definition (a.k.a. function body) is
481
open, Go to tag definition will switch to that file and go to
482
the corresponding line number. The current word is either
483
taken from the word nearest the edit cursor, or the word
484
underneath the popup menu click position when the popup menu
486
_________________________________________________________
488
3.5.6. Go to tag declaration
490
Like Go to tag definition, but for a forward function
491
declaration (a.k.a. function prototype) instead of a function
493
_________________________________________________________
497
Go to a particular line number in the current file.
498
_________________________________________________________
500
3.5.8. Regular expressions
502
You can use regular expressions in the Find and Replace
503
dialogs by selecting the "Use regular expressions" check box.
504
The syntax is POSIX-like, as described below in Table 3-2.
508
Searching backwards with regular expressions is not supported.
510
Table 3-2. Regular expressions
511
In a regular expression, the following characters are
513
. Matches any character.
514
( This marks the start of a region for tagging a match.
515
) This marks the end of a tagged region.
516
\n Where n is 1 through 9 refers to the first through ninth
517
tagged region when replacing. For example, if the search
518
string was Fred([1-9])XXX and the replace string was Sam\1YYY,
519
when applied to Fred2XXX this would generate Sam2YYY.
520
\< This matches the start of a word.
521
\> This matches the end of a word.
522
\x This allows you to use a character x that would otherwise
523
have a special meaning. For example, \[ would be interpreted
524
as [ and not as the start of a character set. Use \\ for a
526
[...] This indicates a set of characters, for example, [abc]
527
means any of the characters a, b or c. You can also use
528
ranges, for example [a-z] for any lower case character.
529
[^...] The complement of the characters in the set. For
530
example, [^A-Za-z] means any character except an alphabetic
532
^ This matches the start of a line (unless used inside a set,
534
$ This matches the end of a line.
535
* This matches 0 or more times. For example, Sa*m matches Sm,
536
Sam, Saam, Saaam and so on.
537
+ This matches 1 or more times. For example, Sa+m matches Sam,
538
Saam, Saaam and so on.
540
Note Partial POSIX compatibility
543
Note that the POSIX '?' regular expression character for
544
optional matching is not supported by the Find and Replace
546
_________________________________________________________
552
Figure 3-2. General tab in preferences dialog
554
[pref_dialog_gen.jpg]
556
Figure 3-3. Interface tab in preferences dialog
558
[pref_dialog_interface.jpg]
560
Figure 3-4. Toolbar tab in preferences dialog
562
[pref_dialog_toolbar.jpg]
564
Figure 3-5. Editor tab in preferences dialog
566
[pref_dialog_edit.jpg]
568
Figure 3-6. Tools tab in preferences dialog
570
[pref_dialog_tools.jpg]
572
Figure 3-7. Template tab in preferences dialog
574
[pref_dialog_templ.jpg]
576
Figure 3-8. Keybinding tab in preferences dialog
578
[pref_dialog_keys.jpg]
582
For more information see Section 3.9.
584
Figure 3-9. VTE tab in preferences dialog
586
[pref_dialog_vte.jpg]
587
_________________________________________________________
589
3.6.1. Compile time options
591
There are some options which can only be changed at compile
592
time. To change these options, edit the file src/geany.h. Look
593
for a block of lines starting with "#define GEANY_*". Any
594
definitions which are not listed here should not be changed.
596
Table 3-3. Compile time options
597
Option Description Default
598
GEANY_MAX_OPEN_FILES The limit to how many files can be open
600
GEANY_SESSION_FILES How many files should be reopened from the
601
last run. Obviously, the value should be smaller than
602
GEANY_MAX_OPEN_FILES. 15
603
GEANY_WORDCHARS These characters define word boundaries. (look
605
GEANY_MAX_AUTOCOMPLETE_WORDS How many auto completion
606
suggestions should Geany provide. 30
607
GEANY_STRING_UNTITLED A string used as the default name for
608
new files. Be aware that the string can be translated, so
609
change it only if you know what you are doing. untitled
610
GEANY_CHECK_FILE_DELAY Time in seconds between checking a file
611
for external changes. 30
612
GEANY_WINDOW_MINIMAL_WIDTH The minimal width of the main
614
GEANY_WINDOW_MINIMAL_HEIGHT The minimal height of the main
616
GEANY_WINDOW_DEFAULT_WIDTH The default width of the main
617
window at the first start. 900
618
GEANY_WINDOW_DEFAULT_HEIGHT The default height of the main
619
window at the first start. 600
621
GEANY_DEFAULT_TOOLS_MAKE The make tool. This can also include
623
GEANY_DEFAULT_TOOLS_TERMINAL A terminal emulator. It has to
624
accept the command line option "-e". This can also include a
626
GEANY_DEFAULT_TOOLS_BROWSER A web browser. This can also
627
include a path. "mozilla"
628
GEANY_DEFAULT_TOOLS_PRINTCMD A printing tool. It should be
629
able to accept and process plain text files. This can also
630
include a path. "lpr"
631
GEANY_DEFAULT_TOOLS_GREP A grep tool. It should be compatible
632
with GNU grep. This can also include a path. "grep"
633
GEANY_DEFAULT_MRU_LENGHTH The length of the "Recent files"
635
GEANY_DEFAULT_FONT_SYMBOL_LIST The font used in sidebar to
636
show symbols and open files. "Cursor 8"
637
GEANY_DEFAULT_FONT_MSG_WINDOW The font used in the messages
639
GEANY_DEFAULT_FONT_EDITOR The font used in the editor window.
641
_________________________________________________________
645
Geany has an integrated build system. Firstly this means that
646
the current source file will be saved before it is processed.
647
This is for convenience so that you don't need to keep saving
648
small changes to the current file before building.
650
Secondly the output for Compile, Build and Make actions will
651
be captured in the Compiler notebook tab of the messages
652
window (assuming you have it visible). If there are any
653
warnings or errors with line numbers shown in the Compiler
654
output tab, you can double click on them and Geany will switch
655
to the relevant source file (if it is open) and mark the line
656
number so the problem can be corrected. Geany will also set
657
indicators for warnings or errors with line numbers.
659
Depending on the current file's filetype, the Build menu will
660
contain the following items:
668
* Set Includes and Arguments
669
_________________________________________________________
673
The Compile command has different uses for different kinds of
676
For compilable languages such as C and C++, the Compile
677
command is setup to compile the current source file into a
680
Java source files will be compiled to class file bytecode.
681
Interpreted languages such as Perl, Python, Ruby will compile
682
to bytecode if the language supports it, or will run a syntax
683
check, or failing that will run the file in its language
685
_________________________________________________________
689
For compilable languages such as C and C++, the Build command
690
will link the current source file's equivalent object file
691
into an executable. If the object file does not exist, the
692
source will be compiled and linked in one step, producing just
693
the executable binary.
695
Interpreted languages do not use the Build command.
696
_________________________________________________________
700
This effectively runs "make all" in the same directory as the
705
For each of the Make commands, The Make tool path must be
706
correctly set in the Tools tab of the Preferences dialog.
707
_________________________________________________________
709
3.7.4. Make custom target
711
This is similar to running 'Make all' but you will be prompted
712
for the make target name to be passed to the Make tool. For
713
example, typing 'clean' in the dialog prompt will run "make
715
_________________________________________________________
719
Make object will run "make current_file.o" in the same
720
directory as the current file, using its prefix for
721
'current_file'. It is useful for compiling just the current
722
file without building the whole project.
723
_________________________________________________________
727
Execute will run the corresponding executable file, shell
728
script or interpreted script in a terminal window. Note that
729
the Terminal tool path must be correctly set in the Tools tab
730
of the Preferences dialog - you can use any terminal program
731
that runs a Bourne compatible shell.
733
After your program or script has finished executing, you will
734
be prompted to press the return key. This allows you to review
735
any text output from the program before the terminal window is
737
_________________________________________________________
739
3.7.7. Set Includes and Arguments
741
By default the Compile and Build commands invoke the compiler
742
and linker with only the basic arguments needed by all
743
programs. Using Set Includes and Arguments you can add any
744
include paths and compile flags for the compiler, any library
745
names and paths for the linker, and any arguments you want to
746
use when running Execute.
750
If you are using the Build command to compile and link in one
751
step, you will need to set both the compiler arguments and the
752
linker arguments in the linker command setting.
754
These settings are not saved when Geany is shut down. See
755
below for how to set permanent arguments.
757
If you need complex settings for your build system, or several
758
different settings, then writing a Makefile and using the Make
759
commands is recommended.
760
_________________________________________________________
764
Indicators are red squiggly underlines which are used to
765
highlight errors which occured while compiling the current
766
file. So you can easily see where your code failed to compile.
767
To remove the indicators, just click on "Remove all
768
indicators" in the document file menu.
770
If you do not like this feature, you can disable it in the
772
_________________________________________________________
774
3.7.9. File type configuration settings
776
You can set the commands to run for compiling, building or
777
executing by opening the relevant filetypes.* configuration
778
file, and checking the [build_settings] section. See Section
779
4.1 for more information.
780
_________________________________________________________
782
3.8. Printing support
784
Geany has basic printing support. This means you can print a
785
file by passing the filename of the current file to a command
786
which actually prints the file. However, the printed document
787
contains no syntax highlighting. You can adjust the command to
788
which the filename is passed in the preferences dialog. The
466
Obviously, you have to adjust the paths and set X to the number of your
469
Character sets and Unicode Byte-Order-Mark (BOM)
473
Geany provides support for detecting and converting character sets. So you can
474
open and save files in different character sets and even can convert a file
475
from a character set to another one. To do this, Geany uses the character
476
conversion capabilities of the GLib.
478
Only text files are supported, i.e. opening files which contain NUL-bytes may
479
fail. Geany will try to open the file anyway but it is likely that the file
480
will be truncated because it can only opened up to the first occurrence of the
481
first NUL-byte. All characters after this position are lost and are not written
482
when you save the file.
484
Geany tries to detect the encoding of a file while opening it. It might be that
485
the encoding of a file cannot be detected correctly so you have to set manually
486
the encoding of the file in order to display it correctly. You can this in the
487
file open dialog by selecting an encoding in the drop down box or by reloading
488
the file with the file menu item "Reload as". The auto detection works well for
489
most encodings but there are also some encodings known where auto detection has
490
its problems. Auto detecting the encoding of a file is not easy and sometimes
491
an encoding might be detected not correctly.
493
There are different ways to use different encodings in Geany:
495
1. Using the file open dialog
497
This opens the file with the encoding specified in the encoding drop down
498
box. If the encoding is set to "Detect from file" auto detection will be
499
used. If the encoding is set to "Without encoding (None)" the file will be
500
opened without any character conversion and Geany will not try to auto
501
detect the encoding(see below for more information).
503
2. Using the "Reload as" menu item
505
This item reloads the current file with the specified encoding. It can help
506
if you opened a file and found out that a wrong encoding was used.
508
3. Using the "Set encoding" menu item
510
In contrary to the above two options, this will not change or reload the
511
current file unless you save it. It is useful when you want to change the
512
encoding of the file.
514
Special encoding "None"
516
There is a special encoding "None" which is actually no real encoding. It is
517
useful when you know that Geany cannot auto detect the encoding of a file and
518
it is not displayed correctly. Especially when the file contains NUL-bytes this
519
can be useful to skip auto detection and open the file properly at least until
520
the occurrence of the first NUL-byte. Using this encoding opens the file as it
521
is without any character conversion.
523
Unicode Byte-Order-Mark (BOM)
525
Furthermore, Geany detects an Unicode Byte Order Mark (see http://
526
en.wikipedia.org/wiki/Byte_Order_Mark for details). Of course, this feature is
527
only available if the opened file is in an unicode encoding. The Byte Order
528
Mark helps to detect the encoding of a file, e.g. whether it is UTF-16LE or
529
UTF-16BE and so on. On Unix-like systems using a Byte Order Mark could cause
530
some problems, e.g. the gcc stops with stray errors, PHP does not parse a
531
script containing a BOM and script files starting with a she-bang maybe cannot
532
be started. In the status bar you can easily see whether the file starts with a
533
BOM or not. If you want to set a BOM for a file or if you want to remove it
534
from a file, just use the document menu and toggle the checkbox.
538
If you are unsure what a BOM is or if you do not understand where to use it,
539
then it is not important for you and you can safely ignore it.
541
Search, replace and go to
543
This section describes search-related commands from the Search menu and the
544
editor window's popup menu:
554
● Go to tag definition *
556
● Go to tag declaration *
560
* These items are available from the editor window's popup menu, or by using a
561
keyboard shortcut (see the section called “Keybindings”).
565
The Find dialog is used for finding text within the current document. The
566
syntax for the "Use regular expressions" option is shown in Table 3.2, “Regular
569
Figure 3.1. Find dialog
576
Find usage searches all open files. If there is a selection, then it is used as
577
the search text; otherwise the current word is used. The current word is either
578
taken from the word nearest the edit cursor, or the word underneath the popup
579
menu click position when the popup menu is used. The search results are shown
580
in the Messages window.
584
Find in files is a more powerful version of Find usage that searches all files
585
in a certain directory using the Grep tool. The Grep tool must be correctly set
586
in Preferences to the path of the system's Grep utility.
588
Figure 3.2. Find in files dialog
595
The Replace dialog has the same options for finding text as the Find dialog.
596
There is also a "Replace in all files" option, which is used with the Replace
597
All button to perform the replacement for all open files.
599
Figure 3.3. Replace dialog
604
The "Use regular expressions" option applies both to the search string and to
605
the replacement text; for the latter back references can be used - see the
606
entry for '\n' in Table 3.2, “Regular expressions”.
610
If the current word is the name of a function and the file containing the
611
function definition (a.k.a. function body) is open, Go to tag definition will
612
switch to that file and go to the corresponding line number. The current word
613
is either taken from the word nearest the edit cursor, or the word underneath
614
the popup menu click position when the popup menu is used.
616
Go to tag declaration
618
Like Go to tag definition, but for a forward function declaration (a.k.a.
619
function prototype) instead of a function definition.
623
Go to a particular line number in the current file.
627
You can use regular expressions in the Find and Replace dialogs by selecting
628
the "Use regular expressions" check box. The syntax is POSIX-like, as described
629
below in Table 3.2, “Regular expressions”.
633
Searching backwards with regular expressions is not supported.
635
Table 3.2. Regular expressions
637
┌─────────────────────────────────────────────────────────────────────────────┐
638
│ In a regular expression, the following characters are interpreted: │
639
├────────┬────────────────────────────────────────────────────────────────────┤
640
│ . │ Matches any character. │
641
├────────┼────────────────────────────────────────────────────────────────────┤
642
│ ( │ This marks the start of a region for tagging a match. │
643
├────────┼────────────────────────────────────────────────────────────────────┤
644
│ ) │ This marks the end of a tagged region. │
645
├────────┼────────────────────────────────────────────────────────────────────┤
646
│ │ Where n is 1 through 9 refers to the first through ninth tagged │
647
│ \n │ region when replacing. For example, if the search string was Fred │
648
│ │ ([1-9])XXX and the replace string was Sam\1YYY, when applied to │
649
│ │ Fred2XXX this would generate Sam2YYY. │
650
├────────┼────────────────────────────────────────────────────────────────────┤
651
│ \< │ This matches the start of a word. │
652
├────────┼────────────────────────────────────────────────────────────────────┤
653
│ \> │ This matches the end of a word. │
654
├────────┼────────────────────────────────────────────────────────────────────┤
655
│ │ This allows you to use a character x that would otherwise have a │
656
│ \x │ special meaning. For example, \[ would be interpreted as [ and not │
657
│ │ as the start of a character set. Use \\ for a literal backslash. │
658
├────────┼────────────────────────────────────────────────────────────────────┤
659
│ │ This indicates a set of characters, for example, [abc] means any │
660
│ [...] │ of the characters a, b or c. You can also use ranges, for example │
661
│ │ [a-z] for any lower case character. │
662
├────────┼────────────────────────────────────────────────────────────────────┤
663
│ [^...] │ The complement of the characters in the set. For example, [^ │
664
│ │ A-Za-z] means any character except an alphabetic character. │
665
├────────┼────────────────────────────────────────────────────────────────────┤
666
│ ^ │ This matches the start of a line (unless used inside a set, see │
668
├────────┼────────────────────────────────────────────────────────────────────┤
669
│ $ │ This matches the end of a line. │
670
├────────┼────────────────────────────────────────────────────────────────────┤
671
│ * │ This matches 0 or more times. For example, Sa*m matches Sm, Sam, │
672
│ │ Saam, Saaam and so on. │
673
├────────┼────────────────────────────────────────────────────────────────────┤
674
│ + │ This matches 1 or more times. For example, Sa+m matches Sam, Saam, │
675
│ │ Saaam and so on. │
676
└────────┴────────────────────────────────────────────────────────────────────┘
679
Partial POSIX compatibility
681
Note that the POSIX '?' regular expression character for optional matching is
682
not supported by the Find and Replace dialogs.
688
Figure 3.4. General tab in preferences dialog
690
General tab in preferences dialog
693
Figure 3.5. Interface tab in preferences dialog
695
Interface tab in preferences dialog
698
Figure 3.6. Toolbar tab in preferences dialog
700
Toolbar tab in preferences dialog
703
Figure 3.7. Files tab in preferences dialog
705
Files tab in preferences dialog
708
Figure 3.8. Editor tab in preferences dialog
710
Editor tab in preferences dialog
713
Figure 3.9. Tools tab in preferences dialog
715
Tools tab in preferences dialog
718
Figure 3.10. Template tab in preferences dialog
720
Template tab in preferences dialog
723
Figure 3.11. Keybinding tab in preferences dialog
725
Keybinding tab in preferences dialog
730
For more information see the section called “Keybindings”.
732
Figure 3.12. VTE tab in preferences dialog
734
VTE tab in preferences dialog
739
There are some options which can only be changed at compile time. To change
740
these options, edit the file src/geany.h. Look for a block of lines starting
741
with “#define GEANY_*”. Any definitions which are not listed here should not be
744
Table 3.3. Compile time options
746
┌────────────────────────────────┬──────────────────────────────┬─────────────┐
747
│ Option │ Description │ Default │
748
├────────────────────────────────┼──────────────────────────────┼─────────────┤
749
│ │ These characters define word │ │
750
│ GEANY_WORDCHARS │ boundaries when making │ (look at │
751
│ │ selections and searching │ sourcecode) │
752
│ │ using word matching options. │ │
753
├────────────────────────────────┼──────────────────────────────┼─────────────┤
754
│ │ How many auto completion │ │
755
│ GEANY_MAX_AUTOCOMPLETE_WORDS │ suggestions should Geany │ 30 │
757
├────────────────────────────────┼──────────────────────────────┼─────────────┤
758
│ │ How many suggestions should │ │
759
│ GEANY_MAX_AUTOCOMPLETE_HEIGHT │ be visible in the auto │ 10 │
760
│ │ completion list. │ │
761
├────────────────────────────────┼──────────────────────────────┼─────────────┤
762
│ │ A string used as the default │ │
763
│ │ name for new files. Be aware │ │
764
│ GEANY_STRING_UNTITLED │ that the string can be │ untitled │
765
│ │ translated, so change it │ │
766
│ │ only if you know what you │ │
768
├────────────────────────────────┼──────────────────────────────┼─────────────┤
769
│ │ Time in seconds between │ │
770
│ GEANY_CHECK_FILE_DELAY │ checking a file for external │ 30 │
772
├────────────────────────────────┼──────────────────────────────┼─────────────┤
773
│ GEANY_WINDOW_MINIMAL_WIDTH │ The minimal width of the │ 620 │
775
├────────────────────────────────┼──────────────────────────────┼─────────────┤
776
│ GEANY_WINDOW_MINIMAL_HEIGHT │ The minimal height of the │ 440 │
778
├────────────────────────────────┼──────────────────────────────┼─────────────┤
779
│ │ The default width of the │ │
780
│ GEANY_WINDOW_DEFAULT_WIDTH │ main window at the first │ 900 │
782
├────────────────────────────────┼──────────────────────────────┼─────────────┤
783
│ │ The default height of the │ │
784
│ GEANY_WINDOW_DEFAULT_HEIGHT │ main window at the first │ 600 │
786
├────────────────────────────────┴──────────────────────────────┴─────────────┤
788
├────────────────────────────────┬──────────────────────────────┬─────────────┤
789
│ GEANY_DEFAULT_TOOLS_MAKE │ The make tool. This can also │ "make" │
790
│ │ include a path. │ │
791
├────────────────────────────────┼──────────────────────────────┼─────────────┤
792
│ │ A terminal emulator. It has │ │
793
│ GEANY_DEFAULT_TOOLS_TERMINAL │ to accept the command line │ "xterm" │
794
│ │ option "-e". This can also │ │
795
│ │ include a path. │ │
796
├────────────────────────────────┼──────────────────────────────┼─────────────┤
797
│ GEANY_DEFAULT_TOOLS_BROWSER │ A web browser. This can also │ "mozilla" │
798
│ │ include a path. │ │
799
├────────────────────────────────┼──────────────────────────────┼─────────────┤
800
│ │ A printing tool. It should │ │
801
│ │ be able to accept and │ │
802
│ GEANY_DEFAULT_TOOLS_PRINTCMD │ process plain text files. │ "lpr" │
803
│ │ This can also include a │ │
805
├────────────────────────────────┼──────────────────────────────┼─────────────┤
806
│ │ A grep tool. It should be │ │
807
│ GEANY_DEFAULT_TOOLS_GREP │ compatible with GNU grep. │ "grep" │
808
│ │ This can also include a │ │
810
├────────────────────────────────┼──────────────────────────────┼─────────────┤
811
│ GEANY_DEFAULT_MRU_LENGHTH │ The length of the "Recent │ "10" │
813
├────────────────────────────────┼──────────────────────────────┼─────────────┤
814
│ GEANY_DEFAULT_FONT_SYMBOL_LIST │ The font used in sidebar to │ "Sans 9" │
815
│ │ show symbols and open files. │ │
816
├────────────────────────────────┼──────────────────────────────┼─────────────┤
817
│ GEANY_DEFAULT_FONT_MSG_WINDOW │ The font used in the │ "Sans 9" │
818
│ │ messages window. │ │
819
├────────────────────────────────┼──────────────────────────────┼─────────────┤
820
│ GEANY_DEFAULT_FONT_EDITOR │ The font used in the editor │ "Monospace │
822
├────────────────────────────────┴──────────────────────────────┴─────────────┤
824
├────────────────────────────────┬──────────────────────────────┬─────────────┤
825
│ │ Set this to 1 if you want to │ │
826
│ │ use the default Windows file │ │
827
│ │ open dialog instead GTK's │ │
828
│ │ file open dialog. The │ │
829
│ │ default Windows file open │ │
830
│ GEANY_USE_WIN32_DIALOG │ dialog is missing some nice │ 0 │
831
│ │ features like choosing a │ │
832
│ │ filetype or an encoding. Do │ │
833
│ │ not touch this setting when │ │
834
│ │ building on a non-Win32 │ │
836
└────────────────────────────────┴──────────────────────────────┴─────────────┘
841
Geany has an integrated build system. Firstly this means that the current
842
source file will be saved before it is processed. This is for convenience so
843
that you don't need to keep saving small changes to the current file before
846
Secondly the output for Compile, Build and Make actions will be captured in the
847
Compiler notebook tab of the messages window (assuming you have it visible). If
848
there are any warnings or errors with line numbers shown in the Compiler output
849
tab, you can double click on them and Geany will switch to the relevant source
850
file (if it is open) and mark the line number so the problem can be corrected.
851
Geany will also set indicators for warnings or errors with line numbers.
853
Depending on the current file's filetype, the Build menu will contain the
868
● Set Includes and Arguments
872
The Compile command has different uses for different kinds of files.
874
For compilable languages such as C and C++, the Compile command is setup to
875
compile the current source file into a binary object file.
877
Java source files will be compiled to class file bytecode. Interpreted
878
languages such as Perl, Python, Ruby will compile to bytecode if the language
879
supports it, or will run a syntax check, or failing that will run the file in
880
its language interpreter.
884
For compilable languages such as C and C++, the Build command will link the
885
current source file's equivalent object file into an executable. If the object
886
file does not exist, the source will be compiled and linked in one step,
887
producing just the executable binary.
889
Interpreted languages do not use the Build command.
893
This effectively runs "make all" in the same directory as the current file.
897
For each of the Make commands, The Make tool path must be correctly set in the
898
Tools tab of the Preferences dialog.
902
This is similar to running 'Make all' but you will be prompted for the make
903
target name to be passed to the Make tool. For example, typing 'clean' in the
904
dialog prompt will run "make clean".
908
Make object will run "make current_file.o" in the same directory as the current
909
file, using its prefix for 'current_file'. It is useful for compiling just the
910
current file without building the whole project.
914
Execute will run the corresponding executable file, shell script or interpreted
915
script in a terminal window. Note that the Terminal tool path must be correctly
916
set in the Tools tab of the Preferences dialog - you can use any terminal
917
program that runs a Bourne compatible shell and accept the "-e" command line
918
argument to start a command.
920
After your program or script has finished executing, you will be prompted to
921
press the return key. This allows you to review any text output from the
922
program before the terminal window is closed.
924
Stopping running processes
926
If you started a build action (Compile, Build or Run) the Run button in the
927
toolbar becomes a stop button and you can stop the curent action. This works by
928
sending a signal to the process (and its child process(es)) to stop the
929
process. The used signal is SIGQUIT.
931
Depending on the process you started it might occur that the process cannot be
932
stopped. This can happen when the process creates more than one child process.
933
Therefore stopping any make actions is not possible because make creates child
934
processes and these child processes creates again child process. There might be
935
some other programs which cannot be stopped correctly, e.g. "Terminal" (the
936
terminal program of Xfce). Xterm is known to work properly.
938
Set Includes and Arguments
940
By default the Compile and Build commands invoke the compiler and linker with
941
only the basic arguments needed by all programs. Using Set Includes and
942
Arguments you can add any include paths and compile flags for the compiler, any
943
library names and paths for the linker, and any arguments you want to use when
948
If you are using the Build command to compile and link in one step, you will
949
need to set both the compiler arguments and the linker arguments in the linker
952
These settings are not saved when Geany is shut down. See below for how to set
955
If you need complex settings for your build system, or several different
956
settings, then writing a Makefile and using the Make commands is recommended.
960
Indicators are red squiggly underlines which are used to highlight errors which
961
occured while compiling the current file. So you can easily see where your code
962
failed to compile. To remove the indicators, just click on "Remove all
963
indicators" in the document file menu.
965
If you do not like this feature, you can disable it in the preferences dialog.
967
File type configuration settings
969
You can set the commands to run for compiling, building or executing by opening
970
the relevant filetypes.* configuration file, and checking the [build_settings]
971
section. See the section called “Filetype definition files” for more
976
Geany has basic printing support. This means you can print a file by passing
977
the filename of the current file to a command which actually prints the file.
978
However, the printed document contains no syntax highlighting. You can adjust
979
the command to which the filename is passed in the preferences dialog. The
792
%f will be substituted by the filename of the current file.
793
Geany will not show errors from the command itself, so you
794
should make sure that it works before(e.g. by trying to
795
execute it from the command line).
797
A nicer example, which I prefer is:
984
%f will be substituted by the filename of the current file. Geany will not show
985
errors from the command itself, so you should make sure that it works before
986
(e.g. by trying to execute it from the command line).
988
A nicer example, which I prefer is:
798
990
% a2ps -1 --medium=A4 -o - %f | xfprint4
800
But this depends on a2ps and xfprint4. As a replacement for
801
xfprint4, gtklp or similar programs can be used.
805
The printing support of Geany will be improved in the future.
806
With GTK 2.10, better printing (including syntax highlighting)
808
_________________________________________________________
812
Geany supports the default keyboard shortcuts for the
813
Scintilla editing widget. For a list of these commands, see
814
Appendix A. The Scintilla keyboard shortcuts will be
815
overridden by any custom keybindings with the same keyboard
818
For all actions listed below you can define your own
819
keybindings. Open the Preferences dialog, select the desired
820
action and click on change. In the opening dialog you can
821
press any key combination you want and it will be saved when
822
you press OK. You can define only one key combination for one
825
Some of the default key combinations cannot be changed, e.g.
826
menu_new or menu_open. These are set by GTK and should be
827
kept, but you can still add other key combinations for these
828
actions. For example to execute menu_open by default Ctrl-O is
829
set, but you can also define Alt-O, so that the file open
830
dialog is shown by pressing either Ctrl-O or Alt-O.
832
The following table lists all customizable keyboard shortcuts.
834
Table 3-4. Keybindings action table
837
New Creates a new file.
839
Save Saves the current file.
840
Save all Saves all open files.
841
Close all Closes all open files.
842
Close Closes the current file.
843
Reload file Reloads the current file. All unsaved changes will
845
Print Prints the current file.
846
Undo Undoes the last action.
847
Redo Redoes the last action.
848
Select all Makes a selection of all text in the current
850
Preferences Opens preferences dialog.
851
Find Next Finds next result.
852
Find Previous Finds previous result.
853
Replace Opens the Replace dialog.
854
Find in files Opens the Find in files dialog.
855
Go to line Opens the Go to line dialog.
856
Show Colour Chooser Opens the Colour Chooser dialog.
857
Fullscreen Switches to fullscreen mode.
858
Toggle Messages Window Toggles the message window (status and
859
compiler messages) on and off.
860
Toggle Sidebar Shows or hides the sidebar.
861
Zoom In Zooms in the text
862
Zoom Out Zooms out the text
863
Replace tabs by space Replaces all tabs with the right amount
865
Fold all Folds all contractible code blocks.
866
Unfold all Unfolds all contracted code blocks.
868
Compile Compiles the current file.
869
Build Builds (compiles if necessary and links) the current
871
Make all Builds the current file with the Make tool.
872
Make custom target Builds the current file with the Make tool
874
Make object Compiles the current file with the Make tool.
875
Run Executes the current file in a terminal emulation.
876
Run (alternative command) Executes the current file in a
878
Build options Opens the build options dialog.
880
Reload symbol list Reloads the tag/symbol list.
881
Switch to Editor Switches to editor widget.
882
Switch to Scribble Switches to scribble widget.
883
Switch to VTE Switches to VTE widget.
884
Switch to left document Switches to the previous open
886
Switch to right document Switches to the next open document.
888
Duplicate line or selection Duplicates the current line or
890
Comment line Comments current line or selection.
891
Complete word Shows auto completion list.
892
Show calltip Shows call tips for the current function or
894
Show macro list Shows a list of available macros and variables
896
Suppress auto completion If you type something like if or for
897
and press this key, it will not be auto completed.
898
Find Usage Finds all occurrences of the current word (near the
899
keyboard cursor) and displays them in the messages window.
900
Go to tag definition Jump to the definition of the current
901
word (near the keyboard cursor). If the definition cannot be
902
found (e.g. the relevant file is not open) Geany will beep and
903
do nothing. Used for function definitions.
904
Go to tag declaration Jump to the declaration of the current
905
word (near the keyboard cursor). If the declaration cannot be
906
found (e.g. the relevant file is not open) Geany will beep and
907
do nothing. Used for function prototypes.
908
_________________________________________________________
910
Chapter 4. Configuration files
912
4.1. Filetype definition files
914
All colour definitions and other filetype specific settings
915
are stored in the filetype definition files. Those settings
916
are colours for syntax highlighting, general settings like
917
comment characters or word delimiter characters as well as
918
compiler and linker settings.
920
The system-wide configuration files can be found in
921
$prefix/share/geany and are called filetypes.$ext, where
922
$prefix is the path where Geany is installed (commonly
923
/usr/local) and $ext is the name of the filetype. For every
924
filetype there is a corresponding definition file. There is
925
one exception: filetypes.common - this file is for general
926
settings, which are not specific to a certain filetype. It is
927
not recommended to edit the system-wide files, because they
928
will be overridden when Geany is updated.
930
To change the settings, copy a file from $prefix/share/geany
931
to the subdirectory filedefs in your configuration directory
992
But this depends on a2ps and xfprint4. As a replacement for xfprint4, gtklp or
993
similar programs can be used.
997
The printing support of Geany will be improved in the future. With GTK 2.10,
998
better printing (including syntax highlighting) will be possible.
1002
Geany supports the default keyboard shortcuts for the Scintilla editing widget.
1003
For a list of these commands, see Appendix A, Scintilla keyboard commands. The
1004
Scintilla keyboard shortcuts will be overridden by any custom keybindings with
1005
the same keyboard shortcut.
1007
For all actions listed below you can define your own keybindings. Open the
1008
Preferences dialog, select the desired action and click on change. In the
1009
opening dialog you can press any key combination you want and it will be saved
1010
when you press OK. You can define only one key combination for one action.
1012
Some of the default key combinations cannot be changed, e.g. menu_new or
1013
menu_open. These are set by GTK and should be kept, but you can still add other
1014
key combinations for these actions. For example to execute menu_open by default
1015
Ctrl-O is set, but you can also define Alt-O, so that the file open dialog is
1016
shown by pressing either Ctrl-O or Alt-O.
1018
The following table lists all customizable keyboard shortcuts.
1020
Table 3.4. Keybindings action table
1022
┌──────────────┬──────────────────────────────────────────────────────────────┐
1023
│ Action │ Description │
1024
├──────────────┴──────────────────────────────────────────────────────────────┤
1026
├──────────────┬──────────────────────────────────────────────────────────────┤
1027
│ New │ Creates a new file. │
1028
├──────────────┼──────────────────────────────────────────────────────────────┤
1029
│ Open │ Opens a file. │
1030
├──────────────┼──────────────────────────────────────────────────────────────┤
1031
│ Save │ Saves the current file. │
1032
├──────────────┼──────────────────────────────────────────────────────────────┤
1033
│ Save all │ Saves all open files. │
1034
├──────────────┼──────────────────────────────────────────────────────────────┤
1035
│ Close all │ Closes all open files. │
1036
├──────────────┼──────────────────────────────────────────────────────────────┤
1037
│ Close │ Closes the current file. │
1038
├──────────────┼──────────────────────────────────────────────────────────────┤
1039
│ Reload file │ Reloads the current file. All unsaved changes will be lost. │
1040
├──────────────┼──────────────────────────────────────────────────────────────┤
1041
│ Print │ Prints the current file. │
1042
├──────────────┼──────────────────────────────────────────────────────────────┤
1043
│ Undo │ Undoes the last action. │
1044
├──────────────┼──────────────────────────────────────────────────────────────┤
1045
│ Redo │ Redoes the last action. │
1046
├──────────────┼──────────────────────────────────────────────────────────────┤
1047
│ Select all │ Makes a selection of all text in the current document. │
1048
├──────────────┼──────────────────────────────────────────────────────────────┤
1049
│ Preferences │ Opens preferences dialog. │
1050
├──────────────┼──────────────────────────────────────────────────────────────┤
1051
│ Find Next │ Finds next result. │
1052
├──────────────┼──────────────────────────────────────────────────────────────┤
1053
│ Find │ Finds previous result. │
1055
├──────────────┼──────────────────────────────────────────────────────────────┤
1056
│ Replace │ Opens the Replace dialog. │
1057
├──────────────┼──────────────────────────────────────────────────────────────┤
1058
│ Find in │ Opens the Find in files dialog. │
1060
├──────────────┼──────────────────────────────────────────────────────────────┤
1061
│ Go to line │ Opens the Go to line dialog. │
1062
├──────────────┼──────────────────────────────────────────────────────────────┤
1063
│ Show Colour │ Opens the Colour Chooser dialog. │
1065
├──────────────┼──────────────────────────────────────────────────────────────┤
1066
│ Fullscreen │ Switches to fullscreen mode. │
1067
├──────────────┼──────────────────────────────────────────────────────────────┤
1068
│ Toggle │ Toggles the message window (status and compiler messages) on │
1069
│ Messages │ and off. │
1071
├──────────────┼──────────────────────────────────────────────────────────────┤
1072
│ Toggle │ Shows or hides the sidebar. │
1074
├──────────────┼──────────────────────────────────────────────────────────────┤
1075
│ Zoom In │ Zooms in the text │
1076
├──────────────┼──────────────────────────────────────────────────────────────┤
1077
│ Zoom Out │ Zooms out the text │
1078
├──────────────┼──────────────────────────────────────────────────────────────┤
1079
│ Replace tabs │ Replaces all tabs with the right amount of spaces. │
1081
├──────────────┼──────────────────────────────────────────────────────────────┤
1082
│ Fold all │ Folds all contractible code blocks. │
1083
├──────────────┼──────────────────────────────────────────────────────────────┤
1084
│ Unfold all │ Unfolds all contracted code blocks. │
1085
├──────────────┴──────────────────────────────────────────────────────────────┤
1087
├──────────────┬──────────────────────────────────────────────────────────────┤
1088
│ Compile │ Compiles the current file. │
1089
├──────────────┼──────────────────────────────────────────────────────────────┤
1090
│ Build │ Builds (compiles if necessary and links) the current file. │
1091
├──────────────┼──────────────────────────────────────────────────────────────┤
1092
│ Make all │ Builds the current file with the Make tool. │
1093
├──────────────┼──────────────────────────────────────────────────────────────┤
1094
│ Make custom │ Builds the current file with the Make tool and a given │
1095
│ target │ target. │
1096
├──────────────┼──────────────────────────────────────────────────────────────┤
1097
│ Make object │ Compiles the current file with the Make tool. │
1098
├──────────────┼──────────────────────────────────────────────────────────────┤
1099
│ Run │ Executes the current file in a terminal emulation. │
1100
├──────────────┼──────────────────────────────────────────────────────────────┤
1102
│ (alternative │ Executes the current file in a terminal emulation. │
1104
├──────────────┼──────────────────────────────────────────────────────────────┤
1105
│ Build │ Opens the build options dialog. │
1107
├──────────────┴──────────────────────────────────────────────────────────────┤
1109
├──────────────┬──────────────────────────────────────────────────────────────┤
1110
│ Reload │ Reloads the tag/symbol list. │
1112
├──────────────┼──────────────────────────────────────────────────────────────┤
1113
│ Switch to │ Switches to editor widget. │
1115
├──────────────┼──────────────────────────────────────────────────────────────┤
1116
│ Switch to │ Switches to scribble widget. │
1118
├──────────────┼──────────────────────────────────────────────────────────────┤
1119
│ Switch to │ Switches to VTE widget. │
1121
├──────────────┼──────────────────────────────────────────────────────────────┤
1123
│ left │ Switches to the previous open document. │
1125
├──────────────┼──────────────────────────────────────────────────────────────┤
1127
│ right │ Switches to the next open document. │
1129
├──────────────┴──────────────────────────────────────────────────────────────┤
1130
│ Editing operations │
1131
├──────────────┬──────────────────────────────────────────────────────────────┤
1133
│ line or │ Duplicates the current line or selection. │
1135
├──────────────┼──────────────────────────────────────────────────────────────┤
1136
│ Comment line │ Comments current line or selection. │
1137
├──────────────┼──────────────────────────────────────────────────────────────┤
1138
│ Uncomment │ Uncomments current line or selection. │
1140
├──────────────┼──────────────────────────────────────────────────────────────┤
1141
│ Toggle line │ Comments a line if it is not commented or removes a comment │
1142
│ commentation │ if the line is commented. │
1143
├──────────────┼──────────────────────────────────────────────────────────────┤
1144
│ Increase │ Indents the current line or selection by one tabulator. │
1146
├──────────────┼──────────────────────────────────────────────────────────────┤
1147
│ Decrease │ Removes one tabulator from the indentation of the current │
1148
│ indent │ line or selection. │
1149
├──────────────┼──────────────────────────────────────────────────────────────┤
1150
│ Goto │ If the cursor is ahead or behind a brace, then it is moved │
1151
│ matching │ to the brace which belongs to the current one. If this │
1152
│ brace │ keyboard shortcut is pressed again, the cursor is moved back │
1153
│ │ to the first brace. │
1154
├──────────────┼──────────────────────────────────────────────────────────────┤
1155
│ Complete │ Shows auto completion list. │
1157
├──────────────┼──────────────────────────────────────────────────────────────┤
1158
│ Show calltip │ Shows call tips for the current function or method. │
1159
├──────────────┼──────────────────────────────────────────────────────────────┤
1160
│ Show macro │ Shows a list of available macros and variables in the │
1161
│ list │ workspace. │
1162
├──────────────┼──────────────────────────────────────────────────────────────┤
1163
│ Suppress │ If you type something like if or for and press this key, it │
1164
│ auto │ will not be auto completed. │
1166
├──────────────┼──────────────────────────────────────────────────────────────┤
1167
│ Find Usage │ Finds all occurrences of the current word (near the keyboard │
1168
│ │ cursor) and displays them in the messages window. │
1169
├──────────────┼──────────────────────────────────────────────────────────────┤
1170
│ │ Jump to the definition of the current word (near the │
1171
│ Go to tag │ keyboard cursor). If the definition cannot be found (e.g. │
1172
│ definition │ the relevant file is not open) Geany will beep and do │
1173
│ │ nothing. Used for function definitions. │
1174
├──────────────┼──────────────────────────────────────────────────────────────┤
1175
│ │ Jump to the declaration of the current word (near the │
1176
│ Go to tag │ keyboard cursor). If the declaration cannot be found (e.g. │
1177
│ declaration │ the relevant file is not open) Geany will beep and do │
1178
│ │ nothing. Used for function prototypes. │
1179
└──────────────┴──────────────────────────────────────────────────────────────┘
1182
Chapter 4. Configuration files
1186
Filetype definition files
1189
Special file filetypes.common
1194
Filetype definition files
1196
All colour definitions and other filetype specific settings are stored in the
1197
filetype definition files. Those settings are colours for syntax highlighting,
1198
general settings like comment characters or word delimiter characters as well
1199
as compiler and linker settings.
1201
The system-wide configuration files can be found in $prefix/share/geany and are
1202
called filetypes.$ext, where $prefix is the path where Geany is installed
1203
(commonly /usr/local) and $ext is the name of the filetype. For every filetype
1204
there is a corresponding definition file. There is one exception:
1205
filetypes.common - this file is for general settings, which are not specific to
1206
a certain filetype. It is not recommended to edit the system-wide files,
1207
because they will be overridden when Geany is updated.
1209
To change the settings, copy a file from $prefix/share/geany to the
1210
subdirectory filedefs in your configuration directory (usually ~/.geany/).
935
1214
% cp /usr/local/share/geany/filetypes.c /home/username/.geany/filedefs/
937
Then you can edit the file and the changes are also available
938
after an update of Geany because they reside in your
939
configuration directory. Alternatively, you can create a file
940
~/.geany/filedefs/filetypes.X and add only these settings you
941
want to change. All missing settings will be read from the
942
corresponding global definition file in $prefix/share/geany.
943
_________________________________________________________
947
4.1.1.1. [styling] Section
949
In this section the colours for syntax highlighting are
950
defined. The format is always:
951
key=forground_colour;background_colour;bold;italic
953
Colours have to be specified as RGB hex values prefixed by 0x.
954
For example red is 0xff0000, blue is 0x0000ff. The values are
955
case-insensitive, but it is a good idea to use small letters.
956
Bold and italic are flags and should only be "true" or
957
"false". If their value is something other than "true" or
958
"false", "false" is assumed.
959
_________________________________________________________
961
4.1.1.2. [keywords] Section
963
This section contains keys for different keyword lists
964
specific to the filetype. Some filetypes do not support
965
keywords, so adding a new key will not work. You can only add
966
or remove keywords to/from an existing list.
970
The keywords list must be in one line without line ending
972
_________________________________________________________
974
4.1.1.3. [settings] Section
976
Table 4-1. General settings
977
Key Description Example
978
wordchars Word delimiting characters. These characters define
979
word boundaries. (look at sourcecode)
980
comment_open A character or string which is used to comment
981
code. If you want to use multiline comments, also set
982
comment_close, otherwise leave it empty. comment_open=/*
983
comment_close If multiline comments are used, this is the
984
character or string to close the comment. comment_close=*/
985
comment_use_indent Set this to false if a comment character or
986
string should start at column 0 of a line. If set to true it
987
uses any indentation of the line.
989
Example 4-1. Comment indentation
991
comment_use_indent=true would generate this if a line is
992
commented (e.g. with Ctrl-D)
995
comment_use_indent=false would generate this if a line is
996
commented (e.g. with Ctrl-D)
1001
This setting only works for single line comments.
1002
comment_use_indent=true
1003
_________________________________________________________
1005
4.1.1.4. [build_settings] Section
1007
Table 4-2. Build settings
1008
Key Description Example
1009
compiler This item specifies the command to compile source
1010
code files. But it is also possible to use it with interpreted
1011
languages like Perl or Python. With these filetypes you can
1012
use this option as a kind of syntax parser, which sends output
1013
to the compiler message window.
1015
You should quote the filename to also support filenames with
1016
spaces. The following wildcards for filenames are available:
1018
* %f - complete filename without path
1019
* %e - filename without path and without extension
1021
compiler=gcc -Wall -c "%f"
1022
linker This item specifies the command to link the file. If
1023
the file is not already compiled, it will be compiled while
1024
linking. The -o option is automatically added by Geany. This
1025
item works well with GNU gcc, but may be problematic with
1026
other compilers (esp. with the linker). linker=gcc -Wall "%f"
1027
run_cmd Use this item to execute your file. It has to have
1028
been built already. Use the %e wildcard to have only the name
1029
of the executable (i.e. without extension) or use the %f
1030
wildcard if you need the complete filename, e.g. for shell
1031
scripts. run_cmd="./%e"
1032
_________________________________________________________
1034
4.1.2. Special file filetypes.common
1036
There is a special filetype definition file called
1037
filetypes.common. This file defines some general
1038
non-filetype-specific settings.
1040
Table 4-3. General settings
1041
Key Description Example
1042
selection The style for colouring selected text. The format
1047
* Use foreground colour
1048
* Use background colour
1050
The colours are only set if the 3rd or 4th argument is true.
1051
When the colours are not overridden, the default is a dark
1052
grey background with syntax highlighted foreground text.
1053
selection=0xc0c0c0;0x00007F;true;true
1054
brace_good The style for brace highlighting when a matching
1055
brace was found. brace_good=0xff0000;0xFFFFFF;true;false
1056
brace_bad The style for brace highlighting when no matching
1057
brace was found. brace_bad=0x0000ff;0xFFFFFF;true;false
1058
caret The style for colouring the caret(the blinking cursor).
1059
Only the first argument is interpreted.
1060
caret=0x000000;0x0;false;false
1061
current_line The style for colouring the background of the
1062
current line. Only the second argument is interpreted.
1063
current_line=0x0;0xe5e5e5;false;false
1064
indent_guide The style for colouring the indentation guides.
1065
Only the first and second arguments are interpreted.
1066
indent_guide=0xc0c0c0;0xffffff;false;false
1067
white_space The style for colouring the white space if it is
1068
shown. The first both arguments define the foreground and
1069
background colours, the third argument sets whether to use the
1070
defined colours or to use the colours defined by each filetype
1071
for the white space. white_space=0xc0c0c0;0xffffff;true;false
1072
folding_style The style of folding icons. Only first and
1073
second arguments are used.
1075
Valid values for the first argument are:
1080
Valid values for the second argument are:
1082
* 1 - for straight lines
1083
* 2 - for curved lines
1085
folding_style=1;1;false;false
1086
invert_all Whether to invert all defined colours. This is
1087
useful if you like a dark background colour(e.g. black) and do
1088
not want to change every single line. Please note, at time of
1089
writing this was only tested with the C syntax highlighting.
1091
Only first argument is interpreted. Set it to 1 to invert all
1093
invert_all=0;0;false;false
1094
_________________________________________________________
1096
4.2. Filetype extensions
1098
You can override the default extensions that Geany uses for
1099
each filetype using the filetype_extensions.conf file.
1101
To override the system-wide configuration file, copy it from
1102
$prefix/share/geany to your configuration directory, usually
1103
~/.geany/. $prefix is the path where Geany is installed
1104
(commonly /usr/local).
1107
% cp /usr/local/share/geany/filetype_extensions.conf /home/username/.ge
1110
Then edit it and remove all the lines for filetype extensions
1111
that you do not want to override. The remaining lines can be
1112
edited after the = sign, using a semi-colon separated list of
1113
patterns which should be matched for that filetype.
1115
For example, to set the filetype extensions for Make, the
1116
/home/username/.geany/filetype_extensions.conf file should
1119
[Extensions] Make=Makefile*;*.mk;Buildfile;
1120
_________________________________________________________
1124
Geany supports several templates for file headers, multiline
1125
comments (frame comments), function descriptions, a typical
1126
ChangeLog entry and a short GPL notice. To use these
1127
templates, just open the Edit menu or open the popup menu by
1128
right-clicking in the editor widget, and choose "Insert
1129
Comments" and insert templates as you want.
1131
Some templates (like file header or ChangeLog entry) will
1132
always be inserted at the top of the file.
1134
To insert a function description, the cursor must be inside of
1135
the function, so that the function name can be determined
1136
automatically. The description will be positioned correctly
1137
one line above the function, just check it out. If the cursor
1138
is not inside of a function or the function name cannot be
1139
determined, you cannot insert a function description.
1141
Each template can be customized to your needs. The templates
1142
are in the configuration directory, which is in ~/.geany/ (see
1143
Section 3.2 for further information about the configuration
1144
directory). Just open the desired template with an editor
1145
(ideally Geany ;-) ) and edit the template as your needs.
1146
There are some wildcards which will be automatically replaced
1147
by Geany at startup.
1149
All wildcards must be enclosed by "{" and "}", e.g. {date}.
1151
In the configuration dialog you can find a tab "Templates"
1152
(see Figure 3-7). You can define the default values which will
1153
be inserted in the templates. You should restart Geany after
1154
making changes, because they are only read at startup.
1156
Since Geany 0.3 there are also templates for creating new
1157
files. They can be found in ~/.geany/, too. All template files
1158
for creating new files begin with template.filetype. followed
1159
by the filetype. At creating a new file with a filetype
1160
template, the template for the fileheader is automatically
1161
prepended. Please note that the complete behaviour is still
1162
under development and will probably be changed in one of the
1163
next releases. Sorry.
1166
Table 4-4. Template wildcards
1167
Wildcard Description Available in following templates
1168
developer The name of the developer. filetypes, file header,
1169
function description, ChangeLog entry
1170
initial The developer's initials, e.g. "ET" for Enrico Tröger
1171
or "JFD" for John Foobar Doe. filetypes, file header, function
1172
description, ChangeLog entry
1173
mail The email address of the developer. file header, function
1174
description, ChangeLog entry
1175
company The company the developer is working for. filetypes,
1176
file header, function description, ChangeLog entry
1177
year The current year in the format: YYYY filetypes, file
1178
header, function description, ChangeLog entry
1179
version The initial version of a new file. filetypes, file
1180
header, function description, ChangeLog entry
1181
date The current date in the format: YYYY-MM-DD filetypes,
1182
file header, function description, ChangeLog entry
1183
untitled The string "untitled" (this will be translated to
1184
your locale), used in filetype templates filetypes, file
1185
header, function description, ChangeLog entry
1186
geanyversion The actual Geany version, e.g. "Geany 0.9"
1187
filetypes, file header, function description, ChangeLog entry
1188
datetime The current date and time in the format: DD.MM.YYYY
1189
HH:mm:ss ZZZZ file header, function description
1190
filename The filename of the current file. Only available for
1191
the file header template. file header
1192
gpl This wildcard inserts a short GPL notice. file header
1193
functionname The function name of the function at the cursor
1194
position. This wildcard will only be replaced in the function
1195
description template. function description
1196
If you need any other wildcards or a special date/time format,
1197
please email the author <enrico.troeger@uvena.de>.
1198
_________________________________________________________
1200
Appendix A. Scintilla keyboard commands
1202
A.1. Keyboard commands
1204
Keyboard commands for Scintilla mostly follow common Windows
1205
and GTK+ conventions. All move keys (arrows, page up/down,
1206
home and end) allows to extend or reduce the stream selection
1207
when holding the Shift key, and the rectangular selection when
1208
holding the Shift and Alt keys. Some keys may not be available
1209
with some national keyboards or because they are taken by the
1210
system such as by a window manager on GTK+. Keyboard
1211
equivalents of menu commands are listed in the menus. Some
1212
less common commands with no menu equivalent are:
1214
Table A-1. Scintilla keyboard commands
1216
Magnify text size. Ctrl+Keypad+
1217
Reduce text size. Ctrl+Keypad-
1218
Restore text size to normal. Ctrl+Keypad/
1220
Dedent block. Shift+Tab
1221
Delete to start of word. Ctrl+BackSpace
1222
Delete to end of word. Ctrl+Delete
1223
Delete to start of line. Ctrl+Shift+BackSpace
1224
Delete to end of line. Ctrl+Shift+Delete
1225
Go to start of document. Ctrl+Home
1226
Extend selection to start of document. Ctrl+Shift+Home
1227
Go to start of display line. Alt+Home
1228
Extend selection to start of display line. Alt+Shift+Home
1229
Go to end of document. Ctrl+End
1230
Extend selection to end of document. Ctrl+Shift+End
1231
Go to end of display line. Alt+End
1232
Extend selection to end of display line. Alt+Shift+End
1234
Scroll down. Ctrl+Down
1236
Line copy. Ctrl+Shift+T
1237
Line delete. Ctrl+Shift+L
1238
Line transpose with previous. Ctrl+T
1239
Selection duplicate. Ctrl+D
1240
Previous paragraph. Shift extends selection. Ctrl+[
1241
Next paragraph. Shift extends selection. Ctrl+]
1242
Previous word. Shift extends selection. Ctrl+Left
1243
Next word. Shift extends selection. Ctrl+Right
1244
Previous word part. Shift extends selection Ctrl+/
1245
Next word part. Shift extends selection. Ctrl+\
1246
_________________________________________________________
1248
Appendix B. GNU General Public License
1252
The licenses for most software are designed to take away your
1253
freedom to share and change it. By contrast, the GNU General
1254
Public License is intended to guarantee your freedom to share
1255
and change free software - to make sure the software is free
1256
for all its users. This General Public License applies to most
1257
of the Free Software Foundation's software and to any other
1258
program whose authors commit to using it. (Some other Free
1259
Software Foundation software is covered by the GNU Library
1260
General Public License instead.) You can apply it to your
1263
When we speak of free software, we are referring to freedom,
1264
not price. Our General Public Licenses are designed to make
1265
sure that you have the freedom to distribute copies of free
1266
software (and charge for this service if you wish), that you
1267
receive source code or can get it if you want it, that you can
1268
change the software or use pieces of it in new free programs;
1269
and that you know you can do these things.
1271
To protect your rights, we need to make restrictions that
1272
forbid anyone to deny you these rights or to ask you to
1273
surrender the rights. These restrictions translate to certain
1274
responsibilities for you if you distribute copies of the
1275
software, or if you modify it.
1277
For example, if you distribute copies of such a program,
1278
whether gratis or for a fee, you must give the recipients all
1279
the rights that you have. You must make sure that they, too,
1280
receive or can get the source code. And you must show them
1281
these terms so they know their rights.
1283
We protect your rights with two steps:
1285
1. copyright the software, and
1286
2. offer you this license which gives you legal permission to
1287
copy, distribute and/or modify the software.
1289
Also, for each author's protection and ours, we want to make
1290
certain that everyone understands that there is no warranty
1291
for this free software. If the software is modified by someone
1292
else and passed on, we want its recipients to know that what
1293
they have is not the original, so that any problems introduced
1294
by others will not reflect on the original authors'
1297
Finally, any free program is threatened constantly by software
1298
patents. We wish to avoid the danger that redistributors of a
1299
free program will individually obtain patent licenses, in
1300
effect making the program proprietary. To prevent this, we
1301
have made it clear that any patent must be licensed for
1302
everyone's free use or not licensed at all.
1304
The precise terms and conditions for copying, distribution and
1305
modification follow.
1306
_________________________________________________________
1308
B.2. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
1312
This License applies to any program or other work which
1313
contains a notice placed by the copyright holder saying it may
1314
be distributed under the terms of this General Public License.
1315
The "Program", below, refers to any such program or work, and
1316
a "work based on the Program " means either the Program or any
1317
derivative work under copyright law: that is to say, a work
1318
containing the Program or a portion of it, either verbatim or
1319
with modifications and/or translated into another language.
1320
(Hereinafter, translation is included without limitation in
1321
the term "modification ".) Each licensee is addressed as
1324
Activities other than copying, distribution and modification
1325
are not covered by this License; they are outside its scope.
1326
The act of running the Program is not restricted, and the
1327
output from the Program is covered only if its contents
1328
constitute a work based on the Program (independent of having
1329
been made by running the Program). Whether that is true
1330
depends on what the Program does.
1331
_________________________________________________________
1335
You may copy and distribute verbatim copies of the Program's
1336
source code as you receive it, in any medium, provided that
1337
you conspicuously and appropriately publish on each copy an
1338
appropriate copyright notice and disclaimer of warranty; keep
1339
intact all the notices that refer to this License and to the
1340
absence of any warranty; and give any other recipients of the
1341
Program a copy of this License along with the Program.
1343
You may charge a fee for the physical act of transferring a
1344
copy, and you may at your option offer warranty protection in
1346
_________________________________________________________
1350
You may modify your copy or copies of the Program or any
1351
portion of it, thus forming a work based on the Program, and
1352
copy and distribute such modifications or work under the terms
1353
of Section 1 above, provided that you also meet all of these
1356
1. You must cause the modified files to carry prominent
1357
notices stating that you changed the files and the date of
1359
2. You must cause any work that you distribute or publish,
1360
that in whole or in part contains or is derived from the
1361
Program or any part thereof, to be licensed as a whole at
1362
no charge to all third parties under the terms of this
1364
3. If the modified program normally reads commands
1365
interactively when run, you must cause it, when started
1366
running for such interactive use in the most ordinary way,
1367
to print or display an announcement including an
1368
appropriate copyright notice and a notice that there is no
1369
warranty (or else, saying that you provide a warranty) and
1370
that users may redistribute the program under these
1371
conditions, and telling the user how to view a copy of
1377
If the Program itself is interactive but does not normally
1378
print such an announcement, your work based on the Program is
1379
not required to print an announcement.)
1381
These requirements apply to the modified work as a whole. If
1382
identifiable sections of that work are not derived from the
1383
Program, and can be reasonably considered independent and
1384
separate works in themselves, then this License, and its
1385
terms, do not apply to those sections when you distribute them
1386
as separate works. But when you distribute the same sections
1387
as part of a whole which is a work based on the Program, the
1388
distribution of the whole must be on the terms of this
1389
License, whose permissions for other licensees extend to the
1390
entire whole, and thus to each and every part regardless of
1393
Thus, it is not the intent of this section to claim rights or
1394
contest your rights to work written entirely by you; rather,
1395
the intent is to exercise the right to control the
1396
distribution of derivative or collective works based on the
1399
In addition, mere aggregation of another work not based on the
1400
Program with the Program (or with a work based on the Program)
1401
on a volume of a storage or distribution medium does not bring
1402
the other work under the scope of this License.
1403
_________________________________________________________
1407
You may copy and distribute the Program (or a work based on
1408
it, under Section 2 in object code or executable form under
1409
the terms of Sections 1 and 2 above provided that you also do
1410
one of the following:
1412
1. Accompany it with the complete corresponding
1413
machine-readable source code, which must be distributed
1414
under the terms of Sections 1 and 2 above on a medium
1415
customarily used for software interchange; or,
1416
2. Accompany it with a written offer, valid for at least
1417
three years, to give any third party, for a charge no more
1418
than your cost of physically performing source
1419
distribution, a complete machine-readable copy of the
1420
corresponding source code, to be distributed under the
1421
terms of Sections 1 and 2 above on a medium customarily
1422
used for software interchange; or,
1423
3. Accompany it with the information you received as to the
1424
offer to distribute corresponding source code. (This
1425
alternative is allowed only for noncommercial distribution
1426
and only if you received the program in object code or
1427
executable form with such an offer, in accord with
1428
Subsection b above.)
1430
The source code for a work means the preferred form of the
1431
work for making modifications to it. For an executable work,
1432
complete source code means all the source code for all modules
1433
it contains, plus any associated interface definition files,
1434
plus the scripts used to control compilation and installation
1435
of the executable. However, as a special exception, the source
1436
code distributed need not include anything that is normally
1437
distributed (in either source or binary form) with the major
1438
components (compiler, kernel, and so on) of the operating
1439
system on which the executable runs, unless that component
1440
itself accompanies the executable.
1442
If distribution of executable or object code is made by
1443
offering access to copy from a designated place, then offering
1444
equivalent access to copy the source code from the same place
1445
counts as distribution of the source code, even though third
1446
parties are not compelled to copy the source along with the
1448
_________________________________________________________
1452
You may not copy, modify, sublicense, or distribute the
1453
Program except as expressly provided under this License. Any
1454
attempt otherwise to copy, modify, sublicense or distribute
1455
the Program is void, and will automatically terminate your
1456
rights under this License. However, parties who have received
1457
copies, or rights, from you under this License will not have
1458
their licenses terminated so long as such parties remain in
1460
_________________________________________________________
1464
You are not required to accept this License, since you have
1465
not signed it. However, nothing else grants you permission to
1466
modify or distribute the Program or its derivative works.
1467
These actions are prohibited by law if you do not accept this
1468
License. Therefore, by modifying or distributing the Program
1469
(or any work based on the Program), you indicate your
1470
acceptance of this License to do so, and all its terms and
1471
conditions for copying, distributing or modifying the Program
1472
or works based on it.
1473
_________________________________________________________
1477
Each time you redistribute the Program (or any work based on
1478
the Program), the recipient automatically receives a license
1479
from the original licensor to copy, distribute or modify the
1480
Program subject to these terms and conditions. You may not
1481
impose any further restrictions on the recipients' exercise of
1482
the rights granted herein. You are not responsible for
1483
enforcing compliance by third parties to this License.
1484
_________________________________________________________
1488
If, as a consequence of a court judgment or allegation of
1489
patent infringement or for any other reason (not limited to
1490
patent issues), conditions are imposed on you (whether by
1491
court order, agreement or otherwise) that contradict the
1492
conditions of this License, they do not excuse you from the
1493
conditions of this License. If you cannot distribute so as to
1494
satisfy simultaneously your obligations under this License and
1495
any other pertinent obligations, then as a consequence you may
1496
not distribute the Program at all. For example, if a patent
1497
license would not permit royalty-free redistribution of the
1498
Program by all those who receive copies directly or indirectly
1499
through you, then the only way you could satisfy both it and
1500
this License would be to refrain entirely from distribution of
1503
If any portion of this section is held invalid or
1504
unenforceable under any particular circumstance, the balance
1505
of the section is intended to apply and the section as a whole
1506
is intended to apply in other circumstances.
1508
It is not the purpose of this section to induce you to
1509
infringe any patents or other property right claims or to
1510
contest validity of any such claims; this section has the sole
1511
purpose of protecting the integrity of the free software
1512
distribution system, which is implemented by public license
1513
practices. Many people have made generous contributions to the
1514
wide range of software distributed through that system in
1515
reliance on consistent application of that system; it is up to
1516
the author/donor to decide if he or she is willing to
1517
distribute software through any other system and a licensee
1518
cannot impose that choice.
1520
This section is intended to make thoroughly clear what is
1521
believed to be a consequence of the rest of this License.
1522
_________________________________________________________
1526
If the distribution and/or use of the Program is restricted in
1527
certain countries either by patents or by copyrighted
1528
interfaces, the original copyright holder who places the
1529
Program under this License may add an explicit geographical
1530
distribution limitation excluding those countries, so that
1531
distribution is permitted only in or among countries not thus
1532
excluded. In such case, this License incorporates the
1533
limitation as if written in the body of this License.
1534
_________________________________________________________
1538
The Free Software Foundation may publish revised and/or new
1539
versions of the General Public License from time to time. Such
1540
new versions will be similar in spirit to the present version,
1541
but may differ in detail to address new problems or concerns.
1543
Each version is given a distinguishing version number. If the
1544
Program specifies a version number of this License which
1545
applies to it and "any later version", you have the option of
1546
following the terms and conditions either of that version or
1547
of any later version published by the Free Software
1548
Foundation. If the Program does not specify a version number
1549
of this License, you may choose any version ever published by
1550
the Free Software Foundation.
1551
_________________________________________________________
1555
If you wish to incorporate parts of the Program into other
1556
free programs whose distribution conditions are different,
1557
write to the author to ask for permission. For software which
1558
is copyrighted by the Free Software Foundation, write to the
1559
Free Software Foundation; we sometimes make exceptions for
1560
this. Our decision will be guided by the two goals of
1561
preserving the free status of all derivatives of our free
1562
software and of promoting the sharing and reuse of software
1564
_________________________________________________________
1566
B.2.12. Section 11 NO WARRANTY
1568
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
1569
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
1570
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE
1571
COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS
1572
IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
1573
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
1574
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
1575
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
1576
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
1577
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
1578
_________________________________________________________
1582
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
1583
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
1584
MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
1585
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
1586
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
1587
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
1588
LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES
1589
SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
1590
TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR
1591
OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
1594
END OF TERMS AND CONDITIONS
1595
_________________________________________________________
1597
B.3. How to Apply These Terms to Your New Programs
1599
If you develop a new program, and you want it to be of the
1600
greatest possible use to the public, the best way to achieve
1601
this is to make it free software which everyone can
1602
redistribute and change under these terms.
1604
To do so, attach the following notices to the program. It is
1605
safest to attach them to the start of each source file to most
1606
effectively convey the exclusion of warranty; and each file
1607
should have at least the "copyright" line and a pointer to
1608
where the full notice is found.
1610
<one line to give the program's name and a brief idea of what
1611
it does.> Copyright (C) <year> <name of author>
1613
This program is free software; you can redistribute it and/or
1614
modify it under the terms of the GNU General Public License as
1615
published by the Free Software Foundation; either version 2 of
1616
the License, or (at your option) any later version.
1618
This program is distributed in the hope that it will be
1619
useful, but WITHOUT ANY WARRANTY; without even the implied
1620
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
1621
PURPOSE. See the GNU General Public License for more details.
1623
You should have received a copy of the GNU General Public
1624
License along with this program; if not, write to the Free
1625
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
1628
Also add information on how to contact you by electronic and
1631
If the program is interactive, make it output a short notice
1632
like this when it starts in an interactive mode:
1634
Gnomovision version 69, Copyright (C) year name of author
1635
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
1636
type `show w'. This is free software, and you are welcome to
1637
redistribute it under certain conditions; type `show c' for
1640
The hypothetical commands `show w' and `show c' should show
1641
the appropriate parts of the General Public License. Of
1642
course, the commands you use may be called something other
1643
than `show w' and `show c'; they could even be mouse-clicks or
1644
menu items--whatever suits your program.
1646
You should also get your employer (if you work as a
1647
programmer) or your school, if any, to sign a "copyright
1648
disclaimer" for the program, if necessary. Here is a sample;
1651
Yoyodyne, Inc., hereby disclaims all copyright interest in the
1652
program `Gnomovision' (which makes passes at compilers)
1653
written by James Hacker.
1655
<signature of Ty Coon>, 1 April 1989 Ty Coon, President of
1658
This General Public License does not permit incorporating your
1659
program into proprietary programs. If your program is a
1660
subroutine library, you may consider it more useful to permit
1661
linking proprietary applications with the library. If this is
1662
what you want to do, use the GNU Library General Public
1663
License instead of this License.
1664
_________________________________________________________
1666
Appendix C. License for Scintilla and SciTE
1668
Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org>
1672
Permission to use, copy, modify, and distribute this software
1673
and its documentation for any purpose and without fee is
1674
hereby granted, provided that the above copyright notice
1675
appear in all copies and that both that copyright notice and
1676
this permission notice appear in supporting documentation.
1678
NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
1679
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1680
AND FITNESS, IN NO EVENT SHALL NEIL HODGSON BE LIABLE FOR ANY
1681
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1682
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
1683
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
1684
ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1685
PERFORMANCE OF THIS SOFTWARE.
1216
Then you can edit the file and the changes are also available after an update
1217
of Geany because they reside in your configuration directory. Alternatively,
1218
you can create a file ~/.geany/filedefs/filetypes.X and add only these settings
1219
you want to change. All missing settings will be read from the corresponding
1220
global definition file in $prefix/share/geany.
1226
In this section the colours for syntax highlighting are defined. The format is
1227
always: key=forground_colour;background_colour;bold;italic
1229
Colours have to be specified as RGB hex values prefixed by 0x. For example red
1230
is 0xff0000, blue is 0x0000ff. The values are case-insensitive, but it is a
1231
good idea to use small letters. Bold and italic are flags and should only be
1232
"true" or "false". If their value is something other than "true" or "false",
1237
This section contains keys for different keyword lists specific to the
1238
filetype. Some filetypes do not support keywords, so adding a new key will not
1239
work. You can only add or remove keywords to/from an existing list.
1243
The keywords list must be in one line without line ending characters.
1247
Table 4.1. General settings
1249
┌────────────────────┬───────────────────────────────────┬────────────────────┐
1250
│ Key │ Description │ Example │
1251
├────────────────────┼───────────────────────────────────┼────────────────────┤
1252
│ │ These characters define word │ │
1253
│ wordchars │ boundaries when making selections │ (look at system │
1254
│ │ and searching using word matching │ filetypes.* files) │
1256
├────────────────────┼───────────────────────────────────┼────────────────────┤
1257
│ │ A character or string which is │ │
1258
│ │ used to comment code. If you want │ │
1259
│ comment_open │ to use multiline comments, also │ comment_open=/* │
1260
│ │ set comment_close, otherwise │ │
1261
│ │ leave it empty. │ │
1262
├────────────────────┼───────────────────────────────────┼────────────────────┤
1263
│ │ If multiline comments are used, │ │
1264
│ comment_close │ this is the character or string │ comment_close=*/ │
1265
│ │ to close the comment. │ │
1266
├────────────────────┼───────────────────────────────────┼────────────────────┤
1267
│ │ Set this to false if a comment │ │
1268
│ │ character or string should start │ │
1269
│ │ at column 0 of a line. If set to │ │
1270
│ │ true it uses any indentation of │ │
1273
│ │ Example 4.1. Comment indentation │ │
1275
│ │ comment_use_indent=true would │ │
1276
│ │ generate this if a line is │ │
1277
│ │ commented (e.g. with Ctrl-D) │ │
1278
│ │ │ comment_use_indent │
1279
│ comment_use_indent │ #command_example(); │ =true │
1281
│ │ comment_use_indent=false would │ │
1282
│ │ generate this if a line is │ │
1283
│ │ commented (e.g. with Ctrl-D) │ │
1285
│ │ #command_example(); │ │
1290
│ │ This setting only works for │ │
1291
│ │ single line comments. │ │
1292
└────────────────────┴───────────────────────────────────┴────────────────────┘
1295
[build_settings] Section
1297
Table 4.2. Build settings
1299
┌──────────┬───────────────────────────────────────────────────────┬──────────┐
1300
│ Key │ Description │ Example │
1301
├──────────┼───────────────────────────────────────────────────────┼──────────┤
1302
│ │ This item specifies the command to compile source │ │
1303
│ │ code files. But it is also possible to use it with │ │
1304
│ │ interpreted languages like Perl or Python. With these │ │
1305
│ │ filetypes you can use this option as a kind of syntax │ │
1306
│ │ parser, which sends output to the compiler message │ │
1307
│ │ window. │ compiler │
1308
│ compiler │ │ =gcc │
1309
│ │ You should quote the filename to also support │ -Wall -c │
1310
│ │ filenames with spaces. The following wildcards for │ "%f" │
1311
│ │ filenames are available: │ │
1313
│ │ ● %f - complete filename without path │ │
1315
│ │ ● %e - filename without path and without extension │ │
1316
├──────────┼───────────────────────────────────────────────────────┼──────────┤
1317
│ │ This item specifies the command to link the file. If │ │
1318
│ │ the file is not already compiled, it will be compiled │ linker= │
1319
│ linker │ while linking. The -o option is automatically added │ gcc │
1320
│ │ by Geany. This item works well with GNU gcc, but may │ -Wall │
1321
│ │ be problematic with other compilers (esp. with the │ "%f" │
1323
├──────────┼───────────────────────────────────────────────────────┼──────────┤
1324
│ │ Use this item to execute your file. It has to have │ │
1325
│ │ been built already. Use the %e wildcard to have only │ run_cmd= │
1326
│ run_cmd │ the name of the executable (i.e. without extension) │ "./%e" │
1327
│ │ or use the %f wildcard if you need the complete │ │
1328
│ │ filename, e.g. for shell scripts. │ │
1329
└──────────┴───────────────────────────────────────────────────────┴──────────┘
1332
Special file filetypes.common
1334
There is a special filetype definition file called filetypes.common. This file
1335
defines some general non-filetype-specific settings.
1337
Table 4.3. General settings
1339
┌────────────────────┬───────────────────────────────────┬────────────────────┐
1340
│ Key │ Description │ Example │
1341
├────────────────────┼───────────────────────────────────┼────────────────────┤
1342
│ │ The style for colouring selected │ │
1343
│ │ text. The format is: │ │
1345
│ │ ● Foreground colour │ │
1347
│ │ ● Background colour │ │
1349
│ │ ● Use foreground colour │ selection= │
1350
│ selection │ │ 0xc0c0c0;0x00007F; │
1351
│ │ ● Use background colour │ true;true │
1353
│ │ The colours are only set if the │ │
1354
│ │ 3rd or 4th argument is true. When │ │
1355
│ │ the colours are not overridden, │ │
1356
│ │ the default is a dark grey │ │
1357
│ │ background with syntax │ │
1358
│ │ highlighted foreground text. │ │
1359
├────────────────────┼───────────────────────────────────┼────────────────────┤
1360
│ │ The style for brace highlighting │ brace_good= │
1361
│ brace_good │ when a matching brace was found. │ 0xff0000;0xFFFFFF; │
1363
├────────────────────┼───────────────────────────────────┼────────────────────┤
1364
│ │ The style for brace highlighting │ brace_bad= │
1365
│ brace_bad │ when no matching brace was found. │ 0x0000ff;0xFFFFFF; │
1367
├────────────────────┼───────────────────────────────────┼────────────────────┤
1368
│ │ The style for colouring the caret │ caret=0x000000; │
1369
│ caret │ (the blinking cursor). Only the │ 0x0;false;false │
1370
│ │ first argument is interpreted. │ │
1371
├────────────────────┼───────────────────────────────────┼────────────────────┤
1372
│ │ The style for colouring the │ current_line=0x0; │
1373
│ current_line │ background of the current line. │ 0xe5e5e5;false; │
1374
│ │ Only the second argument is │ false │
1375
│ │ interpreted. │ │
1376
├────────────────────┼───────────────────────────────────┼────────────────────┤
1377
│ │ The style for colouring the │ indent_guide= │
1378
│ indent_guide │ indentation guides. Only the │ 0xc0c0c0;0xffffff; │
1379
│ │ first and second arguments are │ false;false │
1380
│ │ interpreted. │ │
1381
├────────────────────┼───────────────────────────────────┼────────────────────┤
1382
│ │ The style for colouring the white │ │
1383
│ │ space if it is shown. The first │ │
1384
│ │ both arguments define the │ │
1385
│ │ foreground and background │ white_space= │
1386
│ white_space │ colours, the third argument sets │ 0xc0c0c0;0xffffff; │
1387
│ │ whether to use the defined │ true;false │
1388
│ │ colours or to use the colours │ │
1389
│ │ defined by each filetype for the │ │
1390
│ │ white space. │ │
1391
├────────────────────┼───────────────────────────────────┼────────────────────┤
1392
│ │ The style of folding icons. Only │ │
1393
│ │ first and second arguments are │ │
1396
│ │ Valid values for the first │ │
1397
│ │ argument are: │ │
1399
│ │ ● 1 - for boxes │ folding_style=1;1; │
1400
│ folding_style │ │ false;false │
1401
│ │ ● 2 - for circles │ │
1403
│ │ Valid values for the second │ │
1404
│ │ argument are: │ │
1406
│ │ ● 1 - for straight lines │ │
1408
│ │ ● 2 - for curved lines │ │
1409
├────────────────────┼───────────────────────────────────┼────────────────────┤
1410
│ │ Draw a thin horizontal line at │ │
1411
│ │ the line where text is folded. │ │
1412
│ │ Only first argument is used. │ │
1414
│ │ Valid values for the first │ │
1415
│ │ argument are: │ │
1416
│ │ │ folding_horiz_line │
1417
│ folding_horiz_line │ ● 0 - disable, do not draw a │ =0;0;false;false │
1420
│ │ ● 1 - draw the line above │ │
1423
│ │ ● 2 - draw the line below │ │
1425
├────────────────────┼───────────────────────────────────┼────────────────────┤
1426
│ │ Whether to invert all defined │ │
1427
│ │ colours. This is useful if you │ │
1428
│ │ like a dark background colour │ │
1429
│ │ (e.g. black) and do not want to │ │
1430
│ │ change every single line. Please │ │
1431
│ invert_all │ note, at time of writing this was │ invert_all=0;0; │
1432
│ │ only tested with the C syntax │ false;false │
1433
│ │ highlighting. │ │
1435
│ │ Only first argument is │ │
1436
│ │ interpreted. Set it to 1 to │ │
1437
│ │ invert all colours. │ │
1438
└────────────────────┴───────────────────────────────────┴────────────────────┘
1443
You can override the default extensions that Geany uses for each filetype using
1444
the filetype_extensions.conf file.
1446
To override the system-wide configuration file, copy it from $prefix/share/
1447
geany to your configuration directory, usually ~/.geany/. $prefix is the path
1448
where Geany is installed (commonly /usr/local).
1452
% cp /usr/local/share/geany/filetype_extensions.conf /home/username/.geany/
1454
Then edit it and remove all the lines for filetype extensions that you do not
1455
want to override. The remaining lines can be edited after the = sign, using a
1456
semi-colon separated list of patterns which should be matched for that
1459
For example, to set the filetype extensions for Make, the /home/username/.geany
1460
/filetype_extensions.conf file should look like:
1464
Make=Makefile*;*.mk;Buildfile;
1468
Geany supports several templates for file headers, multiline comments (frame
1469
comments), function descriptions, a typical ChangeLog entry and a short GPL
1470
notice. To use these templates, just open the Edit menu or open the popup menu
1471
by right-clicking in the editor widget, and choose "Insert Comments" and insert
1472
templates as you want.
1474
Some templates (like file header or ChangeLog entry) will always be inserted at
1475
the top of the file.
1477
To insert a function description, the cursor must be inside of the function, so
1478
that the function name can be determined automatically. The description will be
1479
positioned correctly one line above the function, just check it out. If the
1480
cursor is not inside of a function or the function name cannot be determined,
1481
you cannot insert a function description.
1483
Each template can be customized to your needs. The templates are in the
1484
configuration directory, which is in ~/.geany/ (see the section called “Command
1485
line options” for further information about the configuration directory). Just
1486
open the desired template with an editor (ideally Geany ;-) ) and edit the
1487
template as your needs. There are some wildcards which will be automatically
1488
replaced by Geany at startup.
1490
All wildcards must be enclosed by "{" and "}", e.g. {date}.
1492
In the configuration dialog you can find a tab "Templates" (see Figure 3.10,
1493
“Template tab in preferences dialog”). You can define the default values which
1494
will be inserted in the templates. You should restart Geany after making
1495
changes, because they are only read at startup.
1497
Since Geany 0.3 there are also templates for creating new files. They can be
1498
found in ~/.geany/, too. All template files for creating new files begin with
1499
template.filetype. followed by the filetype. At creating a new file with a
1500
filetype template, the template for the fileheader is automatically prepended.
1504
Table 4.4. Template wildcards
1506
┌──────────────┬───────────────────────────────────────┬──────────────────────┐
1507
│ Wildcard │ Description │ Available in │
1508
│ │ │ following templates │
1509
├──────────────┼───────────────────────────────────────┼──────────────────────┤
1510
│ │ │ filetypes, file │
1511
│ developer │ The name of the developer. │ header, function │
1512
│ │ │ description, │
1513
│ │ │ ChangeLog entry │
1514
├──────────────┼───────────────────────────────────────┼──────────────────────┤
1515
│ │ The developer's initials, e.g. "ET" │ filetypes, file │
1516
│ initial │ for Enrico Tröger or "JFD" for John │ header, function │
1517
│ │ Foobar Doe. │ description, │
1518
│ │ │ ChangeLog entry │
1519
├──────────────┼───────────────────────────────────────┼──────────────────────┤
1520
│ │ │ file header, │
1521
│ mail │ The email address of the developer. │ function │
1522
│ │ │ description, │
1523
│ │ │ ChangeLog entry │
1524
├──────────────┼───────────────────────────────────────┼──────────────────────┤
1525
│ │ │ filetypes, file │
1526
│ company │ The company the developer is working │ header, function │
1527
│ │ for. │ description, │
1528
│ │ │ ChangeLog entry │
1529
├──────────────┼───────────────────────────────────────┼──────────────────────┤
1530
│ │ │ filetypes, file │
1531
│ year │ The current year in the format: YYYY │ header, function │
1532
│ │ │ description, │
1533
│ │ │ ChangeLog entry │
1534
├──────────────┼───────────────────────────────────────┼──────────────────────┤
1535
│ │ │ filetypes, file │
1536
│ version │ The initial version of a new file. │ header, function │
1537
│ │ │ description, │
1538
│ │ │ ChangeLog entry │
1539
├──────────────┼───────────────────────────────────────┼──────────────────────┤
1540
│ │ │ filetypes, file │
1541
│ date │ The current date in the format: │ header, function │
1542
│ │ YYYY-MM-DD │ description, │
1543
│ │ │ ChangeLog entry │
1544
├──────────────┼───────────────────────────────────────┼──────────────────────┤
1545
│ │ The string "untitled" (this will be │ filetypes, file │
1546
│ untitled │ translated to your locale), used in │ header, function │
1547
│ │ filetype templates │ description, │
1548
│ │ │ ChangeLog entry │
1549
├──────────────┼───────────────────────────────────────┼──────────────────────┤
1550
│ │ │ filetypes, file │
1551
│ geanyversion │ The actual Geany version, e.g. "Geany │ header, function │
1552
│ │ 0.10.2" │ description, │
1553
│ │ │ ChangeLog entry │
1554
├──────────────┼───────────────────────────────────────┼──────────────────────┤
1555
│ datetime │ The current date and time in the │ file header, │
1556
│ │ format: DD.MM.YYYY HH:mm:ss ZZZZ │ function description │
1557
├──────────────┼───────────────────────────────────────┼──────────────────────┤
1558
│ │ The filename of the current file. │ │
1559
│ filename │ Only available for the file header │ file header │
1561
├──────────────┼───────────────────────────────────────┼──────────────────────┤
1562
│ gpl │ This wildcard inserts a short GPL │ file header │
1564
├──────────────┼───────────────────────────────────────┼──────────────────────┤
1565
│ │ The function name of the function at │ │
1566
│ functionname │ the cursor position. This wildcard │ function description │
1567
│ │ will only be replaced in the function │ │
1568
│ │ description template. │ │
1569
└──────────────┴───────────────────────────────────────┴──────────────────────┘
1572
If you need any other wildcards or a special date/time format, please email the
1573
author <enrico.troeger@uvena.de>.
1575
Scintilla keyboard commands
1577
Copyright © 1998, 2006 Neil Hodgson <neilh@scintilla.org>
1579
This appendix is distributed under the terms of the License for Scintilla and
1580
SciTE. A copy of this license can be found in the file scintilla/License.txt
1581
included with the source code of this program and in the appendix of this
1582
document. See Appendix C, License for Scintilla and SciTE.
1592
Keyboard commands for Scintilla mostly follow common Windows and GTK+
1593
conventions. All move keys (arrows, page up/down, home and end) allows to
1594
extend or reduce the stream selection when holding the Shift key, and the
1595
rectangular selection when holding the Shift and Alt keys. Some keys may not be
1596
available with some national keyboards or because they are taken by the system
1597
such as by a window manager on GTK+. Keyboard equivalents of menu commands are
1598
listed in the menus. Some less common commands with no menu equivalent are:
1600
Table A.1. Scintilla keyboard commands
1602
┌──────────────────────────────────────────────┬──────────────────────┐
1603
│ Action │ Shortcut key │
1604
├──────────────────────────────────────────────┼──────────────────────┤
1605
│ Magnify text size. │ Ctrl+Keypad+ │
1606
├──────────────────────────────────────────────┼──────────────────────┤
1607
│ Reduce text size. │ Ctrl+Keypad- │
1608
├──────────────────────────────────────────────┼──────────────────────┤
1609
│ Restore text size to normal. │ Ctrl+Keypad/ │
1610
├──────────────────────────────────────────────┼──────────────────────┤
1611
│ Indent block. │ Tab │
1612
├──────────────────────────────────────────────┼──────────────────────┤
1613
│ Dedent block. │ Shift+Tab │
1614
├──────────────────────────────────────────────┼──────────────────────┤
1615
│ Delete to start of word. │ Ctrl+BackSpace │
1616
├──────────────────────────────────────────────┼──────────────────────┤
1617
│ Delete to end of word. │ Ctrl+Delete │
1618
├──────────────────────────────────────────────┼──────────────────────┤
1619
│ Delete to start of line. │ Ctrl+Shift+BackSpace │
1620
├──────────────────────────────────────────────┼──────────────────────┤
1621
│ Delete to end of line. │ Ctrl+Shift+Delete │
1622
├──────────────────────────────────────────────┼──────────────────────┤
1623
│ Go to start of document. │ Ctrl+Home │
1624
├──────────────────────────────────────────────┼──────────────────────┤
1625
│ Extend selection to start of document. │ Ctrl+Shift+Home │
1626
├──────────────────────────────────────────────┼──────────────────────┤
1627
│ Go to start of display line. │ Alt+Home │
1628
├──────────────────────────────────────────────┼──────────────────────┤
1629
│ Extend selection to start of display line. │ Alt+Shift+Home │
1630
├──────────────────────────────────────────────┼──────────────────────┤
1631
│ Go to end of document. │ Ctrl+End │
1632
├──────────────────────────────────────────────┼──────────────────────┤
1633
│ Extend selection to end of document. │ Ctrl+Shift+End │
1634
├──────────────────────────────────────────────┼──────────────────────┤
1635
│ Go to end of display line. │ Alt+End │
1636
├──────────────────────────────────────────────┼──────────────────────┤
1637
│ Extend selection to end of display line. │ Alt+Shift+End │
1638
├──────────────────────────────────────────────┼──────────────────────┤
1639
│ Scroll up. │ Ctrl+Up │
1640
├──────────────────────────────────────────────┼──────────────────────┤
1641
│ Scroll down. │ Ctrl+Down │
1642
├──────────────────────────────────────────────┼──────────────────────┤
1643
│ Line cut. │ Ctrl+L │
1644
├──────────────────────────────────────────────┼──────────────────────┤
1645
│ Line copy. │ Ctrl+Shift+T │
1646
├──────────────────────────────────────────────┼──────────────────────┤
1647
│ Line delete. │ Ctrl+Shift+L │
1648
├──────────────────────────────────────────────┼──────────────────────┤
1649
│ Line transpose with previous. │ Ctrl+T │
1650
├──────────────────────────────────────────────┼──────────────────────┤
1651
│ Selection duplicate. │ Ctrl+D │
1652
├──────────────────────────────────────────────┼──────────────────────┤
1653
│ Previous paragraph. Shift extends selection. │ Ctrl+[ │
1654
├──────────────────────────────────────────────┼──────────────────────┤
1655
│ Next paragraph. Shift extends selection. │ Ctrl+] │
1656
├──────────────────────────────────────────────┼──────────────────────┤
1657
│ Previous word. Shift extends selection. │ Ctrl+Left │
1658
├──────────────────────────────────────────────┼──────────────────────┤
1659
│ Next word. Shift extends selection. │ Ctrl+Right │
1660
├──────────────────────────────────────────────┼──────────────────────┤
1661
│ Previous word part. Shift extends selection │ Ctrl+/ │
1662
├──────────────────────────────────────────────┼──────────────────────┤
1663
│ Next word part. Shift extends selection. │ Ctrl+\ │
1664
└──────────────────────────────────────────────┴──────────────────────┘
1667
GNU General Public License
1669
Version 2, June 1991
1671
Copyright © 1989, 1991 Free Software Foundation, Inc.
1673
Free Software Foundation, Inc.
1674
59 Temple Place, Suite 330,
1682
Everyone is permitted to copy and distribute verbatim copies of this license
1683
document, but changing it is not allowed.
1685
Version 2, June 1991
1690
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
1703
Section 11 NO WARRANTY
1706
How to Apply These Terms to Your New Programs
1710
The licenses for most software are designed to take away your freedom to share
1711
and change it. By contrast, the GNU General Public License is intended to
1712
guarantee your freedom to share and change free software - to make sure the
1713
software is free for all its users. This General Public License applies to most
1714
of the Free Software Foundation's software and to any other program whose
1715
authors commit to using it. (Some other Free Software Foundation software is
1716
covered by the GNU Library General Public License instead.) You can apply it to
1719
When we speak of free software, we are referring to freedom, not price. Our
1720
General Public Licenses are designed to make sure that you have the freedom to
1721
distribute copies of free software (and charge for this service if you wish),
1722
that you receive source code or can get it if you want it, that you can change
1723
the software or use pieces of it in new free programs; and that you know you
1724
can do these things.
1726
To protect your rights, we need to make restrictions that forbid anyone to deny
1727
you these rights or to ask you to surrender the rights. These restrictions
1728
translate to certain responsibilities for you if you distribute copies of the
1729
software, or if you modify it.
1731
For example, if you distribute copies of such a program, whether gratis or for
1732
a fee, you must give the recipients all the rights that you have. You must make
1733
sure that they, too, receive or can get the source code. And you must show them
1734
these terms so they know their rights.
1736
We protect your rights with two steps:
1738
1. copyright the software, and
1740
2. offer you this license which gives you legal permission to copy, distribute
1741
and/or modify the software.
1743
Also, for each author's protection and ours, we want to make certain that
1744
everyone understands that there is no warranty for this free software. If the
1745
software is modified by someone else and passed on, we want its recipients to
1746
know that what they have is not the original, so that any problems introduced
1747
by others will not reflect on the original authors' reputations.
1749
Finally, any free program is threatened constantly by software patents. We wish
1750
to avoid the danger that redistributors of a free program will individually
1751
obtain patent licenses, in effect making the program proprietary. To prevent
1752
this, we have made it clear that any patent must be licensed for everyone's
1753
free use or not licensed at all.
1755
The precise terms and conditions for copying, distribution and modification
1758
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
1762
This License applies to any program or other work which contains a notice
1763
placed by the copyright holder saying it may be distributed under the terms of
1764
this General Public License. The "Program", below, refers to any such program
1765
or work, and a “work based on the Program ” means either the Program or any
1766
derivative work under copyright law: that is to say, a work containing the
1767
Program or a portion of it, either verbatim or with modifications and/or
1768
translated into another language. (Hereinafter, translation is included without
1769
limitation in the term “modification ”.) Each licensee is addressed as “you”.
1771
Activities other than copying, distribution and modification are not covered by
1772
this License; they are outside its scope. The act of running the Program is not
1773
restricted, and the output from the Program is covered only if its contents
1774
constitute a work based on the Program (independent of having been made by
1775
running the Program). Whether that is true depends on what the Program does.
1779
You may copy and distribute verbatim copies of the Program's source code as you
1780
receive it, in any medium, provided that you conspicuously and appropriately
1781
publish on each copy an appropriate copyright notice and disclaimer of
1782
warranty; keep intact all the notices that refer to this License and to the
1783
absence of any warranty; and give any other recipients of the Program a copy of
1784
this License along with the Program.
1786
You may charge a fee for the physical act of transferring a copy, and you may
1787
at your option offer warranty protection in exchange for a fee.
1791
You may modify your copy or copies of the Program or any portion of it, thus
1792
forming a work based on the Program, and copy and distribute such modifications
1793
or work under the terms of Section 1 above, provided that you also meet all of
1796
1. You must cause the modified files to carry prominent notices stating that
1797
you changed the files and the date of any change.
1799
2. You must cause any work that you distribute or publish, that in whole or in
1800
part contains or is derived from the Program or any part thereof, to be
1801
licensed as a whole at no charge to all third parties under the terms of
1804
3. If the modified program normally reads commands interactively when run, you
1805
must cause it, when started running for such interactive use in the most
1806
ordinary way, to print or display an announcement including an appropriate
1807
copyright notice and a notice that there is no warranty (or else, saying
1808
that you provide a warranty) and that users may redistribute the program
1809
under these conditions, and telling the user how to view a copy of this
1814
If the Program itself is interactive but does not normally print such an
1815
announcement, your work based on the Program is not required to print an
1818
These requirements apply to the modified work as a whole. If identifiable
1819
sections of that work are not derived from the Program, and can be reasonably
1820
considered independent and separate works in themselves, then this License, and
1821
its terms, do not apply to those sections when you distribute them as separate
1822
works. But when you distribute the same sections as part of a whole which is a
1823
work based on the Program, the distribution of the whole must be on the terms
1824
of this License, whose permissions for other licensees extend to the entire
1825
whole, and thus to each and every part regardless of who wrote it.
1827
Thus, it is not the intent of this section to claim rights or contest your
1828
rights to work written entirely by you; rather, the intent is to exercise the
1829
right to control the distribution of derivative or collective works based on
1832
In addition, mere aggregation of another work not based on the Program with the
1833
Program (or with a work based on the Program) on a volume of a storage or
1834
distribution medium does not bring the other work under the scope of this
1839
You may copy and distribute the Program (or a work based on it, under Section 2
1840
in object code or executable form under the terms of Sections 1 and 2 above
1841
provided that you also do one of the following:
1843
1. Accompany it with the complete corresponding machine-readable source code,
1844
which must be distributed under the terms of Sections 1 and 2 above on a
1845
medium customarily used for software interchange; or,
1847
2. Accompany it with a written offer, valid for at least three years, to give
1848
any third party, for a charge no more than your cost of physically
1849
performing source distribution, a complete machine-readable copy of the
1850
corresponding source code, to be distributed under the terms of Sections 1
1851
and 2 above on a medium customarily used for software interchange; or,
1853
3. Accompany it with the information you received as to the offer to
1854
distribute corresponding source code. (This alternative is allowed only for
1855
noncommercial distribution and only if you received the program in object
1856
code or executable form with such an offer, in accord with Subsection b
1859
The source code for a work means the preferred form of the work for making
1860
modifications to it. For an executable work, complete source code means all the
1861
source code for all modules it contains, plus any associated interface
1862
definition files, plus the scripts used to control compilation and installation
1863
of the executable. However, as a special exception, the source code distributed
1864
need not include anything that is normally distributed (in either source or
1865
binary form) with the major components (compiler, kernel, and so on) of the
1866
operating system on which the executable runs, unless that component itself
1867
accompanies the executable.
1869
If distribution of executable or object code is made by offering access to copy
1870
from a designated place, then offering equivalent access to copy the source
1871
code from the same place counts as distribution of the source code, even though
1872
third parties are not compelled to copy the source along with the object code.
1876
You may not copy, modify, sublicense, or distribute the Program except as
1877
expressly provided under this License. Any attempt otherwise to copy, modify,
1878
sublicense or distribute the Program is void, and will automatically terminate
1879
your rights under this License. However, parties who have received copies, or
1880
rights, from you under this License will not have their licenses terminated so
1881
long as such parties remain in full compliance.
1885
You are not required to accept this License, since you have not signed it.
1886
However, nothing else grants you permission to modify or distribute the Program
1887
or its derivative works. These actions are prohibited by law if you do not
1888
accept this License. Therefore, by modifying or distributing the Program (or
1889
any work based on the Program), you indicate your acceptance of this License to
1890
do so, and all its terms and conditions for copying, distributing or modifying
1891
the Program or works based on it.
1895
Each time you redistribute the Program (or any work based on the Program), the
1896
recipient automatically receives a license from the original licensor to copy,
1897
distribute or modify the Program subject to these terms and conditions. You may
1898
not impose any further restrictions on the recipients' exercise of the rights
1899
granted herein. You are not responsible for enforcing compliance by third
1900
parties to this License.
1904
If, as a consequence of a court judgment or allegation of patent infringement
1905
or for any other reason (not limited to patent issues), conditions are imposed
1906
on you (whether by court order, agreement or otherwise) that contradict the
1907
conditions of this License, they do not excuse you from the conditions of this
1908
License. If you cannot distribute so as to satisfy simultaneously your
1909
obligations under this License and any other pertinent obligations, then as a
1910
consequence you may not distribute the Program at all. For example, if a patent
1911
license would not permit royalty-free redistribution of the Program by all
1912
those who receive copies directly or indirectly through you, then the only way
1913
you could satisfy both it and this License would be to refrain entirely from
1914
distribution of the Program.
1916
If any portion of this section is held invalid or unenforceable under any
1917
particular circumstance, the balance of the section is intended to apply and
1918
the section as a whole is intended to apply in other circumstances.
1920
It is not the purpose of this section to induce you to infringe any patents or
1921
other property right claims or to contest validity of any such claims; this
1922
section has the sole purpose of protecting the integrity of the free software
1923
distribution system, which is implemented by public license practices. Many
1924
people have made generous contributions to the wide range of software
1925
distributed through that system in reliance on consistent application of that
1926
system; it is up to the author/donor to decide if he or she is willing to
1927
distribute software through any other system and a licensee cannot impose that
1930
This section is intended to make thoroughly clear what is believed to be a
1931
consequence of the rest of this License.
1935
If the distribution and/or use of the Program is restricted in certain
1936
countries either by patents or by copyrighted interfaces, the original
1937
copyright holder who places the Program under this License may add an explicit
1938
geographical distribution limitation excluding those countries, so that
1939
distribution is permitted only in or among countries not thus excluded. In such
1940
case, this License incorporates the limitation as if written in the body of
1945
The Free Software Foundation may publish revised and/or new versions of the
1946
General Public License from time to time. Such new versions will be similar in
1947
spirit to the present version, but may differ in detail to address new problems
1950
Each version is given a distinguishing version number. If the Program specifies
1951
a version number of this License which applies to it and "any later version",
1952
you have the option of following the terms and conditions either of that
1953
version or of any later version published by the Free Software Foundation. If
1954
the Program does not specify a version number of this License, you may choose
1955
any version ever published by the Free Software Foundation.
1959
If you wish to incorporate parts of the Program into other free programs whose
1960
distribution conditions are different, write to the author to ask for
1961
permission. For software which is copyrighted by the Free Software Foundation,
1962
write to the Free Software Foundation; we sometimes make exceptions for this.
1963
Our decision will be guided by the two goals of preserving the free status of
1964
all derivatives of our free software and of promoting the sharing and reuse of
1967
Section 11 NO WARRANTY
1969
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
1970
PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
1971
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
1972
PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
1973
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
1974
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
1975
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU
1976
ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
1980
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
1981
COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
1982
PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
1983
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
1984
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
1985
BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
1986
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
1987
OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
1989
END OF TERMS AND CONDITIONS
1991
How to Apply These Terms to Your New Programs
1993
If you develop a new program, and you want it to be of the greatest possible
1994
use to the public, the best way to achieve this is to make it free software
1995
which everyone can redistribute and change under these terms.
1997
To do so, attach the following notices to the program. It is safest to attach
1998
them to the start of each source file to most effectively convey the exclusion
1999
of warranty; and each file should have at least the "copyright" line and a
2000
pointer to where the full notice is found.
2002
<one line to give the program's name and a brief idea of what it does.>
2003
Copyright (C) <year> <name of author>
2005
This program is free software; you can redistribute it and/or modify it under
2006
the terms of the GNU General Public License as published by the Free Software
2007
Foundation; either version 2 of the License, or (at your option) any later
2010
This program is distributed in the hope that it will be useful, but WITHOUT ANY
2011
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
2012
PARTICULAR PURPOSE. See the GNU General Public License for more details.
2014
You should have received a copy of the GNU General Public License along with
2015
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
2016
Place, Suite 330, Boston, MA 02111-1307 USA
2018
Also add information on how to contact you by electronic and paper mail.
2020
If the program is interactive, make it output a short notice like this when it
2021
starts in an interactive mode:
2023
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
2024
with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software,
2025
and you are welcome to redistribute it under certain conditions; type `show c'
2028
The hypothetical commands `show w' and `show c' should show the appropriate
2029
parts of the General Public License. Of course, the commands you use may be
2030
called something other than `show w' and `show c'; they could even be
2031
mouse-clicks or menu items--whatever suits your program.
2033
You should also get your employer (if you work as a programmer) or your school,
2034
if any, to sign a "copyright disclaimer" for the program, if necessary. Here is
2035
a sample; alter the names:
2037
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
2038
`Gnomovision' (which makes passes at compilers) written by James Hacker.
2040
<signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice
2042
This General Public License does not permit incorporating your program into
2043
proprietary programs. If your program is a subroutine library, you may consider
2044
it more useful to permit linking proprietary applications with the library. If
2045
this is what you want to do, use the GNU Library General Public License instead
2048
Appendix C. License for Scintilla and SciTE
2050
Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org>
2054
Permission to use, copy, modify, and distribute this software and its
2055
documentation for any purpose and without fee is hereby granted, provided that
2056
the above copyright notice appear in all copies and that both that copyright
2057
notice and this permission notice appear in supporting documentation.
2059
NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
2060
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NEIL
2061
HODGSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
2062
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
2063
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
2064
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.