diff --git a/ChangeLog b/ChangeLog
index bf5c588e..b77c543d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-10-10 Nick Treleaven
Contents
+of this program, and also in the chapter GNU General Public License. +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 @@ -419,50 +421,50 @@ Pascal, and others
You can obtain Geany from http://www.geany.org/ or perhaps also from +
You can obtain Geany from http://www.geany.org/ or perhaps also from your distributor. For a list of available packages, please see -http://www.geany.org/Download/ThirdPartyPackages.
+http://www.geany.org/Download/ThirdPartyPackages.Geany is distributed under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. A copy of this license can be found in the file COPYING included with the source -code of this program and in the chapter, GNU General Public License.
+code of this program and in the chapter, GNU General Public License.The included Scintilla library (found in the subdirectory scintilla/) has its own license, which can be found in the chapter, -License for Scintilla and SciTE.
+License for Scintilla and SciTE.This documentation is available in HTML and text formats. -The latest version can always be found at http://www.geany.org/.
-If you want to contribute to it, see Contributing to this document.
+The latest version can always be found at http://www.geany.org/. +If you want to contribute to it, see Contributing to this document.
You will need the GTK (>= 2.6.0) libraries and their dependencies (Pango, GLib and ATK). Your distro should provide packages for these, usually installed by default. For Windows, you can download an installer which bundles these libraries from the website.
There are many binary packages available. For an up-to-date but maybe -incomplete list see http://www.geany.org/Download/ThirdPartyPackages.
+incomplete list see http://www.geany.org/Download/ThirdPartyPackages.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, but very often your distro will provide development +http://www.gtk.org, but very often your distro will provide development packages to save the trouble of building these yourself.
Furthermore you need, of course, a C compiler and the Make tool; a C++ compiler is also required (for the included Scintilla library). The @@ -476,8 +478,8 @@ $ make
% make install-
The configure script supports several common options, for a detailed list, type:
@@ -486,18 +488,18 @@ $ ./configure --helpYou may also want to read the INSTALL file for advanced installation options.
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 mailing list or one the authors. Sometimes you might need to ask for specific @@ -505,10 +507,10 @@ help from your distro.
You can start Geany in the following ways:
From the Desktop Environment menu:
@@ -524,8 +526,8 @@ Return:-g | --generate-tags | Generate a global tags file (see -Generating a global tags file). | +Generating a global tags file).
-P | --no-preprocessing | @@ -653,13 +655,13 @@ given files are ignored.
Note that the POSIX '?' regular expression character for optional matching is not supported by the Find and Replace dialogs.
Geany has built-in functionality for generating tag information (aka "workspace tags") for supported filetypes when you open a file. You can also have Geany automatically load external tag files (aka "global @@ -1401,17 +1403,17 @@ manually using Tools --> Load Tags.
Geany uses its own tag file format, similar to what ctags uses (but is incompatible with ctags). You use Geany to generate global tags files, as described below.
-Tags for each document are parsed whenever a file is loaded or saved. These are shown in the Symbol list in the Sidebar. These tags are also used for autocompletion of symbols and calltips for all documents open in the current session that have the same filetype.
The Go to Tag commands can be used with all workspace tags. See -Go to tag definition.
+Go to tag definition.Global tags are used to provide autocompletion of symbols and calltips without having to open the corresponding source files. This is intended for library APIs, as the tags file only has to be updated when you upgrade @@ -1428,10 +1430,10 @@ the format:
name.lang_ext.tagslang_ext is one of the extensions set for the filetype associated -with the tags. See the section called Filetype extensions for +with the tags. See the section called Filetype extensions for more information.
-For some languages, a list of global tags is loaded when the corresponding filetype is first used. Currently these are for:
Filetypes support:
Currently this is not yet supported for Pascal, PHP and LaTeX filetypes.
@@ -1454,7 +1456,7 @@ geany -g [-P] <Tag File> <File list>You can also ignore certain tags if they would lead to wrong parsing of the code. Simply create a file called "ignore.tags" in your Geany configuration directory (usually ~/.geany/). Then list all tags @@ -1514,8 +1516,8 @@ identifiers is replaced by the second identifiers for parsing purposes. Exuberant Ctags.
You may adjust Geany's settings using the Edit --> Preferences dialog. Any changes you make there can be applied by hitting either the Apply or the OK button. These settings will persist between Geany @@ -1526,17 +1528,17 @@ on it.
persist between Geany sessions. The settings under the Document menu, however, are only for the current document and revert to defaults when restarting Geany. -There are also some rarer Hidden preferences.
+There are also some rarer Hidden preferences.
Note
In the paragraphs that follow, the text describing a dialog tab comes after the screenshot of that tab.
Affects the main toolbar underneath the menu bar.
-See Indentation for more information.
+See Indentation for more information.
Note
There are also separate configurable keybindings for indent & unindent, but this pref allows the tab key to have different @@ -1749,8 +1751,8 @@ meanings in different contexts - e.g. for snippet completion.
This is for visual elements displayed in the editor window.
-The long line marker helps to indicate overly-long lines, or as a hint to the user for when to break the line.
Perform special formatting operations when a document is saved. These can each be undone with the Undo command as usual.
Replace all tabs in the document with the equivalent number of spaces.
-Note
It is better to use spaces to indent than use this preference - see -Indentation.
+Indentation.Note
+The make commands are set in the Build->Configure Commands dialog. +This directory is used so that the builder command need not be in +the default path.
+Note
For Windows users: at the time of writing it is recommended to use the grep.exe from the UnxUtils project -(http://sourceforge.net/projects/unxutils). The grep.exe from the +(http://sourceforge.net/projects/unxutils). The grep.exe from the Mingw project for instance might not work with Geany at the moment.
This data is used as metadata for various template text to insert into a document, such as the file header. You only need to set fields that you want to use in your template files.
@@ -1976,8 +1986,8 @@ you want to use in your template files.For changes made here to take effect a restart of geany is required.
The email address of the developer.
-Note
You may wish to add anti-spam markup, e.g. name<at>site<dot>ext.
There are some handy commands in here that are not, by default, bound to a key combination, and may not be available as a menu item.
Note
-For more information see the section called Keybindings.
+For more information see the section called Keybindings.
See also: Virtual terminal emulator widget (VTE).
+See also: Virtual terminal emulator widget (VTE).
-Project Management is optional in Geany. Currently it can be used for:
A list of session files can be stored and opened with the project when the Use project-based session files preference is enabled, -in the Project group of the Preferences dialog.
+in the Project group of the Preferences dialog.As long as a project is open, the Make and Run commands will use the project's settings, instead of the defaults. These will be used whichever document is currently displayed.
@@ -2104,8 +2115,8 @@ whichever document is currently displayed. Geany is shutdown. When restarting Geany, the previously opened project file that was in use at the end of the last session will be reopened.Below are the commands used to create, modify, open and close projects.
-To create a new project, fill in the Name field. By default this will setup a new project file ~/projects/name.geany. Usually it's best to store all your project files in the same directory (they are @@ -2114,8 +2125,8 @@ independent of any source directory trees).
can safely be set to any existing path -- it will not touch the file structure contained in it.You can set an optional description for the project, but it is not used elsewhere by Geany.
The Base path field is used as the directory to run the Make and Make @@ -2123,14 +2134,14 @@ custom commands in. It is also used as working directory for the project specific Run command. The specified path can be an absolute path or relative to the project's file name.
-This setting makes the Build->Make command use the project's base +
This setting makes the Build->Make commands use the project's base path. Uncheck this if you want to use the current file's directory instead.
The Run command overrides the default run command. You can set this to the executable or main script file for the project, and append any command-line arguments.
@@ -2139,31 +2150,37 @@ any command-line arguments.See [build_settings] Section for details.
+See [build_settings] Section for details.
The Open command displays a standard file chooser, starting in ~/projects. Choose a project file named with the .geany extension.
When project session support is enabled, Geany will close the currently open files and open the session files associated with the project.
Project file settings are saved when the project is closed.
When project session support is enabled, Geany will close the project session files and open any previously closed default session files.
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 +
Geany does not have it's own integrated build system, instead it provides +a fast flexible means of invoking customisable build/execute commands +appropriate to the type of source file, or, to invoke your favourite +make/build tool. This system allows Geany to default to sane actions for +simple single file programs whilst still being configurable to support +multiple target/multiple programming language projects.
+Two actions are performed for all the build menu items.
+First 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 +
Second the output for Compile, Build and Make actions will be captured in the Compiler notebook tab of the messages window. If there are any warnings or errors with line numbers shown in red in the Compiler output tab, you can click on them and Geany will switch to the relevant @@ -2173,11 +2190,11 @@ line numbers.
Tip
If Geany's default error message parsing does not parse errors for -the tool you're using, you can set a custom regex. See Filetype -definition files and the [build_settings] Section.
+the tool you're using, you can set a custom regex. See Filetype +definition files and the [build_settings] Section.Depending on the current file's filetype, the Build menu will contain -the following items:
+Depending on the current file's filetype and project settings, the +default Build menu will contain the following items:
The Compile, Build and Execute actions depend on the filetype of the +currently open document, whereas the Make series of actions do not. +The intention is that the Compile, Build and Execute actions support +simple single-file actions whilst the Make actions support larger systems +which use builder tools. The Make commands and menu item names are set +from the first of the following places where the commands are defined:
+The Execute command can also be customised from the project file.
+The menu item names for the Make commands can be changed, for example +if you change the commands to invoke a builder other than Make then you +can change the menu labels to reflect that.
+Note
+Some support for building for different targets on different machines +can be provided by having several project files for the same software, +e.g. if supporting windows and Linux from the same source you could +have 'my_proj_win.geany' with Make Object defined as 'nmake %e.obj' +and 'my_proj_lin.geany' with Make Object defined as 'make %e.o' +and so on for the other commands.
+The Compile command has different uses for different kinds of files.
-For compilable languages such as C and C++, the Compile command is +
For compilable languages such as C and C++, the default 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.
+The following table summarises the default commands for each filetype:
+Language | +Menu Item | +Action | +Command | +
---|---|---|---|
C | +Compile | +Compile the current file | +gcc -Wall -c "%f" | +
Build | +Compile the current file to +an executable | +gcc -Wall -o "%e" "%f" | +|
Run | +Run a pre-compiled program | +"./%e" | +|
C++ | +ETC | +
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.
This effectively runs "make all" in the same directory as the +
By default this effectively runs "make all" in the same directory as the current file.
Note
@@ -2215,20 +2292,26 @@ current file. set in the Tools tab of the 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, +
The default use 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".
+Note
+Even if you have re-configured the command this menu item will still pop up +the dialog asking for extra targets/options and will add them to your +re-configured command.
Make object will run "make current_file.o" in the same directory as +
By default 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 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 - @@ -2238,8 +2321,8 @@ and accept the "-e" command line argument to start a command.
prompted to press the return key. This allows you to review any text output from the program before the terminal window is closed.When there is a running program, the Run button in the toolbar becomes a stop button and you can stop the current action. This works by sending a signal to the process (and its child process(es)) @@ -2247,8 +2330,8 @@ 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.
-Xterm is known to work properly. If you are using "Terminal" (the terminal program of Xfce), you should add the command line option --disable-server otherwise the started process cannot be @@ -2256,36 +2339,59 @@ stopped. Just add this option in the preferences dialog on the Tools tab in the terminal field.
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 +Configure Commands 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 need complex settings for your build system, or several -different settings, then writing a Makefile and using the Make -commands is recommended; this will also make it easier for users to -build your software.
-These settings are saved automatically when Geany is shut down.
The following variables can be used:
See [build_settings] Section for details.
-See [build_settings] Section for details.
+Note
+If you need complex settings for your build system, or several +different settings, using an external build system such as make is +recommended; this will also make it easier for users to +build your software.
+The commands are listed under two varying headings:
+These settings are specific to the particular filetype. +Although they traditionally support the actions described above, you +can change the commands to perform any file specific action you want, +e.g. to run Lint or other tools.
+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 commands allow you to set the 'Make' series of commands. +The variable heading indicates whether the commands you are changing +will be saved in the project file or preferences file. The current +project file is displayed in the Geany title bar in [] so you can +check that you will be saving to the correct one.
+Remember that menu item two (default the 'Make Custom Target' item) +will pop up a dialog to ask for additional targets/options when invoked +allowing you to add to the command you define here.
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, @@ -2294,8 +2400,8 @@ just click on "Remove all indicators" in the document file menu.
dialog.Since Geany 0.13 there is full printing support using GTK's printing API. The printed page(s) will look nearly the same as on your screen in Geany. Additionally, there are some options to modify the printed page(s). You @@ -2342,8 +2448,8 @@ command line).
But this depends on a2ps and xfprint4. As a replacement for xfprint4, gtklp or similar programs can be used.
Plugins are loaded at startup, if the Enable plugin support general preference is set. There is also a command-line option, -p, which prevents plugins being loaded. Plugins are scanned in @@ -2361,17 +2467,17 @@ in the dialog, it is loaded or unloaded according to its previous state. By default, no plugins are loaded at startup until you select some. You can also configure some plugin specific options when the plugin provides some.
-See also Plugin documentation for information about single plugins +
See also Plugin documentation for information about single plugins which are included in Geany.
Geany supports the default keyboard shortcuts for the Scintilla -editing widget. For a list of these commands, see Scintilla +editing widget. For a list of these commands, see Scintilla keyboard commands. The Scintilla keyboard shortcuts will be overridden by any custom keybindings with the same keyboard shortcut.
-There are a few non-configurable bindings to switch between documents, listed below. These can also be overridden by custom keybindings.
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 @@ -2543,7 +2649,7 @@ insert a space.
You can use a global configuration file for Geany which will be used if the user starts Geany for the first time and an user's configuration file was not yet created or in case an user deleted the configuration @@ -2988,8 +3094,8 @@ set some sane default values for this environment. Usual users won't need to do that.
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 @@ -3016,10 +3122,10 @@ 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.
-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 @@ -3028,8 +3134,8 @@ 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.
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 @@ -3039,14 +3145,14 @@ an existing list.
The keywords list must be in one line without line ending characters.
This is the default file extension used when saving files, not including the period character (.). The extension used should match one of the patterns associated with that filetype (see -Filetype extensions).
+Filetype extensions).Example: extension=cxx
Hint: for PHP files the following could be quite useful: -context_action_cmd=firefox "http://www.php.net/%s"
+context_action_cmd=firefox "http://www.php.net/%s"Example: context_action_cmd=devhelp -s "%s"
This is a GNU-style extended regular expression to parse a filename @@ -3116,8 +3222,7 @@ remaining match will be used as the filename.
Build commands
-The build commands are all configurable using the Set Includes and -Arguments dialog.
+The build commands are all configurable using the Configure Commands dialog.
This item specifies the command to compile source code files. But @@ -3149,8 +3254,8 @@ complete filename, e.g. for shell scripts.
There is a special filetype definition file called filetypes.common. This file defines some general non-filetype-specific settings.
@@ -3308,17 +3413,17 @@ keep this value at 256 to disable translucency otherwise Geany might crash.Characters to treat as whitespace. These characters are ignored when moving, selecting and deleting across word boundaries -(see Scintilla keyboard commands).
+(see Scintilla keyboard commands).This should include space (\s) and tab (\t).
Example: whitespace_chars=\s\t!\"#$%&'()*+,-./:;<=>?@[\\]^`{|}~
To change the default filetype extension used when saving a new file, -see Filetype definition files.
+see Filetype definition files.You can override the list of file extensions that Geany uses for each filetype using the filetype_extensions.conf file.
To override the system-wide configuration file, copy it from @@ -3341,8 +3446,8 @@ look like:
Make=Makefile*;*.mk;Buildfile;Geany supports the following templates:
Metadata can be used with all templates, but by default user set metadata is only used for the ChangeLog and File header templates.
In the configuration dialog you can find a tab "Templates" (see -Template tab in preferences dialog). You can define the +Template tab in preferences dialog). You can define the default values which will be inserted in the templates. You should restart Geany after making changes, because they are only read at startup.
File templates are templates used as the basis of a new file. To use them, choose the New (with Template) menu item from the File menu.
@@ -3386,8 +3491,8 @@ restarting Geany. You can also edit the default filetype templates. except for the optional {fileheader} template wildcard. This can be placed anywhere, but is usually on the first line of the file, followed by a blank line. -These are read from the ~/.geany/templates/files directory (created the first time Geany is started). The filetype to use is detected from the template file's extension, if any. For example, creating a file @@ -3397,8 +3502,8 @@ filetype set to 'C'.
clicked, so you don't need to restart Geany after editing a custom file template.Filetype template files are read from the ~/.geany/templates directory, and are named "filetype." followed by the filetype name, e.g. "filetype.python", "filetype.sh", etc. If you are @@ -3409,16 +3514,16 @@ the filetype configuration file extensions, commonly installed in the New command is used without a filetype. This is empty by default.
Each template can be customized to your needs. The templates are stored in the ~/.geany/templates/ directory (see the section called -Command line options for further information about the configuration +Command line options for further information about the configuration directory). Just open the desired template with an editor (ideally, Geany ;-) ) and edit the template to your needs. There are some wildcards which will be automatically replaced by Geany at startup.
-All wildcards must be enclosed by "{" and "}", e.g. {date}.
year [1] | +||||||
year [1] | The current year. Default format is: YYYY | filetypes, file header, function description, ChangeLog entry, bsd, @@ -3469,7 +3574,7 @@ gpl, snippets | description, ChangeLog entry, bsd, gpl, snippets||||
date [1] | +||||||
date [1] | The current date. Default format: YYYY-MM-DD. | filetypes, file header, function description, ChangeLog entry, bsd, @@ -3490,7 +3595,7 @@ gpl, snippets | description, ChangeLog entry, bsd, gpl, snippets||||
datetime [1] | +||||||
datetime [1] | The current date and time. Default format: DD.MM.YYYY HH:mm:ss ZZZZ. | file header, function description, @@ -3526,20 +3631,20 @@ templates. |
[1] | (1, 2, 3) The format for the year, date and datetime wildcards can be changed -in the preferences dialog, see Template tab in preferences dialog. You can + |
[1] | (1, 2, 3) The format for the year, date and datetime wildcards can be changed +in the preferences dialog, see Template tab in preferences dialog. You can use any conversion specifiers which can be used with the ANSI C strftime function. -For details please see http://man.cx/strftime. |
This plugin sets on every new file (File->New or File-> New (with template)) a randomly chosen filename and set its filetype appropriate to the used template or when no template was used, to a configurable default filetype. @@ -3548,8 +3653,8 @@ need to give it an explicit filename using the Save As dialog. This might be useful when you often create new files just for testing some code or something similar.
This plugin creates a backup copy of the current file in Geany when it is saved. You can specify the directory where the backup copy is saved and you can configure the automatically added extension in the configure dialog @@ -3558,9 +3663,9 @@ in Geany's plugin manager.
copied into the configured backup directory when the file is saved in Geany.This document (geany.txt) is written in reStructuredText +
This document (geany.txt) is written in reStructuredText (or "reST"). The source file for it is located in Geany's doc subdirectory. If you intend on making changes, you should grab the source right from SVN to make sure you've got the newest version. After @@ -3578,17 +3683,17 @@ geany-0.15.pdf.
to build the docs. The package is named python-docutils on Debian and Fedora systems.Copyright © 1998, 2006 Neil Hodgson <neilh(at)scintilla(dot)org>
This appendix is distributed under the terms of the License for Scintilla and SciTE. A copy of this license can be found in the file scintilla/License.txt included with the source code of this -program and in the appendix of this document. See License for +program and in the appendix of this document. See License for Scintilla and SciTE.
20 June 2006
-Keyboard commands for Scintilla mostly follow common Windows and GTK+ conventions. All move keys (arrows, page up/down, home and end) allows to extend or reduce the stream selection when holding the @@ -3675,10 +3780,10 @@ menus. Some less common commands with no menu equivalent are: