~ubuntu-branches/ubuntu/jaunty/geany/jaunty

« back to all changes in this revision

Viewing changes to doc/geany.txt

  • Committer: Bazaar Package Importer
  • Author(s): Lionel Le Folgoc
  • Date: 2007-02-25 21:12:13 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20070225211213-jk4d4vxtgji0rj74
Tags: 0.10.2-0ubuntu1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
Geany 0.9
 
1
Geany 0.10.2
3
2
 
4
3
Enrico Tröger
5
4
 
7
6
 
8
7
Frank Lanitz
9
8
 
10
 
   Copyright � 2005-2006
11
 
 
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
 
     _________________________________________________________
19
 
 
20
 
   Table of Contents
21
 
   1. Introduction
22
 
 
23
 
        1.1. About Geany
24
 
        1.2. About this document
25
 
        1.3. Where to get it
26
 
        1.4. License
27
 
 
28
 
   2. Installation
29
 
 
30
 
        2.1. Requirements
31
 
        2.2. Source compilation
32
 
        2.3. Binary packages
33
 
 
34
 
              2.3.1. Fedora
35
 
              2.3.2. Debian
36
 
              2.3.3. SuSE
37
 
              2.3.4. Gentoo
38
 
 
39
 
   3. Usage
40
 
 
41
 
        3.1. Getting started
42
 
        3.2. Command line options
43
 
        3.3. General
44
 
 
45
 
              3.3.1. Startup
46
 
              3.3.2. Opening files from the command-line in a
47
 
                      running instance
48
 
 
49
 
              3.3.3. Virtual terminal emulator widget (VTE)
50
 
 
51
 
        3.4. Character sets and Unicode Byte-Order-Mark (BOM)
52
 
        3.5. Search, replace and go to
53
 
 
54
 
              3.5.1. Find
55
 
              3.5.2. Find usage
56
 
              3.5.3. Find in files
57
 
              3.5.4. Replace
58
 
              3.5.5. Go to tag definition
59
 
              3.5.6. Go to tag declaration
60
 
              3.5.7. Go to line
61
 
              3.5.8. Regular expressions
62
 
 
63
 
        3.6. Preferences
64
 
 
65
 
              3.6.1. Compile time options
66
 
 
67
 
        3.7. Build system
68
 
 
69
 
              3.7.1. Compile
70
 
              3.7.2. Build
71
 
              3.7.3. Make all
72
 
              3.7.4. Make custom target
73
 
              3.7.5. Make object
74
 
              3.7.6. Execute
75
 
              3.7.7. Set Includes and Arguments
76
 
              3.7.8. Indicators
77
 
              3.7.9. File type configuration settings
78
 
 
79
 
        3.8. Printing support
80
 
        3.9. Keybindings
81
 
 
82
 
   4. Configuration files
83
 
 
84
 
        4.1. Filetype definition files
85
 
 
86
 
              4.1.1. Format
87
 
              4.1.2. Special file filetypes.common
88
 
 
89
 
        4.2. Filetype extensions
90
 
        4.3. Templates
91
 
 
92
 
   A. Scintilla keyboard commands
93
 
 
94
 
        A.1. Keyboard commands
95
 
 
96
 
   B. GNU General Public License
97
 
 
98
 
        B.1. Preamble
99
 
        B.2. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
100
 
                MODIFICATION
101
 
 
102
 
              B.2.1. Section 0
103
 
              B.2.2. Section 1
104
 
              B.2.3. Section 2
105
 
              B.2.4. Section 3
106
 
              B.2.5. Section 4
107
 
              B.2.6. Section 5
108
 
              B.2.7. Section 6
109
 
              B.2.8. Section 7
110
 
              B.2.9. Section 8
111
 
              B.2.10. Section 9
112
 
              B.2.11. Section 10
113
 
              B.2.12. Section 11 NO WARRANTY
114
 
              B.2.13. Section 12
115
 
 
116
 
        B.3. How to Apply These Terms to Your New Programs
117
 
 
118
 
   C. License for Scintilla and SciTE
119
 
 
120
 
   List of Tables
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
126
 
   4-2. Build settings
127
 
   4-3. General settings
128
 
   4-4. Template wildcards
129
 
   A-1. Scintilla keyboard commands
130
 
 
131
 
   List of Figures
132
 
   3-1. Find dialog
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
141
 
 
142
 
   List of Examples
143
 
   4-1. Comment indentation
144
 
     _________________________________________________________
145
 
 
146
 
Chapter 1. Introduction
147
 
 
148
 
1.1. About Geany
149
 
 
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.
157
 
 
158
 
   The basic features of Geany are:
159
 
 
160
 
     * Syntax highlighting
161
 
     * Code completion
162
 
     * Auto completion of often used constructs like if, for and
163
 
       while
164
 
     * Auto completion of XML and HTML tags
165
 
     * Call tips
166
 
     * Many supported filetypes like C, Java, PHP, HTML, Python,
167
 
       Perl, Pascal
168
 
     * Tag/Symbol lists
169
 
     _________________________________________________________
170
 
 
171
 
1.2. About this document
172
 
 
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
 
     _________________________________________________________
177
 
 
178
 
1.3. Where to get it
179
 
 
180
 
   You can obtain Geany from http://geany.uvena.de or perhaps
181
 
   from your distributor.
182
 
     _________________________________________________________
183
 
 
184
 
1.4. License
185
 
 
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
191
 
   Appendix B.
192
 
 
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
 
     _________________________________________________________
197
 
 
198
 
Chapter 2. Installation
199
 
 
200
 
2.1. Requirements
201
 
 
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.
206
 
 
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
210
 
   recommended.
211
 
     _________________________________________________________
212
 
 
213
 
2.2. Source compilation
214
 
 
215
 
   Compiling Geany is quite easy. The following should do it:
 
9
Copyright © 2005-2007
 
10
 
 
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.
 
16
 
 
17
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 
18
 
 
19
Table of Contents
 
20
 
 
21
1. Introduction
 
22
 
 
23
    About Geany
 
24
    About this document
 
25
    Where to get it
 
26
    License
 
27
 
 
28
2. Installation
 
29
 
 
30
    Requirements
 
31
    Source compilation
 
32
    Binary packages
 
33
 
 
34
        Fedora
 
35
        Debian
 
36
        SuSE
 
37
        Gentoo
 
38
 
 
39
3. Usage
 
40
 
 
41
    Getting started
 
42
    Command line options
 
43
    General
 
44
 
 
45
        Startup
 
46
        Opening files from the command-line in a running instance
 
47
        Virtual terminal emulator widget (VTE)
 
48
 
 
49
    Character sets and Unicode Byte-Order-Mark (BOM)
 
50
 
 
51
        Using character sets
 
52
        Special encoding "None"
 
53
        Unicode Byte-Order-Mark (BOM)
 
54
 
 
55
    Search, replace and go to
 
56
 
 
57
        Find
 
58
        Find usage
 
59
        Find in files
 
60
        Replace
 
61
        Go to tag definition
 
62
        Go to tag declaration
 
63
        Go to line
 
64
        Regular expressions
 
65
 
 
66
    Preferences
 
67
 
 
68
        Compile time options
 
69
 
 
70
    Build system
 
71
 
 
72
        Compile
 
73
        Build
 
74
        Make all
 
75
        Make custom target
 
76
        Make object
 
77
        Execute
 
78
        Stopping running processes
 
79
        Set Includes and Arguments
 
80
        Indicators
 
81
        File type configuration settings
 
82
 
 
83
    Printing support
 
84
    Keybindings
 
85
 
 
86
4. Configuration files
 
87
 
 
88
    Filetype definition files
 
89
 
 
90
        Format
 
91
        Special file filetypes.common
 
92
 
 
93
    Filetype extensions
 
94
    Templates
 
95
 
 
96
A. Scintilla keyboard commands
 
