diff --git a/ChangeLog b/ChangeLog index bf5c588e..b77c543d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-10-10 Nick Treleaven + + * doc/geany.txt, doc/geany.html, src/about.c, THANKS: + Update manual for Lex Trotman's proposed build system changes (under + discussion). + + 2008-10-08 Nick Treleaven * plugins/splitwindow.c: diff --git a/THANKS b/THANKS index 169cbff6..559482a2 100644 --- a/THANKS +++ b/THANKS @@ -49,6 +49,7 @@ Colomban Wendling - GLSL filetype p Timothy Boronczyk - scroll_stop_at_last_line GUI pref patch Jason Oster - various patches Andrew Rowland - R filetype patch +Lex Trotman - build system improvements Translators: ------------ diff --git a/doc/geany.html b/doc/geany.html index 52f5c76e..23f0d545 100644 --- a/doc/geany.html +++ b/doc/geany.html @@ -3,7 +3,7 @@ - + Geany @@ -149,254 +149,256 @@ Stylesheet for Geany's documentation based on a version of John Gabriele. 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 also in the chapter GNU General Public License.

-
-

Contents

+of this program, and also in the chapter GNU General Public License.

+
+

Contents

-
-

Introduction

-
-

About Geany

+
+

Introduction

+
+

About Geany

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

  • Plugin interface
  • -
    -

    Where to get it

    -

    You can obtain Geany from http://www.geany.org/ or perhaps also from +

    +

    Where to get it

    +

    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.

    -
    -

    License

    +
    +

    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 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.

    -
    -

    About this document

    +
    +

    About this document

    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.

    -
    -

    Installation

    -
    -

    Requirements

    +
    +

    Installation

    +
    +

    Requirements

    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.

    -
    -

    Binary packages

    +
    +

    Binary packages

    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.

    -
    -

    Source compilation

    +
    +

    Source compilation

    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
     
    -
    -

    Custom installation

    +
    +

    Custom installation

    The configure script supports several common options, for a detailed list, type:

    @@ -486,18 +488,18 @@ $ ./configure --help
     

    You may also want to read the INSTALL file for advanced installation options.

    -
    -

    Dynamic linking loader support

    +
    +

    Dynamic linking loader support

    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.

    -
    -

    Build problems

    +
    +

    Build problems

    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.

    -
    -

    Usage

    -
    -

    Getting started

    +
    +

    Usage

    +
    +

    Getting started

    You can start Geany in the following ways:

    • From the Desktop Environment menu:

      @@ -524,8 +526,8 @@ Return:

    -
    -

    Command line options

    +
    +

    Command line options

    @@ -569,7 +571,7 @@ for snippets configuration). +Generating a global tags file). @@ -653,13 +655,13 @@ given files are ignored.

    Geany supports all generic GTK options, a list is available on the help screen.

    -
    -

    General

    -
    -

    Startup

    +
    +

    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 General tab in preferences dialog). If you specify some +(see 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 @@ -670,17 +672,17 @@ 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

    +
    +

    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.

    +line option -- see the section called Command line options.

    -
    -

    Virtual terminal emulator widget (VTE)

    +
    +

    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.

    @@ -688,7 +690,7 @@ notebook at the bottom.

    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.

    +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 @@ -719,12 +721,12 @@ please set a link to the correct file (as root):

    Obviously, you have to adjust the paths and set X to the number of your libvte.so.

    You can also specify the filename of the VTE library to use on the command -line (see the section called Command line options) or at compile time +line (see the section called Command line options) or at compile time by specifying the command line option --with-vte-module-path to ./configure.

    -
    -

    Defining own widget styles using .gtkrc-2.0

    +
    +

    Defining own widget styles using .gtkrc-2.0

    You can define your widget style for many of Geany's GUI parts. To do this, just edit your .gtkrc-2.0 (usually found in your home directory on UNIX-like systems and in the etc subdirectory of your @@ -762,10 +764,10 @@ widget "GeanyPrefsDialog" style "geanyStyle"

    -
    -

    Documents

    -
    -

    Switching between documents

    +
    +

    Documents

    +
    +

    Switching between documents

    The documents list and the editor tabs are two different ways to switch between documents using the mouse. When you hit the key combination to move between tabs, the order is determined by the tab @@ -773,10 +775,10 @@ order, not alphabetical as shown in the documents list (regardless of whether or not editor tabs are visible).

    -
    -

    Character sets and Unicode Byte-Order-Mark (BOM)

    -
    -

    Using character sets

    +
    +

    Character sets and Unicode Byte-Order-Mark (BOM)

    +
    +

    Using character sets

    Geany provides support for detecting and converting character sets. So you can open and save files in different character sets and even can convert a file from a character set to another one. To do this, @@ -821,8 +823,8 @@ encoding when opening the file (for details see below).

    -
    -

    In-file encoding specification

    +
    +

    In-file encoding specification

    Geany detects meta tags of HTML files which contain charset information like:

    @@ -863,8 +865,8 @@ correctly the next time.

    Anything after the first 512 bytes will not be recognised.

    -
    -

    Special encoding "None"

    +
    +

    Special encoding "None"

    There is a special encoding "None" which is actually no real encoding. It is useful when you know that Geany cannot auto-detect the encoding of a file and it is not displayed correctly. Especially @@ -873,10 +875,10 @@ detection and open the file properly at least until the occurrence of the first NUL-byte. Using this encoding opens the file as it is without any character conversion.

    -
    -

    Unicode Byte-Order-Mark (BOM)

    +
    +

    Unicode Byte-Order-Mark (BOM)

    Furthermore, Geany detects an Unicode Byte Order Mark (see -http://en.wikipedia.org/wiki/Byte_Order_Mark for details). Of course, +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 @@ -894,10 +896,10 @@ safely ignore it.

    -
    -

    Editing

    -
    -

    Folding

    +
    +

    Editing

    +
    +

    Folding

    Geany provides basic code folding support. Folding means the ability to show and hide parts of the text in the current file. You can hide unimportant code sections and concentrate on the parts you are working on @@ -920,8 +922,8 @@ key while clicking on a fold symbol. That means, if the "Fold/Unfold all children of a fold point" option is enabled, pressing Shift will disable it for this click and vice versa.

    -
    -

    Column mode editing

    +
    +

    Column mode editing

    There is basic support for column mode editing. To use it, create a rectangular selection by holding down the Control key while selecting some text. It is also possible to create a zero-column selection but @@ -930,18 +932,18 @@ Once a rectangular selection exists you can start editing the text within this selection and the modifications will be done for every line in the selection.

    -
    -

    Drag and drop of text

    +
    +

    Drag and drop of text

    If you drag selected text in the editor widget of Geany the text is moved to the position where the mouse pointer is when releasing the mouse button. Holding Control when releasing the mouse button will copy the text instead. This behaviour was changed in Geany 0.11 - before the selected text was copied to the new position.

    -
    -

    Indentation

    +
    +

    Indentation

    Geany allows each document to indent either with a tab character -or multiple spaces. The default indent mode is set in the Editor Features +or multiple spaces. The default indent mode is set in the Editor Features tab in preferences dialog. But this can be overridden using either the Document->Indent Type menu, or by using the Detect from file indentation preference. When enabled, this scans each file that is opened @@ -956,8 +958,8 @@ as follows:

    Indent with spaces.
    -
    -

    Auto-indentation

    +
    +

    Auto-indentation

    When enabled, auto-indentation happens when pressing Enter in the Editor. It adds a certain amount of indentation to the new line so the user doesn't always have to indent each line manually.

    @@ -977,8 +979,8 @@ previous line. match the indentation of the line with the opening brace.
    -
    -

    Bookmarks

    +
    +

    Bookmarks

    Geany provides a handy bookmarking feature that lets you mark one or more lines in a document, and return the cursor to them using a key combination.

    @@ -995,14 +997,14 @@ together with the commands to switch from one editor tab to another (Ctrl-PgUp/PgDn and Ctrl-Tab) provides a particularly fast way to navigate around multiple files.

    -
    -

    Code Navigation History

    +
    +

    Code Navigation History

    To ease navigation in source files and especially between different files, Geany lets you jump between different navigation points. Currently, this works for the following:

    -
    -

    Send text through definable commands

    +
    +

    Send text through definable commands

    You can define several custom commands in Geany and send the current selection to one of these commands. The output of the command will be used to replace the current selection. So, it is possible to use text @@ -1031,18 +1033,18 @@ to get a new text entry and type the command. You can also specify some command line options. To delete a command, just clear the text entry and press OK. It will be deleted automatically.

    -
    -

    Context actions

    +
    +

    Context actions

    You can execute a specified command on the current word near the cursor position or an available selection and this word is passed as an argument to this command. It can be used for example to open some API documentation in a browser window or open any other external program. To do this, there is an menu entry in the popup menu of the editor widget and also a keyboard shortcut(see the section called -Keybindings).

    +Keybindings).

    The command can be specified in the preferences dialog and additionally for each filetype (see "context_action_cmd" in the section called -Format). At executing, the filetype specific command is used if +Format). At executing, the filetype specific command is used if available otherwise the command specified in the preferences dialog is executed.

    The passed word can be referred with the wildcard "%s" everywhere @@ -1055,10 +1057,10 @@ firefox "http://www.php.net/%s"

    when executing the command, the %s is substituted by the word near the cursor position or by the current selection. If the cursor is at the word "echo", a browser window will open(assumed your browser is -called firefox) and it will open the address: http://www.php.net/echo.

    +called firefox) and it will open the address: http://www.php.net/echo.

    -
    -

    User-definable snippets

    +
    +

    User-definable snippets

    Snippets are small strings or code constructs which can be replaced or completed to a more complex string. So you can save a lot of time by not typing often used strings and letting Geany do the work for you. @@ -1138,7 +1140,7 @@ myname=Enrico Tröger with "Enrico Tröger". The key to start auto completion can be changed in the preferences dialog, by default it is TAB.

    Since Geany 0.15 you can also use most of the available templates wildcards -listed in Template wildcards. All wildcards which are listed as +listed in Template wildcards. All wildcards which are listed as available in snippets can be used. For instance to improve the above example:

     [Default]
    @@ -1153,14 +1155,14 @@ to be recognized as a word for completion. Leave it commented to use
     default characters or define it to add or remove characters to fit your
     needs.

    -
    -

    Inserting unicode characters

    +
    +

    Inserting unicode characters

    With GTK 2.10 and above, you can hit Ctrl-Shift-u, then still holding Ctrl-Shift, type some hex digits representing the code point for the character you want, then let go of Ctrl-Shift and hit a key such as the right arrow.

    For this to work in Geany, you'll need to first unbind Ctrl-Shift-u -in the keybinding tab in preferences dialog, then restart Geany. +in the keybinding tab in preferences dialog, then restart Geany. Note that it works slightly differently from other GTK applications, in that you'll need to continue to hold down the Ctrl and Shift keys while typing the code point hex digits.

    @@ -1169,8 +1171,8 @@ is not necessary. One problem is that you may find the alphabetic keys conflict with other Geany keybindings.

    -
    -

    Search, replace and go to

    +
    +

    Search, replace and go to

    This section describes search-related commands from the Search menu and the editor window's popup menu:

      @@ -1183,22 +1185,22 @@ and the editor window's popup menu:

    • Go to line

    * These items are available from the editor window's popup menu, or by -using a keyboard shortcut (see the section called Keybindings).

    -
    -

    Find

    +using a keyboard shortcut (see the section called Keybindings).

    +
    +

    Find

    The Find dialog is used for finding text in one or more open documents.

    ./images/find_dialog.png -
    -

    Matching options

    +
    +

    Matching options

    The syntax for the Use regular expressions option is shown in -Regular expressions.

    +Regular expressions.

    The Use escape sequences option will transform any escaped characters into their UTF-8 equivalent. For example, \t will be transformed into a tab character. Other recognised symbols are: \\, \n, \r, \uXXXX (Unicode chararacters).

    -
    -

    Find all

    +
    +

    Find all

    To find all matches, click on the Find All expander. This will reveal several options:

      @@ -1214,8 +1216,8 @@ if the Markers margin is visible. If not, the background colour of matching lines will be highlighted. Markers and highlighting can be removed by selecting the Remove Markers command from the Document menu.

    -
    -

    Change font in search dialog text fields

    +
    +

    Change font in search dialog text fields

    All search related dialogs use a Monospace for the text input fields to increase the readibility of input text. This is useful when you are typing e.g. regular expressions with spaces, periods and commas which @@ -1236,8 +1238,8 @@ of this style to the highest available. Otherwise, the style is ignored for the search dialogs.

    -
    -

    Find usage

    +
    +

    Find usage

    Find usage searches all open files. It is similar to the Find All In Session Find dialog command.

    If there is a selection, then it is used as the search text; otherwise @@ -1246,8 +1248,8 @@ word nearest the edit cursor, or the word underneath the popup menu click position when the popup menu is used. The search results are shown in the Messages tab of the Message Window.

    -
    -

    Find in files

    +
    +

    Find in files

    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 @@ -1255,8 +1257,8 @@ utility. GNU Grep is recommended.

    ./images/find_in_files_dialog.png

    The Extra options field is used to pass any additional arguments to the grep tool.

    -
    -

    Filtering out version control files

    +
    +

    Filtering out version control files

    When using the Recurse in subfolders option with a directory that's under version control, you can set the Extra options field to use grep's --exclude flag to filter out filenames.

    @@ -1267,18 +1269,18 @@ filter out CVS and hidden directories like Example: --exclude-dir=.* --exclude-dir=CVS

    -
    -

    Replace

    +
    +

    Replace

    The Replace dialog is used for replacing text in one or more open documents.

    ./images/replace_dialog.png

    The Replace dialog has the same options for matching text as the Find -dialog. See the section called Matching options.

    +dialog. See the section called Matching options.

    The Use regular expressions option applies both to the search string and to the replacement text; for the latter back references can be -used -- see the entry for '\n' in Regular expressions.

    -
    -

    Replace all

    +used -- see the entry for '\n' in Regular expressions.

    +
    +

    Replace all

    To replace several matches, click on the Replace All expander. This will reveal several options:

      @@ -1292,8 +1294,8 @@ documents. Replace All In Selection will replace all matching text in the current selection of the current document.

    -
    -

    Go to tag definition

    +
    +

    Go to tag definition

    If the current word is the name of a tag definition (like a function body) and the file containing the tag definition is open, this command will switch to that file and go to the corresponding line number. The @@ -1301,18 +1303,18 @@ current word is either taken from the word nearest the edit cursor, or the word underneath the popup menu click position when the popup menu is used.

    -
    -

    Go to tag declaration

    +
    +

    Go to tag declaration

    Like Go to tag definition, but for a forward declaration such as a function prototype or extern declaration instead of a function body.

    -
    -

    Go to line

    +
    +

    Go to line

    Go to a particular line number in the current file.

    -
    -

    Regular expressions

    +
    +

    Regular expressions

    You can use regular expressions in the Find and Replace dialogs by selecting the Use regular expressions check box. The syntax is POSIX-like, as described in the table below.

    @@ -1384,15 +1386,15 @@ Saam, Saaam and so on.
    -g --generate-tags Generate a global tags file (see -Generating a global tags file).
    -P --no-preprocessing
    -
    -

    Partial POSIX compatibility

    +
    +

    Partial POSIX compatibility

    Note that the POSIX '?' regular expression character for optional matching is not supported by the Find and Replace dialogs.

    -
    -

    Tags

    +
    +

    Tags

    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.

    -
    -

    Workspace tags

    +
    +

    Workspace tags

    Tags for each document are parsed whenever a file is loaded or saved. These are shown in the Symbol list in the Sidebar. These tags are also used for autocompletion 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

    +
    +

    Global tags

    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.tags

    lang_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.

    -
    -

    Default global tags files

    +
    +

    Default global tags files

    For some languages, a list of global tags is loaded when the corresponding filetype is first used. Currently these are for:

      @@ -1442,8 +1444,8 @@ corresponding filetype is first used. Currently these are for:

    • LaTeX
    -
    -

    Generating a global tags file

    +
    +

    Generating a global tags file

    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>
    • Tag File should be in the format described earlier -- see the -section called Global tags.
    • +section called Global tags.
    • File list is a list of filenames, each with a full path (unless you are generating C/C++ tags and have set the CFLAGS environment variable appropriately).
    • @@ -1490,8 +1492,8 @@ copy of the generated tags file because it will get overwritten when upgrading Geany.

    -
    -

    Ignore tags

    +
    +

    Ignore tags

    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.

    -
    -

    Preferences

    +
    +

    Preferences

    You may adjust Geany's settings using the Edit --> Preferences dialog. Any changes you make there can be applied by hitting either the Apply or the OK button. These settings will persist between Geany @@ -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.

    -
    -

    General tab in preferences dialog

    +
    +

    General tab in preferences dialog

    ./images/pref_dialog_gen.png -
    -

    Startup

    +
    +

    Startup

    Load files from the last session
    On startup, load the same files you had open the last time you @@ -1547,8 +1549,8 @@ used Geany.
    Allow plugins to be used in Geany.
    -
    -

    Shutdown

    +
    +

    Shutdown

    Save window position and geometry
    Save the current position and size of the main window so next time @@ -1557,8 +1559,8 @@ you open Geany it's in the same location.
    Have a dialog pop up to confirm that you really want to quit Geany.
    -
    -

    Projects

    +
    +

    Projects

    Use project-based session files
    Save your current session when closing projects. You will be able to @@ -1572,8 +1574,8 @@ In any case, you can easily the final project file path in the New Project, dialog. This option is just for your convenience to get a proper default path.
    -
    -

    Miscellaneous

    +
    +

    Miscellaneous

    Beep on errors when compilation has finished
    Have the computer make a beeping sound when compilation of your program @@ -1590,26 +1592,26 @@ one of the Search dialogs.
    -
    -

    Interface tab in preferences dialog

    +
    +

    Interface tab in preferences dialog

    ./images/pref_dialog_interface.png -