GNU Global source code tagging system
GNU Global is a software which makes your hack and review efficient by adding indexes to your software source code.
You can locate symbols in the source files and move there quickly.
It is useful for hacking a large project containing many sub-directories,
#ifdef and many
It is similar to ctags or etags but is different from them at the point of independence of any editor. You can use Global in various environments like emacs, vi, less and etc. You can read source code as a hypertext using any browser too.
We planned an source code tagging system which meets the following requirement:
- Available from diverse environments
Though there are a lot of tools which support analysis of source code, most of them are designed as a integrated system and are not implemented to combine with other tools. As a result, if you select a certain tool then you must throw away other tools or alternately use them as separate tools which are mutually unrelated.
Then we decided that we should make a pure tagging system which can be called from diverse tools.
- Applicable to a large-scale project
Though scale of software increases more day by day, most conventional tagging systems are made for comparatively small-scale projects.
Therefore we planned to make a tagging system which can quickly find symbols in a large-scale project, and can treat deep directory structure.
- work as a source code tagging system in various environments like Bash, Vi, Emacs, Less, various web browsers, Doxygen, and etc.
- find locations of a specified symbol quickly.
- locate not only definitions but also references.
- locate also path names which include specified pattern.
- treat a source tree containing sub-directories as a logical scope.
- search not only in a source tree but also in library paths.
- understand POSIX 1003.2 regular expressions.
- support grep(1) like function.
- support external search engine id-utils(1).
- generate a hypertext of source code (XHTML ready).
- tag files are independent of machine architecture.
- plug-in parser is available to treat new languages.
- compact format is available to save disk space.
- support incremental updating of tag files.
- support customizing with gtags.conf and style.css.
- generate completion list for completing input method.
Please see "Comparison with Similar Tools" page in the OpenGrok project site for comparison with other tools.
- Supported OS
- GNU system - Debian, Fedora, Suse, Ubuntu
- BSD system - FreeBSD, NetBSD, OpenBSD, MacOSX
- Various POSIX compatible system
- Supported language:
You can write a plug-in parser for new language. You can also use Exuberant Ctags as a parser for Global.
- Supported environment
- Shell command line
- Bash shell
- Vi editor clones (nvi,elvis,vim)
- Emacs editor clones (emacs, mule, xemacs)
- Less viewer
- various web browsers
- Doxygen documentation system
Outside related links
- Distribution condition:
You can redistribute this software freely under the GNU GPLv3 (General Public License). Of course, all of operation and the function are no warranty.