97
 
 
98
    Keyboard commands
 
99
 
 
100
B. GNU General Public License
 
101
 
 
102
    Preamble
 
103
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
104
 
 
105
        Section 0
 
106
        Section 1
 
107
        Section 2
 
108
        Section 3
 
109
        Section 4
 
110
        Section 5
 
111
        Section 6
 
112
        Section 7
 
113
        Section 8
 
114
        Section 9
 
115
        Section 10
 
116
        Section 11 NO WARRANTY
 
117
        Section 12
 
118
 
 
119
    How to Apply These Terms to Your New Programs
 
120
 
 
121
C. License for Scintilla and SciTE
 
122
 
 
123
List of Figures
 
124
 
 
125
3.1. Find dialog
 
126
3.2. Find in files dialog
 
127
3.3. Replace 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
 
137
 
 
138
List of Tables
 
139
 
 
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
 
145
4.2. Build settings
 
146
4.3. General settings
 
147
4.4. Template wildcards
 
148
A.1. Scintilla keyboard commands
 
149
 
 
150
List of Examples
 
151
 
 
152
4.1. Comment indentation
 
153
 
 
154
Chapter 1.  Introduction
 
155
 
 
156
Table of Contents
 
157
 
 
158
About Geany
 
159
About this document
 
160
Where to get it
 
161
License
 
162
 
 
163
About Geany
 
164
 
 
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
 
170
it.
 
171
 
 
172
The basic features of Geany are:
 
173
 
 
174
  ● Syntax highlighting
 
175
 
 
176
  ● Code completion
 
177
 
 
178
  ● Auto completion of often used constructs like if, for and while
 
179
 
 
180
  ● Auto completion of XML and HTML tags
 
181
 
 
182
  ● Call tips
 
183
 
 
184
  ● Many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal
 
185
 
 
186
  ● Tag/Symbol lists
 
187
 
 
188
About this document
 
189
 
 
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.
 
192
 
 
193
Where to get it
 
194
 
 
195
You can obtain Geany from http://geany.uvena.de or perhaps from your
 
196
distributor.
 
197
 
 
198
License
 
199
 
 
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.
 
205
 
 
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).
 
209
 
 
210
Chapter 2.  Installation
 
211
 
 
212
Table of Contents
 
213
 
 
214
Requirements
 
215
Source compilation
 
216
Binary packages
 
217
 
 
218
    Fedora
 
219
    Debian
 
220
    SuSE
 
221
    Gentoo
 
222
 
 
223
Requirements
 
224
 
 
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.
 
228
 
 
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.
 
232
 
 
233
Source compilation
 
234
 
 
235
Compiling Geany is quite easy. The following should do it:
 
236
 
216
237
                                        % ./configure
217
238
                                        % make
218
239
                                        % make install
219
240
 
220
 
   The configure script supports several common options, for a
221
 
   detailed list, type
 
241
The configure script supports several common options, for a detailed list, type
 
242
 
222
243
                                        % ./configure --help
223
244
 
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.
229
 
 
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.
234
 
 
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
 
     _________________________________________________________
239
 
 
240
 
2.3. Binary packages
241
 
 
242
 
2.3.1. Fedora
243
 
 
244
 
   You can use the Fedora Core 4 repository from
245
 
   http://naturidentisch.de/packages/fc4/.
246
 
 
247
 
   You can also use the Fedora Core 5 repository from
248
 
   http://naturidentisch.de/packages/fc5/.
249
 
     _________________________________________________________
250
 
 
251
 
2.3.2. Debian
252
 
 
253
 
   Geany is available through the official Debian archives.
254
 
 
255
 
   apt-get install geany
256
 
     _________________________________________________________
257
 
 
258
 
2.3.3. SuSE
259
 
 
260
 
   Packages for SuSE are not yet available.
261
 
     _________________________________________________________
262
 
 
263
 
2.3.4. Gentoo
264
 
 
265
 
   An ebuild for Gentoo can be found on http://bugs.gentoo.de.
266
 
     _________________________________________________________
267
 
 
268
 
Chapter 3. Usage
269
 
 
270
 
3.1. Getting started
271
 
 
272
 
   You can start Geany in the following ways:
273
 
 
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
279
 
       press Return:
280
 
                                                                % geany
281
 
     _________________________________________________________
282
 
 
283
 
3.2. Command line options
284
 
 
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
305
 
   files.
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
314
 
   the help screen.
315
 
     _________________________________________________________
316
 
 
317
 
3.3. General
318
 
 
319
 
3.3.1. Startup
320
 
 
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
330
 
   Section 3.6.1.
331
 
 
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
 
     _________________________________________________________
338
 
 
339
 
3.3.2. Opening files from the command-line in a running instance
340
 
 
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
347
 
   3.2.
348
 
     _________________________________________________________
349
 
 
350
 
3.3.3. Virtual terminal emulator widget (VTE)
351
 
 
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.
355
 
 
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.
361
 
 
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
372
 
   together).
373
 
 
374
 
   Note
375
 
 
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
379
 
   this library.
380
 
 
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.
 
247
 
 
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.
 
252
 
 
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™.
 
256
 
 
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
 
259
>.
 
260
 
 
261
Binary packages
 
262
 
 
263
Fedora
 
264
 
 
265
You can use the Fedora Core 4 repository from http://naturidentisch.de/packages
 
266
/fc4/.
 
267
 
 
268
You can also use the Fedora Core 5 repository from http://naturidentisch.de/
 
269
packages/fc5/.
 
270
 
 
271
Debian
 
272
 
 
273
Geany is available through the official Debian archives.
 
274
 
 
275
apt-get install geany
 
276
 
 
277
SuSE
 
278
 
 
279
Packages for SuSE are not yet available.
 
280
 
 
281
Gentoo
 
282
 
 
283
An ebuild for Gentoo can be found on http://bugs.gentoo.de.
 
284
 
 
285
Chapter 3. Usage
 
286
 
 
287
Table of Contents
 
288
 
 
289
Getting started
 
290
Command line options
 
291
General
 
292
 
 
293
    Startup
 
294
    Opening files from the command-line in a running instance
 
295
    Virtual terminal emulator widget (VTE)
 
296
 
 
297
Character sets and Unicode Byte-Order-Mark (BOM)
 
298
 
 
299
    Using character sets
 
300
    Special encoding "None"
 
301
    Unicode Byte-Order-Mark (BOM)
 
302
 
 
303
Search, replace and go to
 
304
 
 
305
    Find
 
306
    Find usage
 
307
    Find in files
 
308
    Replace
 
309
    Go to tag definition
 
310
    Go to tag declaration
 
311
    Go to line
 
312
    Regular expressions
 
313
 
 
314
Preferences
 
315
 
 
316
    Compile time options
 
317
 
 
318
Build system
 
319
 
 
320
    Compile
 
321
    Build
 
322
    Make all
 
323
    Make custom target
 
324
    Make object
 
325
    Execute
 
326
    Stopping running processes
 
327
    Set Includes and Arguments
 
328
    Indicators
 
329
    File type configuration settings
 
330
 
 
331
Printing support
 
332
Keybindings
 
333
 
 
334
Getting started
 
335
 
 
336
You can start Geany in the following ways:
 
337
 
 
338
  ● From the Desktop Environment menu
 
339
 
 
340
    Choose in your application menu of your used Desktop Environment:
 
341
    Development → Geany.
 
342
 
 
343
  ● From the command line
 
344
 
 
345
    To start Geany from a command line, type the following and press Return:
 
346
 
 
347
                                                                    % geany
 
348
 
 
349
 
 
350
Command line options
 
351
 
 
352
Table 3.1. Command line Options
 
353
 
 
354
┌──────────┬────────────────┬─────────────────────────────────────────────────┐
 
355
│  Short   │  Long option   │                    Function                     │
 
