Developer(s) | Ken Arnold |
---|---|
Repository | |
Operating system | Unix and Unix-like |
Type | Programming tool(Specifically: Code navigation tool) |
License | BSD |
Ctags is a programming tool that generates an index (or tag) file of names found in source and header files of various programming languages to aid code comprehension. Depending on the language, functions, variables, class members, macros and so on may be indexed. These tags allow definitions to be quickly and easily located by a text editor, a code search engine, or other utility. Alternatively, there is also an output mode that generates a cross reference file, listing information about various names found in a set of language files in human-readable form.
Universal Ctags improves on traditional ctags because of its multilanguage support, its ability for the user to define new languages searched by regular expressions, and its ability to generate emacs-style TAGS files. We can install universal ctags on Ubuntu as, $ sudo apt-get remove exuberant-ctags $ sudo snap install universal-ctags. Ctags-5.8.tar.gz free download. Koel koel is a simple, open source, web-based personal audio streaming service created with some of the m.
- Ctags content on DEV. DEV is a community of 451,415 amazing developers. We're a place where coders share, stay up-to-date and grow their careers.
- Aug 05, 2015 The second possibility is that on a Mac with a Mac file server it is possible to have Spotlight indexing take place so that the client Macs can search files and tags on the server. Windows has a similar feature called Windows Search Service. It is possible to have a Windows File Server and install on it additional software called ExtremeZ-IP.
The original Ctags was introduced in BSD Unix 3.0 and was written by Ken Arnold, with Fortran support by Jim Kleckner and Pascal support by Bill Joy. It is part of the initial release of Single Unix Specification and XPG4 of 1992.
Editors that support ctags[edit]
Tag index files are supported by many source code editors, including:
- CodeLite (as its tag indexer for code completion)
- Cloud9 IDE (uses it internally but does not expose it)
- Emacs and XEmacs
- Far Manager (via Ctags Source Navigator plugin)
- Gedit (via gedit-symbol-browser-plugin)
- jEdit (via plugins CodeBrowser, Tags, ClassBrowser, CtagsSideKick, or Jump)
- mcedit (Midnight Commander builtin editor)
- Notepad++ (via OpenCTags plug-in)
- TextMate (via CodeBrowser-PlugIn)
- vi (and derivatives such as Elvis, Nvi, Vim, vile, etc.)
Variants of ctags[edit]
There are a few other implementations of the ctags program:
Etags[edit]
GNU Emacs comes with two ctags utilities, etags and ctags, which are compiled from the same source code. Etags generates a tag table file for Emacs, while the ctags command is used to create a similar table in a format understood by vi. They have different sets of command line options: For those options which only make sense for vi style tag files produced by the ctags command, etags could not recognize them and would ignore them.[1]
Exuberant Ctags[edit]
Exuberant Ctags, written and maintained by Darren Hiebert until 2009,[2] was initially distributed with Vim, but became a separate project upon the release of Vim 6. It includes support for Emacs and
etags
compatibility.[3][4]Exuberant Ctags includes support for over 40 programming languages with the ability to add support for even more using regular expressions.
Universal Ctags[edit]
Universal Ctags is a fork of Exuberant Ctags, with the objective of continuing its development. A few parsers are rewritten to better support the languages.[5]
Language-specific[edit]
Hasktags creates ctags compatible tag files for Haskell source files.[6] It includes support for creating Emacs etags files.[7]
jsctags is a ctags-compatible code indexing solution for JavaScript.[8] It is specialized for JavaScript and uses the CommonJS packaging system. It outperforms Exuberant Ctags for JavaScript code, finding more tags than the latter.[9]
Tags file formats[edit]
There are multiple tag file formats. Some of them are described below. In the following, x## represents the byte with hexadecimal representation ##. Every line ends with a line feed (LF, n = x0A).
Ctags and descendants[edit]
The original ctags and the Exuberant/Universal descendants have similar file formats:[10]
Ctags[edit]
This is the format used by vi and various clones. The tags file is normally named 'tags'.
The tags file is a list of lines, each line in the format:
The fields are specified as follows:
- {tagname} – Any identifier, not containing white space
- t – Exactly one tab (x0b) character, although many versions of vi can handle any amount of white space.
- {tagfile} – The name of the file where {tagname} is defined, relative to the current directory
- {tagaddress} – An ex mode command that will take the editor to the location of the tag. For POSIX implementations of vi this may only be a search or a line number, providing added security against arbitrary command execution.
The tags file is sorted on the {tagname} field which allows for fast searching of the tags file.
Extended Ctags[edit]
This is the format used by Vim's Exuberant Ctags and Universal Ctags. These programs can generate an original ctags file format or an extended format that attempts to retain backward compatibility.
The extended tags file is a list of lines, each line in the format:
The fields up to and including {tagaddress} are the same as for ctags above.
Optional additional fields are indicated by square brackets ('[..]') and include:
- ;' – semicolon + double quote: Ends the {tagaddress} in a way that looks like the start of a comment to vi or ex.
- {tagfield} – extension fields: tab separated 'key:value' pairs for more information.
This format is compatible with non-POSIX vi as the additional data is interpreted as a comment. POSIX implementations of vi must be changed to support it, however.[10]
Etags[edit]
This is the format used by Emacs etags. The tags file is normally named 'TAGS'.
The etags files consists of multiple sections—one section per input source file. Sections are plain-text with several non-printable ascii characters used for special purposes. These characters are represented as bracketed hexadecimal codes below.
A section starts with a two line header (the first two bytes make up a magic number):
The header is followed by tag definitions, one definition per line, with the format:
{tagname}x01 can be omitted if the name of the tag can be deduced from the text at the tag definition.
Example[edit]
Given a single line test.c source code:
The TAGS (etags) file would look like this:
The tags (ctags) file may look like:
or more flexibly using a search:
See also[edit]
References[edit]
- ^
etags.emacs(1)
– Linux General Commands Manual - ^'Exuberant Ctags'. ctags.sourceforge.net.
- ^'Vim documentation: version6: ctags-gone'. Retrieved 2007-04-28.
- ^
etags.ctags(1)
– Linux General Commands Manual - ^'Universal Ctags Documentation'. Retrieved 2018-08-02.
- ^'GHC documentation: Other Haskell utility programs'. Retrieved 2010-03-05.
- ^'hasktags: Produces ctags 'tags' and etags 'TAGS' files for Haskell programs'. Retrieved 2010-03-05.
- ^'pcwalton github repository for jsctags'. Archived from the original on 2010-08-22. Retrieved 2016-09-10.
- ^Patrick Walton. 'Introducing jsctags'. Retrieved 2010-05-25.
- ^ ab'Proposal for extended Vi tags file format'. Retrieved 2007-06-30.
External links[edit]
The Wikibook Guide to Unix has a page on the topic of: Commands |
ctags
: create a tags file – Commands & Utilities Reference, The Single UNIX Specification, Issue 7 from The Open Group
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Ctags&oldid=972397004'
Universal Ctags generates an index (or tag) file of language objects found in source files for many popular programming languages. This index makes it easy for text editors and other tools to locate the indexed items. Universal Ctags improves on traditional ctags because of its multilanguage support, its ability for the user to define new languages searched by regular expressions, and its ability to generate emacs-style TAGS files.
universal-ctags has the objective of continuing the development fromwhat existed in the Sourceforge area. Github exuberant-ctagsrepository was started by Reza Jelveh and was later moved to theuniversal-ctags organization.
The goal of the project is preparing and maintaining common/unified workingspace where people interested in making ctags better can worktogether.
Getting PACKCC compiler-compiler
Packcc is a compiler-compiler; it translates .peg grammar file to .cfile. packcc was originally written by Arihiro Yoshida. Its sourcerepository is at sourceforge. It seems that packcc at sourceforge isnot actively maintained. Some derived repositories are atgithub. Currently, our choice ishttps://github.com/enechaev/packcc. It is the most active one in thederived repositories.
The source tree of packcc is grafted at misc/packcc directory.Building packcc and ctags are integrated in the build-scripts ofUniversal-ctags.
The latest build and package
If you want to try the latest universal-ctags without building it yourself..
Windows
Daily builds are available at the ctags-win32 project.Go to the releases page to download zip packages.
Mac
See Homebrew Tap for Universal Ctags
Snap
Go to ctags-snap andclone the
ctags-snap
repo. Then, follow instructions to build thesnap package of ctags. Snapcraft will automatically fetch the sourcecode from GitHub.How to build and install
Exuberant Ctags Windows
To build with Autotools, see
docs/autotools.rst
for more information.(To build on GNU/Linux, Autotools is your choice.)To build on Windows, see docs/windows.rst
for more information.To build on OSX, see docs/osx.rst
for more information.Manual
Man page (ctags.1) is generated only in Autotools based building process.In addition rst2man command is needed.
rst2man is part of the python-docutils package on Ubuntu.
Exuberant Ctags
Differences
You may be interested in how universal-ctags is different fromexuberant-ctags. The critical and attractive changes are explainedin docs/*.rst. The preformatted version is available on line,https://docs.ctags.io/.
The most significant incompatible changes:
Ctags For Mac Pro
- Universal-ctags doesn't load
~/.ctags
and./.ctags
at starting up time. Instead, it loads~/.ctags.d/*.ctags
and./.ctags.d/*.ctags
. See the above website and man pages(man/ctags.1.rst.in and man/ctags-incompatibilities.7.in in thesource tree).Jul 29, 2019 Kannada Mussanje Mathu Movie Mp3 Songs Download; Mussanje Maathu Songs Download, Kannada Mussanje Maathu Songs, Mussanje Maathu Movie Songs Download, Mussanje Maathu Mp3 Download, Mussanje Maathu Film Songs, Download Mussanje Maathu Songs, Mussanje Maathu Kannadamasti, Mussanje Maathu Full Song, Mussanje Maathu All Songs 320kbps, Mussanje Maathu Audio Songs. Kannada movie mussanje maathu mp3 songs download free. Mussanje Maatu Songs - Download Mussanje Maatu mp3 songs to your Hungama account. Get the complete list of Mussanje Maatu mp3 songs free online. Find the best place to Mussanje Maatu movie songs download list. Download Hungama Music app to get access to unlimited free mp3 songs, free movies, latest music videos, online radio, new TV shows and much more at Hungama. Mussanje Maathu MP3 Song by D.G Mahatha from the Kannada movie Baa Premave. Download Mussanje Maathu song on Gaana.com and listen Baa Premave Mussanje Maathu song offline. Category: Kannada Movies. Mussanjemaatu songs free download Sudeep Mussanjemaatu Kannada movie songs free download Kannada Mussanjemaatu mp3 songs download. 01 – Yenagali 02 – Ninna Nodalentho 03 – Anuraga Aralo 04 – Kaddalu Manasanna 05 – Akasha Bhoomi 06 – Hethavala Muddu 07 – Mussanje Mathali 08 – Oh Hrudaya. Mussanje Maatu Songs Download- Listen Kannada Mussanje Maatu MP3 songs online, free. Play Mussanje Maatu Kannada movie songs MP3 by Shreya Ghoshal and download Mussanje Maatu songs. - Universal-ctags is more strict about characters that can beused in kind letters and kind names than Exuberant-ctags.
- The letter must be an alphabetical character (
[a-zA-EG-Z]
).F
is reserved forfile
kind. - The first character of the name must be alphabetic, andthe rest characters must be alphanumeric (
[a-zA-Z][a-zA-Z0-9]*
).
See the web site and man pages. The detailed background is explainedin #1737.If you want to reuse your .ctags written for Exuberant-ctags,you must review kind letters and names defined with--regex-<LANG>=..
options. When updating the definitions, using--kind-<LANG>
optionis appreciated.
Ctags For Mac Download
Pull-requests are welcome!