Revision: 1320 http://svn.sourceforge.net/geany/?rev=1320&view=rev Author: eht16 Date: 2007-02-23 04:16:29 -0800 (Fri, 23 Feb 2007)
Log Message: ----------- Updated for 0.10.1 release.
Modified Paths: -------------- branches/geany-0.10.1/doc/geany.txt branches/geany-0.10.1/doc/html/apa.html branches/geany-0.10.1/doc/html/apb.html branches/geany-0.10.1/doc/html/apbs02.html branches/geany-0.10.1/doc/html/apbs03.html branches/geany-0.10.1/doc/html/apc.html branches/geany-0.10.1/doc/html/ch01.html branches/geany-0.10.1/doc/html/ch01s02.html branches/geany-0.10.1/doc/html/ch01s03.html branches/geany-0.10.1/doc/html/ch01s04.html branches/geany-0.10.1/doc/html/ch02.html branches/geany-0.10.1/doc/html/ch02s02.html branches/geany-0.10.1/doc/html/ch02s03.html branches/geany-0.10.1/doc/html/ch03.html branches/geany-0.10.1/doc/html/ch03s02.html branches/geany-0.10.1/doc/html/ch03s03.html branches/geany-0.10.1/doc/html/ch03s04.html branches/geany-0.10.1/doc/html/ch03s05.html branches/geany-0.10.1/doc/html/ch03s06.html branches/geany-0.10.1/doc/html/ch03s07.html branches/geany-0.10.1/doc/html/ch03s08.html branches/geany-0.10.1/doc/html/ch03s09.html branches/geany-0.10.1/doc/html/ch04.html branches/geany-0.10.1/doc/html/ch04s02.html branches/geany-0.10.1/doc/html/ch04s03.html branches/geany-0.10.1/doc/html/index.html
Modified: branches/geany-0.10.1/doc/geany.txt =================================================================== --- branches/geany-0.10.1/doc/geany.txt 2007-02-23 12:15:01 UTC (rev 1319) +++ branches/geany-0.10.1/doc/geany.txt 2007-02-23 12:16:29 UTC (rev 1320) @@ -1,1685 +1,2065 @@ +Geany 0.10.1
-Geany 0.9 - Enrico Tröger
Nick Treleaven
Frank Lanitz
- Copyright \xA9 2005-2006 +Copyright © 2005-2007
- This document is distributed under the terms of the GNU - General Public License as published by the Free Software - Foundation; either version 2 of the License, or (at your - option) any later version. A copy of this license can be found - in the file COPYING included with the source code of this - program and see Appendix B. - _________________________________________________________ +This document is distributed under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 of the License, +or (at your option) any later version. A copy of this license can be found in +the file COPYING included with the source code of this program and see +Appendix B, GNU General Public License.
- Table of Contents - 1. Introduction +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 1.1. About Geany - 1.2. About this document - 1.3. Where to get it - 1.4. License +Table of Contents
- 2. Installation +1. Introduction
- 2.1. Requirements - 2.2. Source compilation - 2.3. Binary packages + About Geany + About this document + Where to get it + License
- 2.3.1. Fedora - 2.3.2. Debian - 2.3.3. SuSE - 2.3.4. Gentoo +2. Installation
- 3. Usage + Requirements + Source compilation + Binary packages
- 3.1. Getting started - 3.2. Command line options - 3.3. General + Fedora + Debian + SuSE + Gentoo
- 3.3.1. Startup - 3.3.2. Opening files from the command-line in a - running instance +3. Usage
- 3.3.3. Virtual terminal emulator widget (VTE) + Getting started + Command line options + General
- 3.4. Character sets and Unicode Byte-Order-Mark (BOM) - 3.5. Search, replace and go to + Startup + Opening files from the command-line in a running instance + Virtual terminal emulator widget (VTE)
- 3.5.1. Find - 3.5.2. Find usage - 3.5.3. Find in files - 3.5.4. Replace - 3.5.5. Go to tag definition - 3.5.6. Go to tag declaration - 3.5.7. Go to line - 3.5.8. Regular expressions + Character sets and Unicode Byte-Order-Mark (BOM)
- 3.6. Preferences + Using character sets + Special encoding "None" + Unicode Byte-Order-Mark (BOM)
- 3.6.1. Compile time options + Search, replace and go to
- 3.7. Build system + Find + Find usage + Find in files + Replace + Go to tag definition + Go to tag declaration + Go to line + Regular expressions
- 3.7.1. Compile - 3.7.2. Build - 3.7.3. Make all - 3.7.4. Make custom target - 3.7.5. Make object - 3.7.6. Execute - 3.7.7. Set Includes and Arguments - 3.7.8. Indicators - 3.7.9. File type configuration settings + Preferences
- 3.8. Printing support - 3.9. Keybindings + Compile time options
- 4. Configuration files + Build system
- 4.1. Filetype definition files + Compile + Build + Make all + Make custom target + Make object + Execute + Stopping running processes + Set Includes and Arguments + Indicators + File type configuration settings
- 4.1.1. Format - 4.1.2. Special file filetypes.common + Printing support + Keybindings
- 4.2. Filetype extensions - 4.3. Templates +4. Configuration files
- A. Scintilla keyboard commands + Filetype definition files
- A.1. Keyboard commands + Format + Special file filetypes.common
- B. GNU General Public License + Filetype extensions + Templates
- B.1. Preamble - B.2. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND - MODIFICATION +A. Scintilla keyboard commands
- B.2.1. Section 0 - B.2.2. Section 1 - B.2.3. Section 2 - B.2.4. Section 3 - B.2.5. Section 4 - B.2.6. Section 5 - B.2.7. Section 6 - B.2.8. Section 7 - B.2.9. Section 8 - B.2.10. Section 9 - B.2.11. Section 10 - B.2.12. Section 11 NO WARRANTY - B.2.13. Section 12 + Keyboard commands
- B.3. How to Apply These Terms to Your New Programs +B. GNU General Public License
- C. License for Scintilla and SciTE + Preamble + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- List of Tables - 3-1. Command line Options - 3-2. Regular expressions - 3-3. Compile time options - 3-4. Keybindings action table - 4-1. General settings - 4-2. Build settings - 4-3. General settings - 4-4. Template wildcards - A-1. Scintilla keyboard commands + Section 0 + Section 1 + Section 2 + Section 3 + Section 4 + Section 5 + Section 6 + Section 7 + Section 8 + Section 9 + Section 10 + Section 11 NO WARRANTY + Section 12
- List of Figures - 3-1. Find dialog - 3-2. General tab in preferences dialog - 3-3. Interface tab in preferences dialog - 3-4. Toolbar tab in preferences dialog - 3-5. Editor tab in preferences dialog - 3-6. Tools tab in preferences dialog - 3-7. Template tab in preferences dialog - 3-8. Keybinding tab in preferences dialog - 3-9. VTE tab in preferences dialog + How to Apply These Terms to Your New Programs
- List of Examples - 4-1. Comment indentation - _________________________________________________________ +C. License for Scintilla and SciTE
-Chapter 1. Introduction +List of Figures
-1.1. About Geany +3.1. Find dialog +3.2. Find in files dialog +3.3. Replace dialog +3.4. General tab in preferences dialog +3.5. Interface tab in preferences dialog +3.6. Toolbar tab in preferences dialog +3.7. Files tab in preferences dialog +3.8. Editor tab in preferences dialog +3.9. Tools tab in preferences dialog +3.10. Template tab in preferences dialog +3.11. Keybinding tab in preferences dialog +3.12. VTE tab in preferences dialog
- Geany is a small and lightweight Integrated Development - Environment. It was developed to provide a small and fast IDE, - which has only a few dependencies from other packages. Another - goal was to be as independent as possible from a special - Desktop Environment like KDE or GNOME, so Geany only requires - the GTK2 toolkit and therefore you only need the GTK2 runtime - libraries installed to run it. +List of Tables
- The basic features of Geany are: +3.1. Command line Options +3.2. Regular expressions +3.3. Compile time options +3.4. Keybindings action table +4.1. General settings +4.2. Build settings +4.3. General settings +4.4. Template wildcards +A.1. Scintilla keyboard commands
- * Syntax highlighting - * Code completion - * Auto completion of often used constructs like if, for and - while - * Auto completion of XML and HTML tags - * Call tips - * Many supported filetypes like C, Java, PHP, HTML, Python, - Perl, Pascal - * Tag/Symbol lists - _________________________________________________________ +List of Examples
-1.2. About this document +4.1. Comment indentation
- This documentation is available in various formats like HTML, - text and PDF. The latest version is always available at - http://geany.uvena.de. - _________________________________________________________ +Chapter 1. Introduction
-1.3. Where to get it +Table of Contents
- You can obtain Geany from http://geany.uvena.de or perhaps - from your distributor. - _________________________________________________________ +About Geany +About this document +Where to get it +License
-1.4. License +About Geany
- Geany is distributed under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later - version. A copy of this license can be found in the file - COPYING included with the source code of this program or see - Appendix B. +Geany is a small and lightweight Integrated Development Environment. It was +developed to provide a small and fast IDE, which has only a few dependencies +from other packages. Another goal was to be as independent as possible from a +special Desktop Environment like KDE or GNOME, so Geany only requires the GTK2 +toolkit and therefore you only need the GTK2 runtime libraries installed to run +it.
- The included Scintilla library (found in the subdirectory - scintilla/) has its own license, which can be found in the - appendix (see Appendix C). - _________________________________________________________ +The basic features of Geany are:
-Chapter 2. Installation + ● Syntax highlighting
-2.1. Requirements + ● Code completion
- For compiling Geany yourself, you will need the GTK (>= 2.6.0) - libraries and header files. You will also need the Pango, Glib - and ATK libraries and header files. All these files are - available at http://www.gtk.org. + ● Auto completion of often used constructs like if, for and while
- Furthermore you need, of course, a C compiler and the Make - tool; a C++ compiler is also required for the included - Scintilla library. The GNU versions of these tools are - recommended. - _________________________________________________________ + ● Auto completion of XML and HTML tags
-2.2. Source compilation + ● Call tips
- Compiling Geany is quite easy. The following should do it: + ● Many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal + + ● Tag/Symbol lists + +About this document + +This documentation is available in various formats like HTML, text and PDF. The +latest version is always available at http://geany.uvena.de. + +Where to get it + +You can obtain Geany from http://geany.uvena.de or perhaps from your +distributor. + +License + +Geany is distributed under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. A copy of this license can be found in the +file COPYING included with the source code of this program or see Appendix B, +GNU General Public License. + +The included Scintilla library (found in the subdirectory scintilla/) has its +own license, which can be found in the appendix (see Appendix C, License for +Scintilla and SciTE). + +Chapter 2. Installation + +Table of Contents + +Requirements +Source compilation +Binary packages + + Fedora + Debian + SuSE + Gentoo + +Requirements + +For compiling Geany yourself, you will need the GTK (>= 2.6.0) libraries and +header files. You will also need the Pango, Glib and ATK libraries and header +files. All these files are available at http://www.gtk.org. + +Furthermore you need, of course, a C compiler and the Make tool; a C++ compiler +is also required for the included Scintilla library. The GNU versions of these +tools are recommended. + +Source compilation + +Compiling Geany is quite easy. The following should do it: + % ./configure % make % make install
- The configure script supports several common options, for a - detailed list, type +The configure script supports several common options, for a detailed list, type + % ./configure --help
- In the case that your system lacks dynamic linking loader - support, you probably want to pass the option --disable-vte to - the configure script. This prevents compiling Geany with - dynamic linking loader support to automatically load - libvte.so.4 if available. +There also some compile time options which can be found in src/geany.h. Please +see the section called “Compile time options” for more information.
- Geany has been successfully compiled and tested under Debian - 3.1 Sarge, Debian 3.2 Etch, Fedora Core 4, LinuxFromScratch - and FreeBSD 6.0. It also compiles under Microsoft Windows(TM), - but there are lots of changes to the makefiles necessary. +In the case that your system lacks dynamic linking loader support, you probably +want to pass the option --disable-vte to the configure script. This prevents +compiling Geany with dynamic linking loader support to automatically load +libvte.so.4 if available.
- If there are any errors during compilation, check your build - environment and try to find the error, otherwise contact the - author at enrico.troeger@uvena.de. - _________________________________________________________ +Geany has been successfully compiled and tested under Debian 3.1 Sarge, Debian +4.0 Etch, Fedora Core 3/4/5, LinuxFromScratch and FreeBSD 6.0. It also compiles +under Microsoft Windows™.
-2.3. Binary packages +If there are any errors during compilation, check your build environment and +try to find the error, otherwise contact the author at <enrico.troeger@uvena.de +>.
-2.3.1. Fedora +Binary packages
- You can use the Fedora Core 4 repository from - http://naturidentisch.de/packages/fc4/. +Fedora
- You can also use the Fedora Core 5 repository from - http://naturidentisch.de/packages/fc5/. - _________________________________________________________ +You can use the Fedora Core 4 repository from http://naturidentisch.de/packages +/fc4/.
-2.3.2. Debian +You can also use the Fedora Core 5 repository from http://naturidentisch.de/ +packages/fc5/.
- Geany is available through the official Debian archives. +Debian
- apt-get install geany - _________________________________________________________ +Geany is available through the official Debian archives.
-2.3.3. SuSE +apt-get install geany
- Packages for SuSE are not yet available. - _________________________________________________________ +SuSE
-2.3.4. Gentoo +Packages for SuSE are not yet available.
- An ebuild for Gentoo can be found on http://bugs.gentoo.de. - _________________________________________________________ +Gentoo
-Chapter 3. Usage +An ebuild for Gentoo can be found on http://bugs.gentoo.de.
-3.1. Getting started +Chapter 3. Usage
- You can start Geany in the following ways: +Table of Contents
- * From the Desktop Environment menu - Choose in your application menu of your used Desktop - Environment: Development->Geany. - * From the command line - To start Geany from a command line, type the following and - press Return: - % geany - _________________________________________________________ +Getting started +Command line options +General
-3.2. Command line options + Startup + Opening files from the command-line in a running instance + Virtual terminal emulator widget (VTE)
- Table 3-1. Command line Options - Short option Long option Function - -s --no-session Don't load the previous session's files. - -n --no-ctags Do not load auto completion and call tip data. - Use this option if you do not want to use them. - -m --no-msgwin Do not show the message window. Use this option - if you do not need compiler messages or VTE support. - -i --new-instance Do not open files in a running instance, - force opening a new instance. - -t --no-terminal Do not load terminal support. Use this option - if you do not want to load the virtual terminal emulator - widget at startup. If you do not have libvte.so.4 installed, - then terminal-support is automatically disabled. - -l --vte-lib Specify explicitly the path including filename or - only the filename to the VTE library, e.g. /usr/lib/libvte.so - or libvte.so. This option is only needed when the - autodetection does not work. - -c directory_name --config=directory_name Use an alternate - configuration directory. Default configuration directory is - ~/.geany/ and there resides geany.conf and other configuration - files. - -d --debug Run Geany in debug mode, which means being verbose - and printing lots of information. - -? --help Show help information and exit. - -v --version Show version information and exit. - [files ...] Open all given files at startup. This option - causes Geany to ignore loading stored files from the last - session (if enabled). - Geany supports all generic GTK options, a list is available on - the help screen. - _________________________________________________________ +Character sets and Unicode Byte-Order-Mark (BOM)
-3.3. General + Using character sets + Special encoding "None" + Unicode Byte-Order-Mark (BOM)
-3.3.1. Startup +Search, replace and go to
- At startup, Geany loads the first 15 files from the last time - Geany was launched. You can disable this feature in the - preferences dialog(see Figure 3-2). If you specify some files - on the command line, only these files will be opened, but you - can find the files from the last session in the file menu - under the "Recent files" item. This contains the last 15 - recently opened files. It may be that Geany loads not exactly - 15 session files, this depends on the compile time option - GEANY_SESSION_FILES; the default is 15. For details see - Section 3.6.1. + Find + Find usage + Find in files + Replace + Go to tag definition + Go to tag declaration + Go to line + Regular expressions
- You can start several instances of Geany, but only the first - will load files from the last session. To run a second - instance of Geany, do not specify any filenames on the - command-line, or disable opening files in a running instance - using the appropriate command line option. - _________________________________________________________ +Preferences
-3.3.2. Opening files from the command-line in a running instance + Compile time options
- Geany detects an already running instance of itself and opens - files from the command-line in the already running instance. - So, Geany can be used to view and edit files by opening them - from other programs such as a file manager. If you do not like - this for some reason, you can disable using the first instance - by using the appropriate command line option - see Section - 3.2. - _________________________________________________________ +Build system
-3.3.3. Virtual terminal emulator widget (VTE) + Compile + Build + Make all + Make custom target + Make object + Execute + Stopping running processes + Set Includes and Arguments + Indicators + File type configuration settings
- If you have installed libvte.so in your system, it is loaded - automatically by Geany, and you will have a terminal widget in - the notebook at the bottom. +Printing support +Keybindings
- If Geany cannot find libvte.so at startup, the terminal widget - will not be loaded. So there is no need to install the package - containing this file in order to run Geany. Additionally, you - can disable the use of the terminal widget by command line - option, for more information see Section 3.2. +Getting started
- You can use this terminal (from now on called VTE) nearly as - an usual terminal program like xterm. There is basic clipboard - support. You can paste the contents of the clipboard by - pressing the right mouse button to open the popup menu and - choosing Paste. To copy text from the VTE, just select the - desired text and then press the right mouse button and choose - Copy from the popup menu. On systems running the X Window - System you can paste the last selected text by pressing the - middle mouse button in the VTE (on 2-button mice, the middle - button can often be simulated by pressing both mouse buttons - together). +You can start Geany in the following ways:
- Note + ● From the Desktop Environment menu
- Geany tries to load libvte.so. If this fails, it tries to load - libvte.so.4. If this fails too, you should check whether you - installed libvte correctly. Again, Geany also runs without - this library. + Choose in your application menu of your used Desktop Environment: + Development → Geany.
- It could be, that the library is called something else than - libvte.so.4 (e.g. on FreeBSD 6.0 it is called libvte.so.8). So - please set a link to the correct file (as root). + ● From the command line + + To start Geany from a command line, type the following and press Return: + + % geany + + +Command line options + +Table 3.1. Command line Options + +┌──────────┬────────────────┬─────────────────────────────────────────────────┐ +│ Short │ Long option │ Function │ +│ option │ │ │ +├──────────┼────────────────┼─────────────────────────────────────────────────┤ +│ │ │ Use an alternate configuration directory. │ +│ -c │ --config= │ Default configuration directory is ~/.geany/ │ +│ dir_name │ directory_name │ and there resides geany.conf and other │ +│ │ │ configuration files. │ +├──────────┼────────────────┼─────────────────────────────────────────────────┤ +│ -d │ --debug │ Run Geany in debug mode, which means being │ +│ │ │ verbose and printing lots of information. │ +├──────────┼────────────────┼─────────────────────────────────────────────────┤ +│ │ │ Do not open files in a running instance, force │ +│ -i │ --new-instance │ opening a new instance. Only available if Geany │ +│ │ │ was compiled with support for Sockets. │ +├──────────┼────────────────┼─────────────────────────────────────────────────┤ +│ -l │ --line │ Set initial line number for the first opened │ +│ │ │ file. │ +├──────────┼────────────────┼─────────────────────────────────────────────────┤ +│ │ │ Do not show the message window. Use this option │ +│ -m │ --no-msgwin │ if you do not need compiler messages or VTE │ +│ │ │ support. │ +├──────────┼────────────────┼─────────────────────────────────────────────────┤ +│ -n │ --no-ctags │ Do not load auto completion and call tip data. │ +│ │ │ Use this option if you do not want to use them. │ +├──────────┼────────────────┼─────────────────────────────────────────────────┤ +│ -s │ --no-session │ Don't load the previous session's files. │ +├──────────┼────────────────┼─────────────────────────────────────────────────┤ +│ │ │ Do not load terminal support. Use this option │ +│ │ │ if you do not want to load the virtual terminal │ +│ -t │ --no-terminal │ emulator widget at startup. If you do not have │ +│ │ │ libvte.so.4 installed, then terminal-support is │ +│ │ │ automatically disabled. Only available if Geany │ +│ │ │ was compiled with support for VTE. │ +├──────────┼────────────────┼─────────────────────────────────────────────────┤ +│ │ │ Specify explicitly the path including filename │ +│ │ │ or only the filename to the VTE library, e.g. / │ +│ │ --vte-lib │ usr/lib/libvte.so or libvte.so. This option is │ +│ │ │ only needed when the autodetection does not │ +│ │ │ work. Only available if Geany was compiled with │ +│ │ │ support for VTE. │ +├──────────┼────────────────┼─────────────────────────────────────────────────┤ +│ -v │ --version │ Show version information and exit. │ +├──────────┼────────────────┼─────────────────────────────────────────────────┤ +│ -? │ --help │ Show help information and exit. │ +├──────────┼────────────────┼─────────────────────────────────────────────────┤ +│ │ │ Open all given files at startup. This option │ +│ │ [files ...] │ causes Geany to ignore loading stored files │ +│ │ │ from the last session (if enabled). │ +└──────────┴────────────────┴─────────────────────────────────────────────────┘ + + +Geany supports all generic GTK options, a list is available on the help screen. + +General + +Startup + +At startup, Geany loads all files from the last time Geany was launched. You +can disable this feature in the preferences dialog(see Figure 3.4, “General tab +in preferences dialog”). If you specify some files on the command line, only +these files will be opened, but you can find the files from the last session in +the file menu under the "Recent files" item. By default this contains the last +10 recently opened files. You can change the amount of recently opened files in +the preferences dialog. + +You can start several instances of Geany, but only the first will load files +from the last session. To run a second instance of Geany, do not specify any +filenames on the command-line, or disable opening files in a running instance +using the appropriate command line option. + +Opening files from the command-line in a running instance + +Geany detects an already running instance of itself and opens files from the +command-line in the already running instance. So, Geany can be used to view and +edit files by opening them from other programs such as a file manager. If you +do not like this for some reason, you can disable using the first instance by +using the appropriate command line option - see the section called “Command +line options”. + +Virtual terminal emulator widget (VTE) + +If you have installed libvte.so in your system, it is loaded automatically by +Geany, and you will have a terminal widget in the notebook at the bottom. + +If Geany cannot find libvte.so at startup, the terminal widget will not be +loaded. So there is no need to install the package containing this file in +order to run Geany. Additionally, you can disable the use of the terminal +widget by command line option, for more information see the section called +“Command line options”. + +You can use this terminal (from now on called VTE) nearly as an usual terminal +program like xterm. There is basic clipboard support. You can paste the +contents of the clipboard by pressing the right mouse button to open the popup +menu and choosing Paste. To copy text from the VTE, just select the desired +text and then press the right mouse button and choose Copy from the popup menu. +On systems running the X Window System you can paste the last selected text by +pressing the middle mouse button in the VTE (on 2-button mice, the middle +button can often be simulated by pressing both mouse buttons together). + +Note + +Geany tries to load libvte.so. If this fails, it tries to load libvte.so.4. If +this fails too, you should check whether you installed libvte correctly. Again, +Geany also runs without this library. + +It could be, that the library is called something else than libvte.so.4 (e.g. +on FreeBSD 6.0 it is called libvte.so.8). So please set a link to the correct +file (as root). + # ln -s /usr/lib/libvte.so.X /usr/lib/libvte.so.4
- Obviously, you have to adjust the paths and set X to the - number of your libvte.so. - _________________________________________________________ +Obviously, you have to adjust the paths and set X to the number of your +libvte.so.
-3.4. Character sets and Unicode Byte-Order-Mark (BOM) +Character sets and Unicode Byte-Order-Mark (BOM)
- Geany provides support for detecting and converting character - sets. So you can open and save files in different character - sets and even can convert a file from a character set to - another one. To do this, Geany uses the character conversion - capabilities of the GLib. +Using character sets
- Furthermore, Geany detects an Unicode Byte Order Mark (see - http://en.wikipedia.org/wiki/Byte_Order_Mark for details). Of - course, this feature is only available if the opened file is - in an unicode encoding. The Byte Order Mark helps to detect - the encoding of a file, e.g. whether it is UTF-16LE or - UTF-16BE and so on. On Unix-like systems using a Byte Order - Mark could cause some problems, e.g. the gcc stops with stray - errors, PHP does not parse a script containing a BOM and - script files starting with a she-bang maybe cannot be started. - In the status bar you can easily see whether the file starts - with a BOM or not. If you want to set a BOM for a file or if - you want to remove it from a file, just use the document menu - and toggle the checkbox. +Geany provides support for detecting and converting character sets. So you can +open and save files in different character sets and even can convert a file +from a character set to another one. To do this, Geany uses the character +conversion capabilities of the GLib.
- Note +Only text files are supported, i.e. opening files which contain NUL-bytes may +fail. Geany will try to open the file anyway but it is likely that the file +will be truncated because it can only opened up to the first occurrence of the +first NUL-byte. All characters after this position are lost and are not written +when you save the file.
- If you are unsure what a BOM is or if you do not understand - where to use it, then it is not important for you and you can - safely ignore it. - _________________________________________________________ +Geany tries to detect the encoding of a file while opening it. It might be that +the encoding of a file cannot be detected correctly so you have to set manually +the encoding of the file in order to display it correctly. You can this in the +file open dialog by selecting an encoding in the drop down box or by reloading +the file with the file menu item "Reload as". The auto detection works well for +most encodings but there are also some encodings known where auto detection has +its problems. Auto detecting the encoding of a file is not easy and sometimes +an encoding might be detected not correctly.
-3.5. Search, replace and go to +There are different ways to use different encodings in Geany:
- This section describes search-related commands from the Search - menu and the editor window's popup menu: + 1. Using the file open dialog
- * Find - * Find usage * - * Find in files - * Replace - * Go to tag definition * - * Go to tag declaration * - * Go to line + This opens the file with the encoding specified in the encoding drop down + box. If the encoding is set to "Detect from file" auto detection will be + used. If the encoding is set to "Without encoding (None)" the file will be + opened without any character conversion and Geany will not try to auto + detect the encoding(see below for more information).
- * These items are available from the editor window's popup - menu, or by using a keyboard shortcut (see Section 3.9). - _________________________________________________________ + 2. Using the "Reload as" menu item
-3.5.1. Find + This item reloads the current file with the specified encoding. It can help + if you opened a file and found out that a wrong encoding was used.
- The Find dialog is used for finding text within the current - document. The syntax for the "Use regular expressions" option - is shown in Table 3-2. + 3. Using the "Set encoding" menu item
- Figure 3-1. Find dialog + In contrary to the above two options, this will not change or reload the + current file unless you save it. It is useful when you want to change the + encoding of the file.
- [find_dialog.jpg] - _________________________________________________________ +Special encoding "None"
-3.5.2. Find usage +There is a special encoding "None" which is actually no real encoding. It is +useful when you know that Geany cannot auto detect the encoding of a file and +it is not displayed correctly. Especially when the file contains NUL-bytes this +can be useful to skip auto detection and open the file properly at least until +the occurrence of the first NUL-byte. Using this encoding opens the file as it +is without any character conversion.
- Find usage searches all open files. If there is a selection, - then it is used as the search text; otherwise the current word - is used. The current word is either taken from the word - nearest the edit cursor, or the word underneath the popup menu - click position when the popup menu is used. The search results - are shown in the Messages window. - _________________________________________________________ +Unicode Byte-Order-Mark (BOM)
-3.5.3. Find in files +Furthermore, Geany detects an Unicode Byte Order Mark (see http:// +en.wikipedia.org/wiki/Byte_Order_Mark for details). Of course, this feature is +only available if the opened file is in an unicode encoding. The Byte Order +Mark helps to detect the encoding of a file, e.g. whether it is UTF-16LE or +UTF-16BE and so on. On Unix-like systems using a Byte Order Mark could cause +some problems, e.g. the gcc stops with stray errors, PHP does not parse a +script containing a BOM and script files starting with a she-bang maybe cannot +be started. In the status bar you can easily see whether the file starts with a +BOM or not. If you want to set a BOM for a file or if you want to remove it +from a file, just use the document menu and toggle the checkbox.
- Find in files is a more powerful version of Find usage that - searches all files in a certain directory using the Grep tool. - The Grep tool must be correctly set in Preferences to the path - of the system's Grep utility. - _________________________________________________________ +Note
-3.5.4. Replace +If you are unsure what a BOM is or if you do not understand where to use it, +then it is not important for you and you can safely ignore it.
- The Replace dialog has the same options for finding text as - the Find dialog. There is also a "Replace in all files" - option, which is used with the Replace All button to perform - the replacement for all open files. +Search, replace and go to
- The "Use regular expressions" option applies both to the - search string and to the replacement text; for the latter back - references can be used - see the entry for '\n' in Table 3-2. - _________________________________________________________ +This section describes search-related commands from the Search menu and the +editor window's popup menu:
-3.5.5. Go to tag definition + ● Find
- If the current word is the name of a function and the file - containing the function definition (a.k.a. function body) is - open, Go to tag definition will switch to that file and go to - the corresponding line number. The current word is either - taken from the word nearest the edit cursor, or the word - underneath the popup menu click position when the popup menu - is used. - _________________________________________________________ + ● Find usage *
-3.5.6. Go to tag declaration + ● Find in files
- Like Go to tag definition, but for a forward function - declaration (a.k.a. function prototype) instead of a function - definition. - _________________________________________________________ + ● Replace
-3.5.7. Go to line + ● Go to tag definition *
- Go to a particular line number in the current file. - _________________________________________________________ + ● Go to tag declaration *
-3.5.8. Regular expressions + ● Go to line
- You can use regular expressions in the Find and Replace - dialogs by selecting the "Use regular expressions" check box. - The syntax is POSIX-like, as described below in Table 3-2. +* These items are available from the editor window's popup menu, or by using a +keyboard shortcut (see the section called “Keybindings”).
- Note +Find
- Searching backwards with regular expressions is not supported. +The Find dialog is used for finding text within the current document. The +syntax for the "Use regular expressions" option is shown in Table 3.2, “Regular +expressions”.
- Table 3-2. Regular expressions - In a regular expression, the following characters are - interpreted: - . Matches any character. - ( This marks the start of a region for tagging a match. - ) This marks the end of a tagged region. - \n Where n is 1 through 9 refers to the first through ninth - tagged region when replacing. For example, if the search - string was Fred([1-9])XXX and the replace string was Sam\1YYY, - when applied to Fred2XXX this would generate Sam2YYY. - < This matches the start of a word. - > This matches the end of a word. - \x This allows you to use a character x that would otherwise - have a special meaning. For example, [ would be interpreted - as [ and not as the start of a character set. Use \ for a - literal backslash. - [...] This indicates a set of characters, for example, [abc] - means any of the characters a, b or c. You can also use - ranges, for example [a-z] for any lower case character. - [^...] The complement of the characters in the set. For - example, [^A-Za-z] means any character except an alphabetic - character. - ^ This matches the start of a line (unless used inside a set, - see above). - $ This matches the end of a line. - * This matches 0 or more times. For example, Sa*m matches Sm, - Sam, Saam, Saaam and so on. - + This matches 1 or more times. For example, Sa+m matches Sam, - Saam, Saaam and so on. +Figure 3.1. Find dialog
- Note Partial POSIX compatibility +Find dialog
- Note that the POSIX '?' regular expression character for - optional matching is not supported by the Find and Replace - dialogs. - _________________________________________________________ +Find usage
-3.6. Preferences +Find usage searches all open files. If there is a selection, then it is used as +the search text; otherwise the current word is used. The current word is either +taken from the word nearest the edit cursor, or the word underneath the popup +menu click position when the popup menu is used. The search results are shown +in the Messages window.
- should be written +Find in files
- Figure 3-2. General tab in preferences dialog +Find in files is a more powerful version of Find usage that searches all files +in a certain directory using the Grep tool. The Grep tool must be correctly set +in Preferences to the path of the system's Grep utility.
- [pref_dialog_gen.jpg] +Figure 3.2. Find in files dialog
- Figure 3-3. Interface tab in preferences dialog +Find in files dialog
- [pref_dialog_interface.jpg]
- Figure 3-4. Toolbar tab in preferences dialog +Replace
- [pref_dialog_toolbar.jpg] +The Replace dialog has the same options for finding text as the Find dialog. +There is also a "Replace in all files" option, which is used with the Replace +All button to perform the replacement for all open files.
- Figure 3-5. Editor tab in preferences dialog +Figure 3.3. Replace dialog
- [pref_dialog_edit.jpg] +Replace dialog
- Figure 3-6. Tools tab in preferences dialog
- [pref_dialog_tools.jpg] +The "Use regular expressions" option applies both to the search string and to +the replacement text; for the latter back references can be used - see the +entry for '\n' in Table 3.2, “Regular expressions”.
- Figure 3-7. Template tab in preferences dialog +Go to tag definition
- [pref_dialog_templ.jpg] +If the current word is the name of a function and the file containing the +function definition (a.k.a. function body) is open, Go to tag definition will +switch to that file and go to the corresponding line number. The current word +is either taken from the word nearest the edit cursor, or the word underneath +the popup menu click position when the popup menu is used.
- Figure 3-8. Keybinding tab in preferences dialog +Go to tag declaration
- [pref_dialog_keys.jpg] +Like Go to tag definition, but for a forward function declaration (a.k.a. +function prototype) instead of a function definition.
- Note +Go to line
- For more information see Section 3.9. +Go to a particular line number in the current file.
- Figure 3-9. VTE tab in preferences dialog +Regular expressions
- [pref_dialog_vte.jpg] - _________________________________________________________ +You can use regular expressions in the Find and Replace dialogs by selecting +the "Use regular expressions" check box. The syntax is POSIX-like, as described +below in Table 3.2, “Regular expressions”.
-3.6.1. Compile time options +Note
- There are some options which can only be changed at compile - time. To change these options, edit the file src/geany.h. Look - for a block of lines starting with "#define GEANY_*". Any - definitions which are not listed here should not be changed. +Searching backwards with regular expressions is not supported.
- Table 3-3. Compile time options - Option Description Default - GEANY_MAX_OPEN_FILES The limit to how many files can be open - at the same time. 25 - GEANY_SESSION_FILES How many files should be reopened from the - last run. Obviously, the value should be smaller than - GEANY_MAX_OPEN_FILES. 15 - GEANY_WORDCHARS These characters define word boundaries. (look - at sourcecode) - GEANY_MAX_AUTOCOMPLETE_WORDS How many auto completion - suggestions should Geany provide. 30 - GEANY_STRING_UNTITLED A string used as the default name for - new files. Be aware that the string can be translated, so - change it only if you know what you are doing. untitled - GEANY_CHECK_FILE_DELAY Time in seconds between checking a file - for external changes. 30 - GEANY_WINDOW_MINIMAL_WIDTH The minimal width of the main - window. 620 - GEANY_WINDOW_MINIMAL_HEIGHT The minimal height of the main - window. 440 - GEANY_WINDOW_DEFAULT_WIDTH The default width of the main - window at the first start. 900 - GEANY_WINDOW_DEFAULT_HEIGHT The default height of the main - window at the first start. 600 - Default values - GEANY_DEFAULT_TOOLS_MAKE The make tool. This can also include - a path. "make" - GEANY_DEFAULT_TOOLS_TERMINAL A terminal emulator. It has to - accept the command line option "-e". This can also include a - path. "xterm" - GEANY_DEFAULT_TOOLS_BROWSER A web browser. This can also - include a path. "mozilla" - GEANY_DEFAULT_TOOLS_PRINTCMD A printing tool. It should be - able to accept and process plain text files. This can also - include a path. "lpr" - GEANY_DEFAULT_TOOLS_GREP A grep tool. It should be compatible - with GNU grep. This can also include a path. "grep" - GEANY_DEFAULT_MRU_LENGHTH The length of the "Recent files" - list. "10" - GEANY_DEFAULT_FONT_SYMBOL_LIST The font used in sidebar to - show symbols and open files. "Cursor 8" - GEANY_DEFAULT_FONT_MSG_WINDOW The font used in the messages - window. "Cursor 8" - GEANY_DEFAULT_FONT_EDITOR The font used in the editor window. - "Courier New 9" - _________________________________________________________ +Table 3.2. Regular expressions
-3.7. Build system +┌─────────────────────────────────────────────────────────────────────────────┐ +│ In a regular expression, the following characters are interpreted: │ +├────────┬────────────────────────────────────────────────────────────────────┤ +│ . │ Matches any character. │ +├────────┼────────────────────────────────────────────────────────────────────┤ +│ ( │ This marks the start of a region for tagging a match. │ +├────────┼────────────────────────────────────────────────────────────────────┤ +│ ) │ This marks the end of a tagged region. │ +├────────┼────────────────────────────────────────────────────────────────────┤ +│ │ Where n is 1 through 9 refers to the first through ninth tagged │ +│ \n │ region when replacing. For example, if the search string was Fred │ +│ │ ([1-9])XXX and the replace string was Sam\1YYY, when applied to │ +│ │ Fred2XXX this would generate Sam2YYY. │ +├────────┼────────────────────────────────────────────────────────────────────┤ +│ < │ This matches the start of a word. │ +├────────┼────────────────────────────────────────────────────────────────────┤ +│ > │ This matches the end of a word. │ +├────────┼────────────────────────────────────────────────────────────────────┤ +│ │ This allows you to use a character x that would otherwise have a │ +│ \x │ special meaning. For example, [ would be interpreted as [ and not │ +│ │ as the start of a character set. Use \ for a literal backslash. │ +├────────┼────────────────────────────────────────────────────────────────────┤ +│ │ This indicates a set of characters, for example, [abc] means any │ +│ [...] │ of the characters a, b or c. You can also use ranges, for example │ +│ │ [a-z] for any lower case character. │ +├────────┼────────────────────────────────────────────────────────────────────┤ +│ [^...] │ The complement of the characters in the set. For example, [^ │ +│ │ A-Za-z] means any character except an alphabetic character. │ +├────────┼────────────────────────────────────────────────────────────────────┤ +│ ^ │ This matches the start of a line (unless used inside a set, see │ +│ │ above). │ +├────────┼────────────────────────────────────────────────────────────────────┤ +│ $ │ This matches the end of a line. │ +├────────┼────────────────────────────────────────────────────────────────────┤ +│ * │ This matches 0 or more times. For example, Sa*m matches Sm, Sam, │ +│ │ Saam, Saaam and so on. │ +├────────┼────────────────────────────────────────────────────────────────────┤ +│ + │ This matches 1 or more times. For example, Sa+m matches Sam, Saam, │ +│ │ Saaam and so on. │ +└────────┴────────────────────────────────────────────────────────────────────┘
- Geany has an integrated build system. Firstly this means that - the current source file will be saved before it is processed. - This is for convenience so that you don't need to keep saving - small changes to the current file before building.
- Secondly the output for Compile, Build and Make actions will - be captured in the Compiler notebook tab of the messages - window (assuming you have it visible). If there are any - warnings or errors with line numbers shown in the Compiler - output tab, you can double click on them and Geany will switch - to the relevant source file (if it is open) and mark the line - number so the problem can be corrected. Geany will also set - indicators for warnings or errors with line numbers. +Partial POSIX compatibility
- Depending on the current file's filetype, the Build menu will - contain the following items: +Note that the POSIX '?' regular expression character for optional matching is +not supported by the Find and Replace dialogs.
- * Compile - * Build - * Make all - * Make custom target - * Make object - * Execute - * Set Includes and Arguments - _________________________________________________________ +Preferences
-3.7.1. Compile +should be written
- The Compile command has different uses for different kinds of - files. +Figure 3.4. General tab in preferences dialog
- For compilable languages such as C and C++, the Compile - command is setup to compile the current source file into a - binary object file. +General tab in preferences dialog
- Java source files will be compiled to class file bytecode. - Interpreted languages such as Perl, Python, Ruby will compile - to bytecode if the language supports it, or will run a syntax - check, or failing that will run the file in its language - interpreter. - _________________________________________________________
-3.7.2. Build +Figure 3.5. Interface tab in preferences dialog
- For compilable languages such as C and C++, the Build command - will link the current source file's equivalent object file - into an executable. If the object file does not exist, the - source will be compiled and linked in one step, producing just - the executable binary. +Interface tab in preferences dialog
- Interpreted languages do not use the Build command. - _________________________________________________________
-3.7.3. Make all +Figure 3.6. Toolbar tab in preferences dialog
- This effectively runs "make all" in the same directory as the - current file. +Toolbar tab in preferences dialog
- Note
- For each of the Make commands, The Make tool path must be - correctly set in the Tools tab of the Preferences dialog. - _________________________________________________________ +Figure 3.7. Files tab in preferences dialog
-3.7.4. Make custom target +Files tab in preferences dialog
- This is similar to running 'Make all' but you will be prompted - for the make target name to be passed to the Make tool. For - example, typing 'clean' in the dialog prompt will run "make - clean". - _________________________________________________________
-3.7.5. Make object +Figure 3.8. Editor tab in preferences dialog
- Make object will run "make current_file.o" in the same - directory as the current file, using its prefix for - 'current_file'. It is useful for compiling just the current - file without building the whole project. - _________________________________________________________ +Editor tab in preferences dialog
-3.7.6. Execute
- Execute will run the corresponding executable file, shell - script or interpreted script in a terminal window. Note that - the Terminal tool path must be correctly set in the Tools tab - of the Preferences dialog - you can use any terminal program - that runs a Bourne compatible shell. +Figure 3.9. Tools tab in preferences dialog
- After your program or script has finished executing, you will - be prompted to press the return key. This allows you to review - any text output from the program before the terminal window is - closed. - _________________________________________________________ +Tools tab in preferences dialog
-3.7.7. Set Includes and Arguments
- By default the Compile and Build commands invoke the compiler - and linker with only the basic arguments needed by all - programs. Using Set Includes and Arguments you can add any - include paths and compile flags for the compiler, any library - names and paths for the linker, and any arguments you want to - use when running Execute. +Figure 3.10. Template tab in preferences dialog
- Note +Template tab in preferences dialog
- If you are using the Build command to compile and link in one - step, you will need to set both the compiler arguments and the - linker arguments in the linker command setting.
- These settings are not saved when Geany is shut down. See - below for how to set permanent arguments. +Figure 3.11. Keybinding tab in preferences dialog
- If you need complex settings for your build system, or several - different settings, then writing a Makefile and using the Make - commands is recommended. - _________________________________________________________ +Keybinding tab in preferences dialog
-3.7.8. Indicators
- Indicators are red squiggly underlines which are used to - highlight errors which occured while compiling the current - file. So you can easily see where your code failed to compile. - To remove the indicators, just click on "Remove all - indicators" in the document file menu. +Note
- If you do not like this feature, you can disable it in the - preferences dialog. - _________________________________________________________ +For more information see the section called “Keybindings”.
-3.7.9. File type configuration settings +Figure 3.12. VTE tab in preferences dialog
- You can set the commands to run for compiling, building or - executing by opening the relevant filetypes.* configuration - file, and checking the [build_settings] section. See Section - 4.1 for more information. - _________________________________________________________ +VTE tab in preferences dialog
-3.8. Printing support
- Geany has basic printing support. This means you can print a - file by passing the filename of the current file to a command - which actually prints the file. However, the printed document - contains no syntax highlighting. You can adjust the command to - which the filename is passed in the preferences dialog. The - default command is: +Compile time options + +There are some options which can only be changed at compile time. To change +these options, edit the file src/geany.h. Look for a block of lines starting +with “#define GEANY_*”. Any definitions which are not listed here should not be +changed. + +Table 3.3. Compile time options + +┌────────────────────────────────┬──────────────────────────────┬─────────────┐ +│ Option │ Description │ Default │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ │ These characters define word │ │ +│ GEANY_WORDCHARS │ boundaries when making │ (look at │ +│ │ selections and searching │ sourcecode) │ +│ │ using word matching options. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ │ How many auto completion │ │ +│ GEANY_MAX_AUTOCOMPLETE_WORDS │ suggestions should Geany │ 30 │ +│ │ provide. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ │ How many suggestions should │ │ +│ GEANY_MAX_AUTOCOMPLETE_HEIGHT │ be visible in the auto │ 10 │ +│ │ completion list. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ │ A string used as the default │ │ +│ │ name for new files. Be aware │ │ +│ GEANY_STRING_UNTITLED │ that the string can be │ untitled │ +│ │ translated, so change it │ │ +│ │ only if you know what you │ │ +│ │ are doing. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ │ Time in seconds between │ │ +│ GEANY_CHECK_FILE_DELAY │ checking a file for external │ 30 │ +│ │ changes. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ GEANY_WINDOW_MINIMAL_WIDTH │ The minimal width of the │ 620 │ +│ │ main window. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ GEANY_WINDOW_MINIMAL_HEIGHT │ The minimal height of the │ 440 │ +│ │ main window. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ │ The default width of the │ │ +│ GEANY_WINDOW_DEFAULT_WIDTH │ main window at the first │ 900 │ +│ │ start. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ │ The default height of the │ │ +│ GEANY_WINDOW_DEFAULT_HEIGHT │ main window at the first │ 600 │ +│ │ start. │ │ +├────────────────────────────────┴──────────────────────────────┴─────────────┤ +│ Default values │ +├────────────────────────────────┬──────────────────────────────┬─────────────┤ +│ GEANY_DEFAULT_TOOLS_MAKE │ The make tool. This can also │ "make" │ +│ │ include a path. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ │ A terminal emulator. It has │ │ +│ GEANY_DEFAULT_TOOLS_TERMINAL │ to accept the command line │ "xterm" │ +│ │ option "-e". This can also │ │ +│ │ include a path. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ GEANY_DEFAULT_TOOLS_BROWSER │ A web browser. This can also │ "mozilla" │ +│ │ include a path. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ │ A printing tool. It should │ │ +│ │ be able to accept and │ │ +│ GEANY_DEFAULT_TOOLS_PRINTCMD │ process plain text files. │ "lpr" │ +│ │ This can also include a │ │ +│ │ path. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ │ A grep tool. It should be │ │ +│ GEANY_DEFAULT_TOOLS_GREP │ compatible with GNU grep. │ "grep" │ +│ │ This can also include a │ │ +│ │ path. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ GEANY_DEFAULT_MRU_LENGHTH │ The length of the "Recent │ "10" │ +│ │ files" list. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ GEANY_DEFAULT_FONT_SYMBOL_LIST │ The font used in sidebar to │ "Sans 9" │ +│ │ show symbols and open files. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ GEANY_DEFAULT_FONT_MSG_WINDOW │ The font used in the │ "Sans 9" │ +│ │ messages window. │ │ +├────────────────────────────────┼──────────────────────────────┼─────────────┤ +│ GEANY_DEFAULT_FONT_EDITOR │ The font used in the editor │ "Monospace │ +│ │ window. │ 10" │ +├────────────────────────────────┴──────────────────────────────┴─────────────┤ +│ Windows specific │ +├────────────────────────────────┬──────────────────────────────┬─────────────┤ +│ │ Set this to 1 if you want to │ │ +│ │ use the default Windows file │ │ +│ │ open dialog instead GTK's │ │ +│ │ file open dialog. The │ │ +│ │ default Windows file open │ │ +│ GEANY_USE_WIN32_DIALOG │ dialog is missing some nice │ 0 │ +│ │ features like choosing a │ │ +│ │ filetype or an encoding. Do │ │ +│ │ not touch this setting when │ │ +│ │ building on a non-Win32 │ │ +│ │ system. │ │ +└────────────────────────────────┴──────────────────────────────┴─────────────┘ + + +Build system + +Geany has an integrated build system. Firstly this means that the current +source file will be saved before it is processed. This is for convenience so +that you don't need to keep saving small changes to the current file before +building. + +Secondly the output for Compile, Build and Make actions will be captured in the +Compiler notebook tab of the messages window (assuming you have it visible). If +there are any warnings or errors with line numbers shown in the Compiler output +tab, you can double click on them and Geany will switch to the relevant source +file (if it is open) and mark the line number so the problem can be corrected. +Geany will also set indicators for warnings or errors with line numbers. + +Depending on the current file's filetype, the Build menu will contain the +following items: + + ● Compile + + ● Build + + ● Make all + + ● Make custom target + + ● Make object + + ● Execute + + ● Set Includes and Arguments + +Compile + +The Compile command has different uses for different kinds of files. + +For compilable languages such as C and C++, the Compile command is setup to +compile the current source file into a binary object file. + +Java source files will be compiled to class file bytecode. Interpreted +languages such as Perl, Python, Ruby will compile to bytecode if the language +supports it, or will run a syntax check, or failing that will run the file in +its language interpreter. + +Build + +For compilable languages such as C and C++, the Build command will link the +current source file's equivalent object file into an executable. If the object +file does not exist, the source will be compiled and linked in one step, +producing just the executable binary. + +Interpreted languages do not use the Build command. + +Make all + +This effectively runs "make all" in the same directory as the current file. + +Note + +For each of the Make commands, The Make tool path must be correctly set in the +Tools tab of the Preferences dialog. + +Make custom target + +This is similar to running 'Make all' but you will be prompted for the make +target name to be passed to the Make tool. For example, typing 'clean' in the +dialog prompt will run "make clean". + +Make object + +Make object will run "make current_file.o" in the same directory as the current +file, using its prefix for 'current_file'. It is useful for compiling just the +current file without building the whole project. + +Execute + +Execute will run the corresponding executable file, shell script or interpreted +script in a terminal window. Note that the Terminal tool path must be correctly +set in the Tools tab of the Preferences dialog - you can use any terminal +program that runs a Bourne compatible shell and accept the "-e" command line +argument to start a command. + +After your program or script has finished executing, you will be prompted to +press the return key. This allows you to review any text output from the +program before the terminal window is closed. + +Stopping running processes + +If you started a build action (Compile, Build or Run) the Run button in the +toolbar becomes a stop button and you can stop the curent action. This works by +sending a signal to the process (and its child process(es)) to stop the +process. The used signal is SIGQUIT. + +Depending on the process you started it might occur that the process cannot be +stopped. This can happen when the process creates more than one child process. +Therefore stopping any make actions is not possible because make creates child +processes and these child processes creates again child process. There might be +some other programs which cannot be stopped correctly, e.g. "Terminal" (the +terminal program of Xfce). Xterm is known to work properly. + +Set Includes and Arguments + +By default the Compile and Build commands invoke the compiler and linker with +only the basic arguments needed by all programs. Using Set Includes and +Arguments you can add any include paths and compile flags for the compiler, any +library names and paths for the linker, and any arguments you want to use when +running Execute. + +Note + +If you are using the Build command to compile and link in one step, you will +need to set both the compiler arguments and the linker arguments in the linker +command setting. + +These settings are not saved when Geany is shut down. See below for how to set +permanent arguments. + +If you need complex settings for your build system, or several different +settings, then writing a Makefile and using the Make commands is recommended. + +Indicators + +Indicators are red squiggly underlines which are used to highlight errors which +occured while compiling the current file. So you can easily see where your code +failed to compile. To remove the indicators, just click on "Remove all +indicators" in the document file menu. + +If you do not like this feature, you can disable it in the preferences dialog. + +File type configuration settings + +You can set the commands to run for compiling, building or executing by opening +the relevant filetypes.* configuration file, and checking the [build_settings] +section. See the section called “Filetype definition files” for more +information. + +Printing support + +Geany has basic printing support. This means you can print a file by passing +the filename of the current file to a command which actually prints the file. +However, the printed document contains no syntax highlighting. You can adjust +the command to which the filename is passed in the preferences dialog. The +default command is: + % lpr %f
- %f will be substituted by the filename of the current file. - Geany will not show errors from the command itself, so you - should make sure that it works before(e.g. by trying to - execute it from the command line). +%f will be substituted by the filename of the current file. Geany will not show +errors from the command itself, so you should make sure that it works before +(e.g. by trying to execute it from the command line).
- A nicer example, which I prefer is: +A nicer example, which I prefer is: + % a2ps -1 --medium=A4 -o - %f | xfprint4
- But this depends on a2ps and xfprint4. As a replacement for - xfprint4, gtklp or similar programs can be used. +But this depends on a2ps and xfprint4. As a replacement for xfprint4, gtklp or +similar programs can be used.
- Note +Note
- The printing support of Geany will be improved in the future. - With GTK 2.10, better printing (including syntax highlighting) - will be possible. - _________________________________________________________ +The printing support of Geany will be improved in the future. With GTK 2.10, +better printing (including syntax highlighting) will be possible.
-3.9. Keybindings +Keybindings
- Geany supports the default keyboard shortcuts for the - Scintilla editing widget. For a list of these commands, see - Appendix A. The Scintilla keyboard shortcuts will be - overridden by any custom keybindings with the same keyboard - shortcut. +Geany supports the default keyboard shortcuts for the Scintilla editing widget. +For a list of these commands, see Appendix A, Scintilla keyboard commands. The +Scintilla keyboard shortcuts will be overridden by any custom keybindings with +the same keyboard shortcut.
- For all actions listed below you can define your own - keybindings. Open the Preferences dialog, select the desired - action and click on change. In the opening dialog you can - press any key combination you want and it will be saved when - you press OK. You can define only one key combination for one - action. +For all actions listed below you can define your own keybindings. Open the +Preferences dialog, select the desired action and click on change. In the +opening dialog you can press any key combination you want and it will be saved +when you press OK. You can define only one key combination for one action.
- Some of the default key combinations cannot be changed, e.g. - menu_new or menu_open. These are set by GTK and should be - kept, but you can still add other key combinations for these - actions. For example to execute menu_open by default Ctrl-O is - set, but you can also define Alt-O, so that the file open - dialog is shown by pressing either Ctrl-O or Alt-O. +Some of the default key combinations cannot be changed, e.g. menu_new or +menu_open. These are set by GTK and should be kept, but you can still add other +key combinations for these actions. For example to execute menu_open by default +Ctrl-O is set, but you can also define Alt-O, so that the file open dialog is +shown by pressing either Ctrl-O or Alt-O.
- The following table lists all customizable keyboard shortcuts. +The following table lists all customizable keyboard shortcuts.
- Table 3-4. Keybindings action table - Action Description - Menu items - New Creates a new file. - Open Opens a file. - Save Saves the current file. - Save all Saves all open files. - Close all Closes all open files. - Close Closes the current file. - Reload file Reloads the current file. All unsaved changes will - be lost. - Print Prints the current file. - Undo Undoes the last action. - Redo Redoes the last action. - Select all Makes a selection of all text in the current - document. - Preferences Opens preferences dialog. - Find Next Finds next result. - Find Previous Finds previous result. - Replace Opens the Replace dialog. - Find in files Opens the Find in files dialog. - Go to line Opens the Go to line dialog. - Show Colour Chooser Opens the Colour Chooser dialog. - Fullscreen Switches to fullscreen mode. - Toggle Messages Window Toggles the message window (status and - compiler messages) on and off. - Toggle Sidebar Shows or hides the sidebar. - Zoom In Zooms in the text - Zoom Out Zooms out the text - Replace tabs by space Replaces all tabs with the right amount - of spaces. - Fold all Folds all contractible code blocks. - Unfold all Unfolds all contracted code blocks. - Build options - Compile Compiles the current file. - Build Builds (compiles if necessary and links) the current - file. - Make all Builds the current file with the Make tool. - Make custom target Builds the current file with the Make tool - and a given target. - Make object Compiles the current file with the Make tool. - Run Executes the current file in a terminal emulation. - Run (alternative command) Executes the current file in a - terminal emulation. - Build options Opens the build options dialog. - Miscellaneous - Reload symbol list Reloads the tag/symbol list. - Switch to Editor Switches to editor widget. - Switch to Scribble Switches to scribble widget. - Switch to VTE Switches to VTE widget. - Switch to left document Switches to the previous open - document. - Switch to right document Switches to the next open document. - Editing operations - Duplicate line or selection Duplicates the current line or - selection. - Comment line Comments current line or selection. - Complete word Shows auto completion list. - Show calltip Shows call tips for the current function or - method. - Show macro list Shows a list of available macros and variables - in the workspace. - Suppress auto completion If you type something like if or for - and press this key, it will not be auto completed. - Find Usage Finds all occurrences of the current word (near the - keyboard cursor) and displays them in the messages window. - Go to tag definition Jump to the definition of the current - word (near the keyboard cursor). If the definition cannot be - found (e.g. the relevant file is not open) Geany will beep and - do nothing. Used for function definitions. - Go to tag declaration Jump to the declaration of the current - word (near the keyboard cursor). If the declaration cannot be - found (e.g. the relevant file is not open) Geany will beep and - do nothing. Used for function prototypes. - _________________________________________________________ +Table 3.4. Keybindings action table
-Chapter 4. Configuration files +┌──────────────┬──────────────────────────────────────────────────────────────┐ +│ Action │ Description │ +├──────────────┴──────────────────────────────────────────────────────────────┤ +│ Menu items │ +├──────────────┬──────────────────────────────────────────────────────────────┤ +│ New │ Creates a new file. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Open │ Opens a file. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Save │ Saves the current file. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Save all │ Saves all open files. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Close all │ Closes all open files. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Close │ Closes the current file. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Reload file │ Reloads the current file. All unsaved changes will be lost. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Print │ Prints the current file. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Undo │ Undoes the last action. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Redo │ Redoes the last action. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Select all │ Makes a selection of all text in the current document. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Preferences │ Opens preferences dialog. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Find Next │ Finds next result. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Find │ Finds previous result. │ +│ Previous │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Replace │ Opens the Replace dialog. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Find in │ Opens the Find in files dialog. │ +│ files │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Go to line │ Opens the Go to line dialog. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Show Colour │ Opens the Colour Chooser dialog. │ +│ Chooser │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Fullscreen │ Switches to fullscreen mode. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Toggle │ Toggles the message window (status and compiler messages) on │ +│ Messages │ and off. │ +│ Window │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Toggle │ Shows or hides the sidebar. │ +│ Sidebar │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Zoom In │ Zooms in the text │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Zoom Out │ Zooms out the text │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Replace tabs │ Replaces all tabs with the right amount of spaces. │ +│ by space │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Fold all │ Folds all contractible code blocks. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Unfold all │ Unfolds all contracted code blocks. │ +├──────────────┴──────────────────────────────────────────────────────────────┤ +│ Build options │ +├──────────────┬──────────────────────────────────────────────────────────────┤ +│ Compile │ Compiles the current file. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Build │ Builds (compiles if necessary and links) the current file. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Make all │ Builds the current file with the Make tool. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Make custom │ Builds the current file with the Make tool and a given │ +│ target │ target. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Make object │ Compiles the current file with the Make tool. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Run │ Executes the current file in a terminal emulation. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Run │ │ +│ (alternative │ Executes the current file in a terminal emulation. │ +│ command) │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Build │ Opens the build options dialog. │ +│ options │ │ +├──────────────┴──────────────────────────────────────────────────────────────┤ +│ Miscellaneous │ +├──────────────┬──────────────────────────────────────────────────────────────┤ +│ Reload │ Reloads the tag/symbol list. │ +│ symbol list │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Switch to │ Switches to editor widget. │ +│ Editor │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Switch to │ Switches to scribble widget. │ +│ Scribble │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Switch to │ Switches to VTE widget. │ +│ VTE │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Switch to │ │ +│ left │ Switches to the previous open document. │ +│ document │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Switch to │ │ +│ right │ Switches to the next open document. │ +│ document │ │ +├──────────────┴──────────────────────────────────────────────────────────────┤ +│ Editing operations │ +├──────────────┬──────────────────────────────────────────────────────────────┤ +│ Duplicate │ │ +│ line or │ Duplicates the current line or selection. │ +│ selection │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Comment line │ Comments current line or selection. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Uncomment │ Uncomments current line or selection. │ +│ line │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Toggle line │ Comments a line if it is not commented or removes a comment │ +│ commentation │ if the line is commented. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Increase │ Indents the current line or selection by one tabulator. │ +│ indent │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Decrease │ Removes one tabulator from the indentation of the current │ +│ indent │ line or selection. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Goto │ If the cursor is ahead or behind a brace, then it is moved │ +│ matching │ to the brace which belongs to the current one. If this │ +│ brace │ keyboard shortcut is pressed again, the cursor is moved back │ +│ │ to the first brace. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Complete │ Shows auto completion list. │ +│ word │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Show calltip │ Shows call tips for the current function or method. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Show macro │ Shows a list of available macros and variables in the │ +│ list │ workspace. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Suppress │ If you type something like if or for and press this key, it │ +│ auto │ will not be auto completed. │ +│ completion │ │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ Find Usage │ Finds all occurrences of the current word (near the keyboard │ +│ │ cursor) and displays them in the messages window. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ │ Jump to the definition of the current word (near the │ +│ Go to tag │ keyboard cursor). If the definition cannot be found (e.g. │ +│ definition │ the relevant file is not open) Geany will beep and do │ +│ │ nothing. Used for function definitions. │ +├──────────────┼──────────────────────────────────────────────────────────────┤ +│ │ Jump to the declaration of the current word (near the │ +│ Go to tag │ keyboard cursor). If the declaration cannot be found (e.g. │ +│ declaration │ the relevant file is not open) Geany will beep and do │ +│ │ nothing. Used for function prototypes. │ +└──────────────┴──────────────────────────────────────────────────────────────┘
-4.1. Filetype definition files
- All colour definitions and other filetype specific settings - are stored in the filetype definition files. Those settings - are colours for syntax highlighting, general settings like - comment characters or word delimiter characters as well as - compiler and linker settings. +Chapter 4. Configuration files
- The system-wide configuration files can be found in - $prefix/share/geany and are called filetypes.$ext, where - $prefix is the path where Geany is installed (commonly - /usr/local) and $ext is the name of the filetype. For every - filetype there is a corresponding definition file. There is - one exception: filetypes.common - this file is for general - settings, which are not specific to a certain filetype. It is - not recommended to edit the system-wide files, because they - will be overridden when Geany is updated. +Table of Contents
- To change the settings, copy a file from $prefix/share/geany - to the subdirectory filedefs in your configuration directory - (usually ~/.geany/). +Filetype definition files
- For example: + Format + Special file filetypes.common + +Filetype extensions +Templates + +Filetype definition files + +All colour definitions and other filetype specific settings are stored in the +filetype definition files. Those settings are colours for syntax highlighting, +general settings like comment characters or word delimiter characters as well +as compiler and linker settings. + +The system-wide configuration files can be found in $prefix/share/geany and are +called filetypes.$ext, where $prefix is the path where Geany is installed +(commonly /usr/local) and $ext is the name of the filetype. For every filetype +there is a corresponding definition file. There is one exception: +filetypes.common - this file is for general settings, which are not specific to +a certain filetype. It is not recommended to edit the system-wide files, +because they will be overridden when Geany is updated. + +To change the settings, copy a file from $prefix/share/geany to the +subdirectory filedefs in your configuration directory (usually ~/.geany/). + +For example: + % cp /usr/local/share/geany/filetypes.c /home/username/.geany/filedefs/
- Then you can edit the file and the changes are also available - after an update of Geany because they reside in your - configuration directory. Alternatively, you can create a file - ~/.geany/filedefs/filetypes.X and add only these settings you - want to change. All missing settings will be read from the - corresponding global definition file in $prefix/share/geany. - _________________________________________________________ +Then you can edit the file and the changes are also available after an update +of Geany because they reside in your configuration directory. Alternatively, +you can create a file ~/.geany/filedefs/filetypes.X and add only these settings +you want to change. All missing settings will be read from the corresponding +global definition file in $prefix/share/geany.
-4.1.1. Format +Format
-4.1.1.1. [styling] Section +[styling] Section
- In this section the colours for syntax highlighting are - defined. The format is always: - key=forground_colour;background_colour;bold;italic +In this section the colours for syntax highlighting are defined. The format is +always: key=forground_colour;background_colour;bold;italic
- Colours have to be specified as RGB hex values prefixed by 0x. - For example red is 0xff0000, blue is 0x0000ff. The values are - case-insensitive, but it is a good idea to use small letters. - Bold and italic are flags and should only be "true" or - "false". If their value is something other than "true" or - "false", "false" is assumed. - _________________________________________________________ +Colours have to be specified as RGB hex values prefixed by 0x. For example red +is 0xff0000, blue is 0x0000ff. The values are case-insensitive, but it is a +good idea to use small letters. Bold and italic are flags and should only be +"true" or "false". If their value is something other than "true" or "false", +"false" is assumed.
-4.1.1.2. [keywords] Section +[keywords] Section
- This section contains keys for different keyword lists - specific to the filetype. Some filetypes do not support - keywords, so adding a new key will not work. You can only add - or remove keywords to/from an existing list. +This section contains keys for different keyword lists specific to the +filetype. Some filetypes do not support keywords, so adding a new key will not +work. You can only add or remove keywords to/from an existing list.
- Important +Important
- The keywords list must be in one line without line ending - characters. - _________________________________________________________ +The keywords list must be in one line without line ending characters.
-4.1.1.3. [settings] Section +[settings] Section
- Table 4-1. General settings - Key Description Example - wordchars Word delimiting characters. These characters define - word boundaries. (look at sourcecode) - comment_open A character or string which is used to comment - code. If you want to use multiline comments, also set - comment_close, otherwise leave it empty. comment_open=/* - comment_close If multiline comments are used, this is the - character or string to close the comment. comment_close=*/ - comment_use_indent Set this to false if a comment character or - string should start at column 0 of a line. If set to true it - uses any indentation of the line. +Table 4.1. General settings
- Example 4-1. Comment indentation +┌────────────────────┬───────────────────────────────────┬────────────────────┐ +│ Key │ Description │ Example │ +├────────────────────┼───────────────────────────────────┼────────────────────┤ +│ │ These characters define word │ │ +│ wordchars │ boundaries when making selections │ (look at system │ +│ │ and searching using word matching │ filetypes.* files) │ +│ │ options. │ │ +├────────────────────┼───────────────────────────────────┼────────────────────┤ +│ │ A character or string which is │ │ +│ │ used to comment code. If you want │ │ +│ comment_open │ to use multiline comments, also │ comment_open=/* │ +│ │ set comment_close, otherwise │ │ +│ │ leave it empty. │ │ +├────────────────────┼───────────────────────────────────┼────────────────────┤ +│ │ If multiline comments are used, │ │ +│ comment_close │ this is the character or string │ comment_close=*/ │ +│ │ to close the comment. │ │ +├────────────────────┼───────────────────────────────────┼────────────────────┤ +│ │ Set this to false if a comment │ │ +│ │ character or string should start │ │ +│ │ at column 0 of a line. If set to │ │ +│ │ true it uses any indentation of │ │ +│ │ the line. │ │ +│ │ │ │ +│ │ Example 4.1. Comment indentation │ │ +│ │ │ │ +│ │ comment_use_indent=true would │ │ +│ │ generate this if a line is │ │ +│ │ commented (e.g. with Ctrl-D) │ │ +│ │ │ comment_use_indent │ +│ comment_use_indent │ #command_example(); │ =true │ +│ │ │ │ +│ │ comment_use_indent=false would │ │ +│ │ generate this if a line is │ │ +│ │ commented (e.g. with Ctrl-D) │ │ +│ │ │ │ +│ │ #command_example(); │ │ +│ │ │ │ +│ │ │ │ +│ │ Note │ │ +│ │ │ │ +│ │ This setting only works for │ │ +│ │ single line comments. │ │ +└────────────────────┴───────────────────────────────────┴────────────────────┘
- comment_use_indent=true would generate this if a line is - commented (e.g. with Ctrl-D) - #command_example();
- comment_use_indent=false would generate this if a line is - commented (e.g. with Ctrl-D) -#command_example(); +[build_settings] Section
- Note +Table 4.2. Build settings
- This setting only works for single line comments. - comment_use_indent=true - _________________________________________________________ +┌──────────┬───────────────────────────────────────────────────────┬──────────┐ +│ Key │ Description │ Example │ +├──────────┼───────────────────────────────────────────────────────┼──────────┤ +│ │ This item specifies the command to compile source │ │ +│ │ code files. But it is also possible to use it with │ │ +│ │ interpreted languages like Perl or Python. With these │ │ +│ │ filetypes you can use this option as a kind of syntax │ │ +│ │ parser, which sends output to the compiler message │ │ +│ │ window. │ compiler │ +│ compiler │ │ =gcc │ +│ │ You should quote the filename to also support │ -Wall -c │ +│ │ filenames with spaces. The following wildcards for │ "%f" │ +│ │ filenames are available: │ │ +│ │ │ │ +│ │ ● %f - complete filename without path │ │ +│ │ │ │ +│ │ ● %e - filename without path and without extension │ │ +├──────────┼───────────────────────────────────────────────────────┼──────────┤ +│ │ This item specifies the command to link the file. If │ │ +│ │ the file is not already compiled, it will be compiled │ linker= │ +│ linker │ while linking. The -o option is automatically added │ gcc │ +│ │ by Geany. This item works well with GNU gcc, but may │ -Wall │ +│ │ be problematic with other compilers (esp. with the │ "%f" │ +│ │ linker). │ │ +├──────────┼───────────────────────────────────────────────────────┼──────────┤ +│ │ Use this item to execute your file. It has to have │ │ +│ │ been built already. Use the %e wildcard to have only │ run_cmd= │ +│ run_cmd │ the name of the executable (i.e. without extension) │ "./%e" │ +│ │ or use the %f wildcard if you need the complete │ │ +│ │ filename, e.g. for shell scripts. │ │ +└──────────┴───────────────────────────────────────────────────────┴──────────┘
-4.1.1.4. [build_settings] Section
- Table 4-2. Build settings - Key Description Example - compiler This item specifies the command to compile source - code files. But it is also possible to use it with interpreted - languages like Perl or Python. With these filetypes you can - use this option as a kind of syntax parser, which sends output - to the compiler message window. +Special file filetypes.common
- You should quote the filename to also support filenames with - spaces. The following wildcards for filenames are available: +There is a special filetype definition file called filetypes.common. This file +defines some general non-filetype-specific settings.
- * %f - complete filename without path - * %e - filename without path and without extension +Table 4.3. General settings
- compiler=gcc -Wall -c "%f" - linker This item specifies the command to link the file. If - the file is not already compiled, it will be compiled while - linking. The -o option is automatically added by Geany. This - item works well with GNU gcc, but may be problematic with - other compilers (esp. with the linker). linker=gcc -Wall "%f" - run_cmd Use this item to execute your file. It has to have - been built already. Use the %e wildcard to have only the name - of the executable (i.e. without extension) or use the %f - wildcard if you need the complete filename, e.g. for shell - scripts. run_cmd="./%e" - _________________________________________________________ +┌────────────────────┬───────────────────────────────────┬────────────────────┐ +│ Key │ Description │ Example │ +├────────────────────┼───────────────────────────────────┼────────────────────┤ +│ │ The style for colouring selected │ │ +│ │ text. The format is: │ │ +│ │ │ │ +│ │ ● Foreground colour │ │ +│ │ │ │ +│ │ ● Background colour │ │ +│ │ │ │ +│ │ ● Use foreground colour │ selection= │ +│ selection │ │ 0xc0c0c0;0x00007F; │
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.