356
│  option  │                │                                                 │
 
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    │
 
371
│          │                │ file.                                           │
 
372
├──────────┼────────────────┼─────────────────────────────────────────────────┤
 
373
│          │                │ Do not show the message window. Use this option │
 
374
│ -m       │ --no-msgwin    │ if you do not need compiler messages or VTE     │
 
375
│          │                │ support.                                        │
 
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
└──────────┴────────────────┴─────────────────────────────────────────────────┘
 
404
 
 
405
 
 
406
Geany supports all generic GTK options, a list is available on the help screen.
 
407
 
 
408
General
 
409
 
 
410
Startup
 
411
 
 
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.
 
419
 
 
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.
 
424
 
 
425
Opening files from the command-line in a running instance
 
426
 
 
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
 
432
line options”.
 
433
 
 
434
Virtual terminal emulator widget (VTE)
 
435
 
 
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.
 
438
 
 
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”.
 
444
 
 
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).
 
453
 
 
454
Note
 
455
 
 
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.
 
459
 
 
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
 
462
file (as root).
 
463
 
384
464
# ln -s /usr/lib/libvte.so.X /usr/lib/libvte.so.4
385
465
 
386
 
   Obviously, you have to adjust the paths and set X to the
387
 
   number of your libvte.so.
388
 
     _________________________________________________________
389
 
 
390
 
3.4. Character sets and Unicode Byte-Order-Mark (BOM)
391
 
 
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.
397
 
 
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.
411
 
 
412
 
   Note
413
 
 
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
416
 
   safely ignore it.
417
 
     _________________________________________________________
418
 
 
419
 
3.5. Search, replace and go to
420
 
 
421
 
   This section describes search-related commands from the Search
422
 
   menu and the editor window's popup menu:
423
 
 
424
 
     * Find
425
 
     * Find usage *
426
 
     * Find in files
427
 
     * Replace
428
 
     * Go to tag definition *
429
 
     * Go to tag declaration *
430
 
     * Go to line
431
 
 
432
 
   * These items are available from the editor window's popup
433
 
   menu, or by using a keyboard shortcut (see Section 3.9).
434
 
     _________________________________________________________
435
 
 
436
 
3.5.1. Find
437
 
 
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.
441
 
 
442
 
   Figure 3-1. Find dialog
443
 
 
444
 
   [find_dialog.jpg]
445
 
     _________________________________________________________
446
 
 
447
 
3.5.2. Find usage
448
 
 
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
 
     _________________________________________________________
456
 
 
457
 
3.5.3. Find in files
458
 
 
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
 
     _________________________________________________________
464
 
 
465
 
3.5.4. Replace
466
 
 
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.
471
 
 
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
 
     _________________________________________________________
476
 
 
477
 
3.5.5. Go to tag definition
478
 
 
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
485
 
   is used.
486
 
     _________________________________________________________
487
 
 
488
 
3.5.6. Go to tag declaration
489
 
 
490
 
   Like Go to tag definition, but for a forward function
491
 
   declaration (a.k.a. function prototype) instead of a function
492
 
   definition.
493
 
     _________________________________________________________
494
 
 
495
 
3.5.7. Go to line
496
 
 
497
 
   Go to a particular line number in the current file.
498
 
     _________________________________________________________
499
 
 
500
 
3.5.8. Regular expressions
501
 
 
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.
505
 
 
506
 
   Note
507
 
 
508
 
   Searching backwards with regular expressions is not supported.
509
 
 
510
 
   Table 3-2. Regular expressions
511
 
   In a regular expression, the following characters are
512
 
   interpreted:
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
525
 
   literal backslash.
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
531
 
   character.
532
 
   ^ This matches the start of a line (unless used inside a set,
533
 
   see above).
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.
539
 
 
540
 
   Note Partial POSIX compatibility
541
 
 
542
 
 
543
 
   Note that the POSIX '?' regular expression character for
544
 
   optional matching is not supported by the Find and Replace
545
 
   dialogs.
546
 
     _________________________________________________________
547
 
 
548
 
3.6. Preferences
549
 
 
550
 
   should be written
551
 
 
552
 
   Figure 3-2. General tab in preferences dialog
553
 
 
554
 
   [pref_dialog_gen.jpg]
555
 
 
556
 
   Figure 3-3. Interface tab in preferences dialog
557
 
 
558
 
   [pref_dialog_interface.jpg]
559
 
 
560
 
   Figure 3-4. Toolbar tab in preferences dialog
561
 
 
562
 
   [pref_dialog_toolbar.jpg]
563
 
 
564
 
   Figure 3-5. Editor tab in preferences dialog
565
 
 
566
 
   [pref_dialog_edit.jpg]
567
 
 
568
 
   Figure 3-6. Tools tab in preferences dialog
569
 
 
570
 
   [pref_dialog_tools.jpg]
571
 
 
572
 
   Figure 3-7. Template tab in preferences dialog
573
 
 
574
 
   [pref_dialog_templ.jpg]
575
 
 
576
 
   Figure 3-8. Keybinding tab in preferences dialog
577
 
 
578
 
   [pref_dialog_keys.jpg]
579
 
 
580
 
   Note
581
 
 
582
 
   For more information see Section 3.9.
583
 
 
584
 
   Figure 3-9. VTE tab in preferences dialog
585
 
 
586
 
   [pref_dialog_vte.jpg]
587
 
     _________________________________________________________
588
 
 
589
 
3.6.1. Compile time options
590
 
 
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.
595
 
 
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
599
 
   at the same time. 25
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
604
 
   at sourcecode)
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
613
 
   window. 620
614
 
   GEANY_WINDOW_MINIMAL_HEIGHT The minimal height of the main
615
 
   window. 440
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
620
 
   Default values
621
 
   GEANY_DEFAULT_TOOLS_MAKE The make tool. This can also include
622
 
   a path. "make"
623
 
   GEANY_DEFAULT_TOOLS_TERMINAL A terminal emulator. It has to
624
 
   accept the command line option "-e". This can also include a
625
 
   path. "xterm"
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"
634
 
   list. "10"
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
638
 
   window. "Cursor 8"
639
 
   GEANY_DEFAULT_FONT_EDITOR The font used in the editor window.
640
 
   "Courier New 9"
641
 
     _________________________________________________________
642
 
 
643
 
3.7. Build system
644
 
 
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.
649
 
 
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.
658
 
 
659
 
   Depending on the current file's filetype, the Build menu will
660
 
   contain the following items:
661
 
 
662
 
     * Compile
663
 
     * Build
664
 
     * Make all
665
 
     * Make custom target
666
 
     * Make object
667
 
     * Execute
668
 
     * Set Includes and Arguments
669
 
     _________________________________________________________
670
 
 
671
 
3.7.1. Compile
672
 
 
673
 
   The Compile command has different uses for different kinds of
674
 
   files.
675
 
 
676
 
   For compilable languages such as C and C++, the Compile
677
 
   command is setup to compile the current source file into a
678
 
   binary object file.
679
 
 
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
684
 
   interpreter.
685
 
     _________________________________________________________
686
 
 
687
 
3.7.2. Build
688
 
 
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.
694
 
 
695
 
   Interpreted languages do not use the Build command.
696
 
     _________________________________________________________
697
 
 
698
 
3.7.3. Make all
699
 
 
700
 
   This effectively runs "make all" in the same directory as the
701
 
   current file.
702
 
 
703
 
   Note
704
 
 
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
 
     _________________________________________________________
708
 
 
709
 
3.7.4. Make custom target
710
 
 
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
714
 
   clean".
715
 
     _________________________________________________________
716
 
 
717
 
3.7.5. Make object
718
 
 
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
 
     _________________________________________________________
724
 
 
725
 
3.7.6. Execute
726
 
 
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.
732
 
 
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
736
 
   closed.
