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 and calltips in other documents open in the current session.
The Go to Tag commands can be used with all workspace tags. See the section called “Go to tag definition”.
Global tags are used to provide autocompletion 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 the library.
You can load a custom global tags file in two ways:
Using the Load Tags command in the File menu.
By creating a directory ~/.geany/tags
,
and moving or symlinking the tags files there before starting
Geany.
You can either download these files or generate your own. They have the format:
libraryname.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 more information.
For some languages, a list of global tags is loaded when the corresponding filetype is first used. Currently these are for:
C - GTK+ and GLib
Pascal
PHP
HTML - &symbol;
completion, e.g.
for ampersand, copyright, etc.
LaTeX
Currently this is not yet supported for Pascal, PHP and LaTeX filetypes.
You can generate your own global tags files by parsing a list of source files. The command is:
geany -g <Tag File> <File list>
Tag File should be in the format described earlier - see the 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).
Example for the wxD library for the D programming language:
geany -g wxd.d.tags /home/username/wxd/wx/*.d
For C/C++ tag files, gcc
and grep
are
required, so that header files can be preprocessed to include
any other headers they depend upon.
For C/C++ files, the environment variable CFLAGS should be set with appropriate
-I/path
include paths.
The following example works with the bash
shell, generating
tags for the GnomeUI library:
CFLAGS=`pkg-config --cflags libgnomeui-2.0` geany -g gnomeui.c.tags /usr/include/libgnomeui-2.0/gnome.h
You can adapt this command to use CFLAGS and header files appropriate for whichever libraries you want.
Geany currently uses a default global tags file
global.tags
for C and C++, commonly installed in /usr/share/geany
. This
file can be replaced with one containing tags parsed from a different set of
header files. When Geany is next started, your custom
tags file will be loaded instead of the default global.tags
.
You should keep a copy of the generated
tags file because it will get overwritten when upgrading
Geany.
This is a temporary solution - in later versions this will be unnecessary.