737
 
     _________________________________________________________
738
 
 
739
 
3.7.7. Set Includes and Arguments
740
 
 
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.
747
 
 
748
 
   Note
749
 
 
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.
753
 
 
754
 
   These settings are not saved when Geany is shut down. See
755
 
   below for how to set permanent arguments.
756
 
 
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
 
     _________________________________________________________
761
 
 
762
 
3.7.8. Indicators
763
 
 
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.
769
 
 
770
 
   If you do not like this feature, you can disable it in the
771
 
   preferences dialog.
772
 
     _________________________________________________________
773
 
 
774
 
3.7.9. File type configuration settings
775
 
 
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
 
     _________________________________________________________
781
 
 
782
 
3.8. Printing support
783
 
 
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
789
 
   default command is:
 
466
Obviously, you have to adjust the paths and set X to the number of your
 
467
libvte.so.
 
468
 
 
469
Character sets and Unicode Byte-Order-Mark (BOM)
 
470
 
 
471
Using character sets
 
472
 
 
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.
 
477
 
 
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.
 
483
 
 
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.
 
492
 
 
493
There are different ways to use different encodings in Geany:
 
494
 
 
495
 1. Using the file open dialog
 
496
 
 
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).
 
502
 
 
503
 2. Using the "Reload as" menu item
 
504
 
 
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.
 
507
 
 
508
 3. Using the "Set encoding" menu item
 
509
 
 
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.
 
513
 
 
514
Special encoding "None"
 
515
 
 
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.
 
522
 
 
523
Unicode Byte-Order-Mark (BOM)
 
524
 
 
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.
 
535
 
 
536
Note
 
537
 
 
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.
 
540
 
 
541
Search, replace and go to
 
542
 
 
543
This section describes search-related commands from the Search menu and the
 
544
editor window's popup menu:
 
545
 
 
546
  ● Find
 
547
 
 
548
  ● Find usage *
 
549
 
 
550
  ● Find in files
 
551
 
 
552
  ● Replace
 
553
 
 
554
  ● Go to tag definition *
 
555
 
 
556
  ● Go to tag declaration *
 
557
 
 
558
  ● Go to line
 
559
 
 
560
* These items are available from the editor window's popup menu, or by using a
 
561
keyboard shortcut (see the section called “Keybindings”).
 
562
 
 
563
Find
 
564
 
 
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
 
567
expressions”.
 
568
 
 
569
Figure 3.1. Find dialog
 
570
 
 
571
Find dialog
 
572
 
 
573
 
 
574
Find usage
 
575
 
 
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.
 
581
 
 
582
Find in files
 
583
 
 
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.
 
587
 
 
588
Figure 3.2. Find in files dialog
 
589
 
 
590
Find in files dialog
 
591
 
 
592
 
 
593
Replace
 
594
 
 
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.
 
598
 
 
599
Figure 3.3. Replace dialog
 
600
 
 
601
Replace dialog
 
602
 
 
603
 
 
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”.
 
607
 
 
608
Go to tag definition
 
609
 
 
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.
 
615
 
 
616
Go to tag declaration
 
617
 
 
618
Like Go to tag definition, but for a forward function declaration (a.k.a.
 
619
function prototype) instead of a function definition.
 
620
 
 
621
Go to line
 
622
 
 
623
Go to a particular line number in the current file.
 
624
 
 
625
Regular expressions
 
626
 
 
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”.
 
630
 
 
631
Note
 
632
 
 
633
Searching backwards with regular expressions is not supported.
 
634
 
 
635
Table 3.2. Regular expressions
 
636
 
 
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    │
 
667
│        │ above).                                                            │
 
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
└────────┴────────────────────────────────────────────────────────────────────┘
 
677
 
 
678
 
 
679
Partial POSIX compatibility
 
680
 
 
681
Note that the POSIX '?' regular expression character for optional matching is
 
682
not supported by the Find and Replace dialogs.
 
683
 
 
684
Preferences
 
685
 
 
686
should be written
 
687
 
 
688
Figure 3.4. General tab in preferences dialog
 
689
 
 
690
General tab in preferences dialog
 
691
 
 
692
 
 
693
Figure 3.5. Interface tab in preferences dialog
 
694
 
 
695
Interface tab in preferences dialog
 
696
 
 
697
 
 
698
Figure 3.6. Toolbar tab in preferences dialog
 
699
 
 
700
Toolbar tab in preferences dialog
 
701
 
 
702
 
 
703
Figure 3.7. Files tab in preferences dialog
 
704
 
 
705
Files tab in preferences dialog
 
706
 
 
707
 
 
708
Figure 3.8. Editor tab in preferences dialog
 
709
 
 
710
Editor tab in preferences dialog
 
711
 
 
712
 
 
713
Figure 3.9. Tools tab in preferences dialog
 
714
 
 
715
Tools tab in preferences dialog
 
716
 
 
717
 
 
718
Figure 3.10. Template tab in preferences dialog
 
719
 
 
720
Template tab in preferences dialog
 
721
 
 
722
 
 
723
Figure 3.11. Keybinding tab in preferences dialog
 
724
 
 
725
Keybinding tab in preferences dialog
 
726
 
 
727
 
 
728
Note
 
729
 
 
730
For more information see the section called “Keybindings”.
 
731
 
 
732
Figure 3.12. VTE tab in preferences dialog
 
733
 
 
734
VTE tab in preferences dialog
 
735
 
 
736
 
 
737
Compile time options
 
738
 
 
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
 
742
changed.
 
743
 
 
744
Table 3.3. Compile time options
 
745
 
 
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          │
 
756
│                                │ provide.                     │             │
 
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    │             │
 
767
│                                │ are doing.                   │             │
 
768
├────────────────────────────────┼──────────────────────────────┼─────────────┤
 
769
│                                │ Time in seconds between      │             │
 
770
│ GEANY_CHECK_FILE_DELAY         │ checking a file for external │ 30          │
 
771
│                                │ changes.                     │             │
 
772
├────────────────────────────────┼──────────────────────────────┼─────────────┤
 
773
│ GEANY_WINDOW_MINIMAL_WIDTH     │ The minimal width of the     │ 620         │
 
774
│                                │ main window.                 │             │
 
775
├────────────────────────────────┼──────────────────────────────┼─────────────┤
 
776
│ GEANY_WINDOW_MINIMAL_HEIGHT    │ The minimal height of the    │ 440         │
 
777
│                                │ main window.                 │             │
 
778
├────────────────────────────────┼──────────────────────────────┼─────────────┤
 
779
│                                │ The default width of the     │             │
 
780
│ GEANY_WINDOW_DEFAULT_WIDTH     │ main window at the first     │ 900         │
 
781
│                                │ start.                       │             │
 
782
├────────────────────────────────┼──────────────────────────────┼─────────────┤
 
783
│                                │ The default height of the    │             │
 
784
│ GEANY_WINDOW_DEFAULT_HEIGHT    │ main window at the first     │ 600         │
 
785
│                                │ start.                       │             │
 
786
├────────────────────────────────┴──────────────────────────────┴─────────────┤
 
787
│ Default values                                                              │
 
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      │             │
 
804
│                                │ path.                        │             │
 
805
├────────────────────────────────┼──────────────────────────────┼─────────────┤
 
806
│                                │ A grep tool. It should be    │             │
 
807
│ GEANY_DEFAULT_TOOLS_GREP       │ compatible with GNU grep.    │ "grep"      │
 
808
│                                │ This can also include a      │             │
 
809
│                                │ path.                        │             │
 
810
├────────────────────────────────┼──────────────────────────────┼─────────────┤
 
811
│ GEANY_DEFAULT_MRU_LENGHTH      │ The length of the "Recent    │ "10"        │
 
812
│                                │ files" list.                 │             │
 
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  │
 
821
│                                │ window.                      │ 10"         │
 
822
├────────────────────────────────┴──────────────────────────────┴─────────────┤
 
823
│ Windows specific                                                            │
 
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      │             │
 
835
│                                │ system.                      │             │
 
836
└────────────────────────────────┴──────────────────────────────┴─────────────┘
 
837
 
 
838
 
 
839
Build system
 
840
 
 
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
 
844
building.
 
845
 
 
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.
 
852
 
 
853
Depending on the current file's filetype, the Build menu will contain the
 
854
following items:
 
855
 
 
856
  ● Compile
 
857
 
 
858
  ● Build
 
859
 
 
860
  ● Make all
 
861
 
 
862
  ● Make custom target
 
863
 
 
864
  ● Make object
 
865
 
 
866
  ● Execute
 
867
 
 
868
  ● Set Includes and Arguments
 
869
 
 
870
Compile
 
871
 
 
872
The Compile command has different uses for different kinds of files.
 
873
 
 
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.
 
876
 
 
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.
 
881
 
 
882
Build
 
883
 
 
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.
 
888
 
 
889
Interpreted languages do not use the Build command.
 
890
 
 
891
Make all
 
892
 
 
893
This effectively runs "make all" in the same directory as the current file.
 
894
 
 
895
Note
 
896
 
 
897
For each of the Make commands, The Make tool path must be correctly set in the
 
898
Tools tab of the Preferences dialog.
 
899
 
 
900
Make custom target
 
901
 
 
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".
 
905
 
 
906
Make object
 
907
 
 
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.
 
911
 
 
912
Execute
 
913
 
 
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.
 
919
 
 
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.
 
923
 
 
924
Stopping running processes
 
925
 
 
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.
 
930
 
 
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.
 
937
 
 
938
Set Includes and Arguments
 
939
 
 
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
 
944
running Execute.
 
945
 
 
946
Note
 
947
 
 
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
 
950
command setting.
 
951
 
 
952
These settings are not saved when Geany is shut down. See below for how to set
 
953
permanent arguments.
 
954
 
 
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.
 
957
 
 
958
Indicators
 
959
 
 
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.
 
964
 
 
965
If you do not like this feature, you can disable it in the preferences dialog.
 
966
 
 
967
File type configuration settings
 
968
 
 
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
 
972
information.
 
973
 
 
974
Printing support
 
975
 
 
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
 
980
default command is:
 
981
 
790
982
% lpr %f
791
983
 
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).
796
 
 
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).
 
987
 
 
988
A nicer example, which I prefer is:
 
989
 
798
990
% a2ps -1 --medium=A4 -o - %f | xfprint4
799
991
 
800
 
   But this depends on a2ps and xfprint4. As a replacement for
801
 
   xfprint4, gtklp or similar programs can be used.
802
 
 
803
 
   Note
804
 
 
805
 
   The printing support of Geany will be improved in the future.
806
 
   With GTK 2.10, better printing (including syntax highlighting)
807
 
   will be possible.
808
 
     _________________________________________________________
809
 
 
810
 
3.9. Keybindings
811
 
 
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
816
 
   shortcut.
817
 
 
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
823
 
   action.
824
 
 
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.
831
 
 
832
 
   The following table lists all customizable keyboard shortcuts.
833
 
 
834
 
   Table 3-4. Keybindings action table
835
 
   Action Description
836
 
   Menu items
837
 
   New Creates a new file.
838
 
   Open Opens a 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
844
 
   be lost.
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
849
 
   document.
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
864
 
   of spaces.
865
 
   Fold all Folds all contractible code blocks.
866
 
   Unfold all Unfolds all contracted code blocks.
867
 
   Build options
868
 
   Compile Compiles the current file.
869
 
   Build Builds (compiles if necessary and links) the current
870
 
   file.
871
 
   Make all Builds the current file with the Make tool.
872
 
   Make custom target Builds the current file with the Make tool
873
 
   and a given target.
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
877
 
   terminal emulation.
878
 
   Build options Opens the build options dialog.
879
 
   Miscellaneous
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
885
 
   document.
886
 
   Switch to right document Switches to the next open document.
887
 
   Editing operations
888
 
   Duplicate line or selection Duplicates the current line or
889
 
   selection.
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
893
 
   method.
894
 
   Show macro list Shows a list of available macros and variables
895
 
   in the workspace.
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
 
     _________________________________________________________
909
 
 
910
 
Chapter 4. Configuration files
911
 
 
912
 
4.1. Filetype definition files
913
 
 
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.
919
 
 
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.
929
 
 
930
 
   To change the settings, copy a file from $prefix/share/geany
931
 
   to the subdirectory filedefs in your configuration directory
932
 
   (usually ~/.geany/).
933
 
 
934
 
   For example:
 
992
But this depends on a2ps and xfprint4. As a replacement for xfprint4, gtklp or
 
993
similar programs can be used.
 
994
 
 
995
Note
 
996
 
 
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.
 
999
 
 
1000
Keybindings
 
1001
 
 
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.
 
1006
 
 
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.
 
1011
 
 
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.
 
1017
 
 
1018
The following table lists all customizable keyboard shortcuts.
 
1019
 
 
1020
Table 3.4. Keybindings action table
 
1021
 
 
1022
┌──────────────┬──────────────────────────────────────────────────────────────┐
 
1023
│    Action    │                         Description                          │
 
1024
├──────────────┴──────────────────────────────────────────────────────────────┤
 
1025
│ Menu items                                                                  │
 
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.                                       │
 
1054
│ Previous     │                                                              │
 
1055
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1056
│ Replace      │ Opens the Replace dialog.                                    │
 
1057
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1058
│ Find in      │ Opens the Find in files dialog.                              │
 
1059
│ files        │                                                              │
 
1060
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1061
│ Go to line   │ Opens the Go to line dialog.                                 │
 
1062
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1063
│ Show Colour  │ Opens the Colour Chooser dialog.                             │
 
1064
│ Chooser      │                                                              │
 
1065
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1066
│ Fullscreen   │ Switches to fullscreen mode.                                 │
 
1067
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1068
│ Toggle       │ Toggles the message window (status and compiler messages) on │
 
1069
│ Messages     │ and off.                                                     │
 
1070
│ Window       │                                                              │
 
1071
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1072
│ Toggle       │ Shows or hides the sidebar.                                  │
 
1073
│ 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.           │
 
1080
│ by space     │                                                              │
 
1081
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1082
│ Fold all     │ Folds all contractible code blocks.                          │
 
1083
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1084
│ Unfold all   │ Unfolds all contracted code blocks.                          │
 
1085
├──────────────┴──────────────────────────────────────────────────────────────┤
 
1086
│ Build options                                                               │
 
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
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1101
│ Run          │                                                              │
 
1102
│ (alternative │ Executes the current file in a terminal emulation.           │
 
1103
│ command)     │                                                              │
 
1104
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1105
│ Build        │ Opens the build options dialog.                              │
 
1106
│ options      │                                                              │
 
1107
├──────────────┴──────────────────────────────────────────────────────────────┤
 
1108
│ Miscellaneous                                                               │
 
1109
├──────────────┬──────────────────────────────────────────────────────────────┤
 
1110
│ Reload       │ Reloads the tag/symbol list.                                 │
 
1111
│ symbol list  │                                                              │
 
1112
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1113
│ Switch to    │ Switches to editor widget.                                   │
 
1114
│ Editor       │                                                              │
 
1115
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1116
│ Switch to    │ Switches to scribble widget.                                 │
 
1117
│ Scribble     │                                                              │
 
1118
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1119
│ Switch to    │ Switches to VTE widget.                                      │
 
1120
│ VTE          │                                                              │
 
1121
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1122
│ Switch to    │                                                              │
 
1123
│ left         │ Switches to the previous open document.                      │
 
1124
│ document     │                                                              │
 
1125
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1126
│ Switch to    │                                                              │
 
1127
│ right        │ Switches to the next open document.                          │
 
1128
│ document     │                                                              │
 
1129
├──────────────┴──────────────────────────────────────────────────────────────┤
 
1130
│ Editing operations                                                          │
 
1131
├──────────────┬──────────────────────────────────────────────────────────────┤
 
1132
│ Duplicate    │                                                              │
 
1133
│ line or      │ Duplicates the current line or selection.                    │
 
1134
│ selection    │                                                              │
 
1135
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1136
│ Comment line │ Comments current line or selection.                          │
 
1137
├──────────────┼──────────────────────────────────────────────────────────────┤
 
1138
│ Uncomment    │ Uncomments current line or selection.                        │
 
1139
│ line         │                                                              │
 
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.      │
 
1145
│ indent       │                                                              │
 
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.                                  │
 
1156
│ word         │                                                              │
 
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.                                  │
 
1165
│ completion   │                                                              │
 
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
└──────────────┴──────────────────────────────────────────────────────────────┘
 
1180
 
 
1181
 
 
1182
Chapter 4. Configuration files
 
1183
 
 
1184
Table of Contents
 
1185
 
 
1186
Filetype definition files
 
1187
 
 
1188
    Format
 
1189
    Special file filetypes.common
 
1190
 
 
1191
Filetype extensions
 
1192
Templates
 
1193
 
 
1194
Filetype definition files
 
1195
 
 
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.
 
1200
 
 
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.
 
1208
 
 
1209
To change the settings, copy a file from $prefix/share/geany to the
 
1210
subdirectory filedefs in your configuration directory (usually ~/.geany/).
 
1211
 
 
1212
For example:
 
1213
 
935
1214
% cp /usr/local/share/geany/filetypes.c /home/username/.geany/filedefs/
936
1215
 
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
 
     _________________________________________________________
944
 
 
945
 
4.1.1. Format
946
 
 
947
 
4.1.1.1. [styling] Section
948
 
 
949
 
   In this section the colours for syntax highlighting are
950
 
   defined. The format is always:
951
 
   key=forground_colour;background_colour;bold;italic
952
 
 
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
 
     _________________________________________________________
960
 
 
961
 
4.1.1.2. [keywords] Section
962
 
 
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.
967
 
 
968
 
   Important
969
 
 
970
 
   The keywords list must be in one line without line ending
971
 
   characters.
972
 
     _________________________________________________________
973
 
 
974
 
4.1.1.3. [settings] Section
975
 
 
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.
988
 
 
989
 
   Example 4-1. Comment indentation
990
 
 
991
 
   comment_use_indent=true would generate this if a line is
992
 
   commented (e.g. with Ctrl-D)
993
 
        #command_example();
994
 
 
995
 
   comment_use_indent=false would generate this if a line is
996
 
   commented (e.g. with Ctrl-D)
997
 
#command_example();
998
 
 
999
 
   Note
1000
 
 
1001
 
   This setting only works for single line comments.
1002
 
   comment_use_indent=true
1003
 
     _________________________________________________________
1004
 
 
1005
 
4.1.1.4. [build_settings] Section
1006
 
 
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.
1014
 
 
1015
 
   You should quote the filename to also support filenames with
1016
 
   spaces. The following wildcards for filenames are available:
1017
 
 
1018
 
     * %f - complete filename without path
1019
 
     * %e - filename without path and without extension
1020
 
 
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
 
     _________________________________________________________
1033
 
 
1034
 
4.1.2. Special file filetypes.common
1035
 
 
1036
 
   There is a special filetype definition file called
1037
 
   filetypes.common. This file defines some general
1038
 
   non-filetype-specific settings.
1039
 
 
1040
 
   Table 4-3. General settings
1041
 
   Key Description Example
1042
 
   selection The style for colouring selected text. The format
1043
 
   is:
1044
 
 
1045
 
     * Foreground colour
1046
 
     * Background colour
1047
 
     * Use foreground colour
1048
 
     * Use background colour
1049
 
 
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.
1074
 
 
1075
 
   Valid values for the first argument are:
1076
 
 
1077
 
     * 1 - for boxes
1078
 
     * 2 - for circles
1079
 
 
1080
 
   Valid values for the second argument are:
1081
 
 
1082
 
     * 1 - for straight lines
1083
 
     * 2 - for curved lines
1084
 
 
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.
1090
 
 
1091
 
   Only first argument is interpreted. Set it to 1 to invert all
1092
 
   colours.
1093
 
   invert_all=0;0;false;false
1094
 
     _________________________________________________________
1095
 
 
1096
 
4.2. Filetype extensions
1097
 
 
1098
 
   You can override the default extensions that Geany uses for
1099
 
   each filetype using the filetype_extensions.conf file.
1100
 
 
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).
1105
 
 
1106
 
   For example:
1107
 
% cp /usr/local/share/geany/filetype_extensions.conf /home/username/.ge
1108
 
any/
1109
 
 
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.
1114
 
 
1115
 
   For example, to set the filetype extensions for Make, the
1116
 
   /home/username/.geany/filetype_extensions.conf file should
1117
 
   look like:
1118
 
 
1119
 
   [Extensions] Make=Makefile*;*.mk;Buildfile;
1120
 
     _________________________________________________________
1121
 
 
1122
 
4.3. Templates
1123
 
 
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.
1130
 
 
1131
 
   Some templates (like file header or ChangeLog entry) will
1132
 
   always be inserted at the top of the file.
1133
 
 
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.
1140
 
 
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.
1148
 
 
1149
 
   All wildcards must be enclosed by "{" and "}", e.g. {date}.
1150
 
 
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.
1155
 
 
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.
1164
 
 
1165
 
 
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
 
     _________________________________________________________
1199
 
 
1200
 
Appendix A. Scintilla keyboard commands
1201
 
 
1202
 
A.1. Keyboard commands
1203
 
 
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:
1213
 
 
1214
 
   Table A-1. Scintilla keyboard commands
1215
 
                      Action                        Shortcut key
1216
 
   Magnify text size.                           Ctrl+Keypad+
1217
 
   Reduce text size.                            Ctrl+Keypad-
1218
 
   Restore text size to normal.                 Ctrl+Keypad/
1219
 
   Indent block.                                Tab
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
1233
 
   Scroll up.                                   Ctrl+Up
1234
 
   Scroll down.                                 Ctrl+Down
1235
 
   Line cut.                                    Ctrl+L
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
 
     _________________________________________________________
1247
 
 
1248
 
Appendix B. GNU General Public License
1249
 
 
1250
 
B.1. Preamble
1251
 
 
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
1261
 
   programs, too.
1262
 
 
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.
1270
 
 
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.
1276
 
 
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.
1282
 
 
1283
 
   We protect your rights with two steps:
1284
 
 
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.
1288
 
 
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'
1295
 
   reputations.
1296
 
 
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.
1303
 
 
1304
 
   The precise terms and conditions for copying, distribution and
1305
 
   modification follow.
1306
 
     _________________________________________________________
1307
 
 
1308
 
B.2. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
1309
 
 
1310
 
B.2.1. Section 0
1311
 
 
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
1322
 
   "you".
1323
 
 
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
 
     _________________________________________________________
1332
 
 
1333
 
B.2.2. Section 1
1334
 
 
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.
1342
 
 
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
1345
 
   exchange for a fee.
1346
 
     _________________________________________________________
1347
 
 
1348
 
B.2.3. Section 2
1349
 
 
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
1354
 
   conditions:
1355
 
 
1356
 
    1. You must cause the modified files to carry prominent
1357
 
       notices stating that you changed the files and the date of
1358
 
       any change.
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
1363
 
       License.
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
1372
 
       this License.
1373
 
 
1374
 
       Note Exception:
1375
 
 
1376
 
 
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.)
1380
 
 
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
1391
 
   who wrote it.
1392
 
 
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
1397
 
   Program.
1398
 
 
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
 
     _________________________________________________________
1404
 
 
1405
 
B.2.4. Section 3
1406
 
 
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:
1411
 
 
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.)
1429
 
 
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.
1441
 
 
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
1447
 
   object code.
1448
 
     _________________________________________________________
1449
 
 
1450
 
B.2.5. Section 4
1451
 
 
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
1459
 
   full compliance.
1460
 
     _________________________________________________________
1461
 
 
1462
 
B.2.6. Section 5
1463
 
 
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
 
     _________________________________________________________
1474
 
 
1475
 
B.2.7. Section 6
1476
 
 
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
 
     _________________________________________________________
1485
 
 
1486
 
B.2.8. Section 7
1487
 
 
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
1501
 
   the Program.
1502
 
 
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.
1507
 
 
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.
1519
 
 
1520
 
   This section is intended to make thoroughly clear what is
1521
 
   believed to be a consequence of the rest of this License.
1522
 
     _________________________________________________________
1523
 
 
1524
 
B.2.9. Section 8
1525
 
 
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
 
     _________________________________________________________
1535
 
 
1536
 
B.2.10. Section 9
1537
 
 
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.
1542
 
 
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
 
     _________________________________________________________
1552
 
 
1553
 
B.2.11. Section 10
1554
 
 
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
1563
 
   generally.
1564
 
     _________________________________________________________
1565
 
 
1566
 
B.2.12. Section 11 NO WARRANTY
1567
 
 
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
 
     _________________________________________________________
1579
 
 
1580
 
B.2.13. Section 12
1581
 
 
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
1592
 
   DAMAGES.
1593
 
 
1594
 
   END OF TERMS AND CONDITIONS
1595
 
     _________________________________________________________
1596
 
 
1597
 
B.3. How to Apply These Terms to Your New Programs
1598
 
 
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.
1603
 
 
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.
1609
 
 
1610
 
   <one line to give the program's name and a brief idea of what
1611
 
   it does.> Copyright (C) <year> <name of author>
1612
 
 
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.
1617
 
 
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.
1622
 
 
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,
1626
 
   MA 02111-1307 USA
1627
 
 
1628
 
   Also add information on how to contact you by electronic and
1629
 
   paper mail.
1630
 
 
1631
 
   If the program is interactive, make it output a short notice
1632
 
   like this when it starts in an interactive mode:
1633
 
 
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
1638
 
   details.
1639
 
 
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.
1645
 
 
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;
1649
 
   alter the names:
1650
 
 
1651
 
   Yoyodyne, Inc., hereby disclaims all copyright interest in the
1652
 
   program `Gnomovision' (which makes passes at compilers)
1653
 
   written by James Hacker.
1654
 
 
1655
 
   <signature of Ty Coon>, 1 April 1989 Ty Coon, President of
1656
 
   Vice
1657
 
 
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
 
     _________________________________________________________
1665
 
 
1666
 
Appendix C. License for Scintilla and SciTE
1667
 
 
1668
 
   Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org>
1669
 
 
1670
 
   All Rights Reserved
1671
 
 
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.
1677
 
 
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.
 
1221
 
 
1222
Format
 
1223
 
 
1224
[styling] Section
 
1225
 
 
1226
In this section the colours for syntax highlighting are defined. The format is
 
1227
always: key=forground_colour;background_colour;bold;italic
 
1228
 
 
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",
 
1233
"false" is assumed.
 
1234
 
 
1235
[keywords] Section
 
1236
 
 
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.
 
1240
 
 
1241
Important
 
1242
 
 
1243
The keywords list must be in one line without line ending characters.
 
1244
 
 
1245
[settings] Section
 
1246
 
 
1247
Table 4.1. General settings
 
1248
 
 
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) │
 
1255
│                    │ options.                          │                    │
 
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   │                    │
 
1271
│                    │ the line.                         │                    │
 
1272
│                    │                                   │                    │
 
1273
│                    │ Example 4.1. Comment indentation  │                    │
 
1274
│                    │                                   │                    │
 
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              │
 
1280
│                    │                                   │                    │
 
1281
│                    │ comment_use_indent=false would    │                    │
 
1282
│                    │ generate this if a line is        │                    │
 
1283
│                    │ commented (e.g. with Ctrl-D)      │                    │
 
1284
│                    │                                   │                    │
 
1285
│                    │ #command_example();               │                    │
 
1286
│                    │                                   │                    │
 
1287
│                    │                                   │                    │
 
1288
│                    │ Note                              │                    │
 
1289
│                    │                                   │                    │
 
1290
│                    │ This setting only works for       │                    │
 
1291
│                    │ single line comments.             │                    │
 
1292
└────────────────────┴───────────────────────────────────┴────────────────────┘
 
1293
 
 
1294
 
 
1295
[build_settings] Section
 
1296
 
 
1297
Table 4.2. Build settings
 
1298
 
 
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:                              │          │
 
1312
│          │                                                       │          │
 
1313
│          │   ● %f - complete filename without path               │          │
 
1314
│          │                                                       │          │
 
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"     │
 
1322
│          │ linker).                                              │          │
 
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
└──────────┴───────────────────────────────────────────────────────┴──────────┘
 
1330
 
 
1331
 
 
1332
Special file filetypes.common
 
1333
 
 
1334
There is a special filetype definition file called filetypes.common. This file
 
1335
defines some general non-filetype-specific settings.
 
1336
 
 
1337
Table 4.3. General settings
 
1338
 
 
1339
┌────────────────────┬───────────────────────────────────┬────────────────────┐
 
1340
│        Key         │            Description            │      Example       │
 
1341
├────────────────────┼───────────────────────────────────┼────────────────────┤
 
1342
│                    │ The style for colouring selected  │                    │
 
1343
│                    │ text. The format is:              │                    │
 
1344
│                    │                                   │                    │
 
1345
│                    │   ● Foreground colour             │                    │
 
1346
│                    │                                   │                    │
 
1347
│                    │   ● Background colour             │                    │
 
1348
│                    │                                   │                    │
 
1349
│                    │   ● Use foreground colour         │ selection=         │
 
1350
│ selection          │                                   │ 0xc0c0c0;0x00007F; │
 
1351
│                    │   ● Use background colour         │ true;true          │
 
1352
│                    │                                   │                    │
 
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; │
 
1362
│                    │                                   │ true;false         │
 
1363
├────────────────────┼───────────────────────────────────┼────────────────────┤
 
1364
│                    │ The style for brace highlighting  │ brace_bad=         │
 
1365
│ brace_bad          │ when no matching brace was found. │ 0x0000ff;0xFFFFFF; │
 
1366
│                    │                                   │ true;false         │
 
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    │                    │
 
1394
│                    │ used.                             │                    │
 
1395
│                    │                                   │                    │
 
1396
│                    │ Valid values for the first        │                    │
 
1397
│                    │ argument are:                     │                    │
 
1398
│                    │                                   │                    │
 
1399
│                    │   ● 1 - for boxes                 │ folding_style=1;1; │
 
1400
│ folding_style      │                                   │ false;false        │
 
1401
│                    │   ● 2 - for circles               │                    │
 
1402
│                    │                                   │                    │
 
1403
│                    │ Valid values for the second       │                    │
 
1404
│                    │ argument are:                     │                    │
 
1405
│                    │                                   │                    │
 
1406
│                    │   ● 1 - for straight lines        │                    │
 
1407
│                    │                                   │                    │
 
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.      │                    │
 
1413
│                    │                                   │                    │
 
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   │
 
1418
│                    │     line                          │                    │
 
1419
│                    │                                   │                    │
 
1420
│                    │   ● 1 - draw the line above       │                    │
 
1421
│                    │     folded text                   │                    │
 
1422
│                    │                                   │                    │
 
1423
│                    │   ● 2 - draw the line below       │                    │
 
1424
│                    │     folded text                   │                    │
 
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.                     │                    │
 
1434
│                    │                                   │                    │
 
1435
│                    │ Only first argument is            │                    │
 
1436
│                    │ interpreted. Set it to 1 to       │                    │
 
1437
│                    │ invert all colours.               │                    │
 
1438
└────────────────────┴───────────────────────────────────┴────────────────────┘
 
1439
 
 
1440
 
 
1441
Filetype extensions
 
1442
 
 
1443
You can override the default extensions that Geany uses for each filetype using
 
1444
the filetype_extensions.conf file.
 
1445
 
 
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).
 
1449
 
 
1450
For example:
 
1451
 
 
1452
% cp /usr/local/share/geany/filetype_extensions.conf /home/username/.geany/
 
1453
 
 
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
 
1457
filetype.
 
1458
 
 
1459
For example, to set the filetype extensions for Make, the /home/username/.geany
 
1460
/filetype_extensions.conf file should look like:
 
1461
 
 
1462
 
 
1463
[Extensions]
 
1464
Make=Makefile*;*.mk;Buildfile;
 
1465
 
 
1466
Templates
 
1467
 
 
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.
 
1473
 
 
1474
Some templates (like file header or ChangeLog entry) will always be inserted at
 
1475
the top of the file.
 
1476
 
 
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.
 
1482
 
 
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.
 
1489
 
 
1490
All wildcards must be enclosed by "{" and "}", e.g. {date}.
 
1491
 
 
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.
 
1496
 
 
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.
 
1501
 
 
1502
 
 
1503
 
 
1504
Table 4.4. Template wildcards
 
1505
 
 
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          │
 
1560
│              │ template.                             │                      │
 
1561
├──────────────┼───────────────────────────────────────┼──────────────────────┤
 
1562
│ gpl          │ This wildcard inserts a short GPL     │ file header          │
 
1563
│              │ notice.                               │                      │
 
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
└──────────────┴───────────────────────────────────────┴──────────────────────┘
 
1570
 
 
1571
 
 
1572
If you need any other wildcards or a special date/time format, please email the
 
1573
author <enrico.troeger@uvena.de>.
 
1574
 
 
1575
Scintilla keyboard commands
 
1576
 
 
1577
Copyright © 1998, 2006 Neil Hodgson <neilh@scintilla.org>
 
1578
 
 
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.
 
1583
 
 
1584
20 June 2006
 
1585
 
 
1586
Table of Contents
 
1587
 
 
1588
Keyboard commands
 
1589
 
 
1590
Keyboard commands
 
1591
 
 
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:
 
1599
 
 
1600
Table A.1. Scintilla keyboard commands
 
1601
 
 
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
└──────────────────────────────────────────────┴──────────────────────┘
 
1665
 
 
1666
 
 
1667
GNU General Public License
 
1668
 
 
1669
Version 2, June 1991
 
1670
 
 
1671
Copyright © 1989, 1991 Free Software Foundation, Inc.
 
1672
 
 
1673
Free Software Foundation, Inc.
 
1674
  59 Temple Place, Suite 330,
 
1675
  Boston,
 
1676
  MA
 
1677
  02111-1307
 
1678
  USA
 
1679
 
 
1680
.
 
1681
 
 
1682
Everyone is permitted to copy and distribute verbatim copies of this license
 
1683
document, but changing it is not allowed.
 
1684
 
 
1685
Version 2, June 1991
 
1686
 
 
1687
Table of Contents
 
1688
 
 
1689
Preamble
 
1690
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
1691
 
 
1692
    Section 0
 
1693
    Section 1
 
1694
    Section 2
 
1695
    Section 3
 
1696
    Section 4
 
1697
    Section 5
 
1698
    Section 6
 
1699
    Section 7
 
1700
    Section 8
 
1701
    Section 9
 
1702
    Section 10
 
1703
    Section 11 NO WARRANTY
 
1704
    Section 12
 
1705
 
 
1706
How to Apply These Terms to Your New Programs
 
1707
 
 
1708
Preamble
 
1709
 
 
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
 
1717
your programs, too.
 
1718
 
 
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.
 
1725
 
 
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.
 
1730
 
 
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.
 
1735
 
 
1736
We protect your rights with two steps:
 
1737
 
 
1738
 1. copyright the software, and
 
1739
 
 
1740
 2. offer you this license which gives you legal permission to copy, distribute
 
1741
    and/or modify the software.
 
1742
 
 
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.
 
1748
 
 
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.
 
1754
 
 
1755
The precise terms and conditions for copying, distribution and modification
 
1756
follow.
 
1757
 
 
1758
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
1759
 
 
1760
Section 0
 
1761
 
 
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”.
 
1770
 
 
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.
 
1776
 
 
1777
Section 1
 
1778
 
 
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.
 
1785
 
 
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.
 
1788
 
 
1789
Section 2
 
1790
 
 
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
 
1794
these conditions:
 
1795
 
 
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.
 
1798
 
 
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
 
1802
    this License.
 
1803
 
 
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
 
1810
    License.
 
1811
 
 
1812
    Exception:
 
1813
 
 
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
 
1816
    announcement.)
 
1817
 
 
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.
 
1826
 
 
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
 
1830
the Program.
 
1831
 
 
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
 
1835
License.
 
1836
 
 
1837
Section 3
 
1838
 
 
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:
 
1842
 
 
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,
 
1846
 
 
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,
 
1852
 
 
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
 
1857
    above.)
 
1858
 
 
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.
 
1868
 
 
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.
 
1873
 
 
1874
Section 4
 
1875
 
 
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.
 
1882
 
 
1883
Section 5
 
1884
 
 
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.
 
1892
 
 
1893
Section 6
 
1894
 
 
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.
 
1901
 
 
1902
Section 7
 
1903
 
 
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.
 
1915
 
 
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.
 
1919
 
 
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
 
1928
choice.
 
1929
 
 
1930
This section is intended to make thoroughly clear what is believed to be a
 
1931
consequence of the rest of this License.
 
1932
 
 
1933
Section 8
 
1934
 
 
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
 
1941
this License.
 
1942
 
 
1943
Section 9
 
1944
 
 
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
 
1948
or concerns.
 
1949
 
 
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.
 
1956
 
 
1957
Section 10
 
1958
 
 
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
 
1965
software generally.
 
1966
 
 
1967
Section 11 NO WARRANTY
 
1968
 
 
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.
 
1977
 
 
1978
Section 12
 
1979
 
 
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.
 
1988
 
 
1989
END OF TERMS AND CONDITIONS
 
1990
 
 
1991
How to Apply These Terms to Your New Programs
 
1992
 
 
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.
 
1996
 
 
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.
 
2001
 
 
2002
<one line to give the program's name and a brief idea of what it does.>
 
2003
Copyright (C) <year> <name of author>
 
2004
 
 
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
 
2008
version.
 
2009
 
 
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.
 
2013
 
 
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
 
2017
 
 
2018
Also add information on how to contact you by electronic and paper mail.
 
2019
 
 
2020
If the program is interactive, make it output a short notice like this when it
 
2021
starts in an interactive mode:
 
2022
 
 
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'
 
2026
for details.
 
2027
 
 
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.
 
2032
 
 
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:
 
2036
 
 
2037
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
 
2038
`Gnomovision' (which makes passes at compilers) written by James Hacker.
 
2039
 
 
2040
<signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice
 
2041
 
 
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
 
2046
of this License.
 
2047
 
 
2048
Appendix C. License for Scintilla and SciTE
 
2049
 
 
2050
Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org>
 
2051
 
 
2052
All Rights Reserved
 
2053
 
 
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.
 
2058
 
 
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.
 
2065