All Projects → universal-ctags → Ctags

universal-ctags / Ctags

Licence: gpl-2.0
A maintained ctags implementation

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
M4
1887 projects
emacs lisp
2029 projects
shell
77523 projects
VHDL
269 projects

Projects that are alternatives of or similar to Ctags

citre
Ctags IDE on the True Editor
Stars: ✭ 230 (-95.18%)
Mutual labels:  ctags, code-completion, code-reading
Youcompleteme
A code-completion engine for Vim
Stars: ✭ 23,518 (+393.25%)
Mutual labels:  code-completion, code-analysis
Codequery
A code-understanding, code-browsing or code-search tool. This is a tool to index, then query or search C, C++, Java, Python, Ruby, Go and Javascript source code. It builds upon the databases of cscope and ctags, and provides a nice GUI tool.
Stars: ✭ 551 (-88.44%)
Mutual labels:  ctags, code-analysis
Ycmd
A code-completion & code-comprehension server
Stars: ✭ 1,575 (-66.97%)
Mutual labels:  code-completion, code-analysis
Ptags
A parallel universal-ctags wrapper for git repository
Stars: ✭ 87 (-98.18%)
Mutual labels:  ctags, developer-tools
Electron Osx Sign
Codesign Electron macOS apps
Stars: ✭ 390 (-91.82%)
Mutual labels:  developer-tools
Draft
A tool for developers to create cloud-native applications on Kubernetes.
Stars: ✭ 3,972 (-16.69%)
Mutual labels:  developer-tools
Kafka Sprout
🚀 Web GUI for Kafka Cluster Management
Stars: ✭ 388 (-91.86%)
Mutual labels:  developer-tools
Vprof
Visual profiler for Python
Stars: ✭ 3,799 (-20.32%)
Mutual labels:  developer-tools
Magento2 Vagrant For Developers
Vagrant Box for Magento 2 Developers
Stars: ✭ 451 (-90.54%)
Mutual labels:  developer-tools
Npkill
List any node_modules directories in your system, as well as the space they take up. You can then select which ones you want to erase to free up space.
Stars: ✭ 5,325 (+11.68%)
Mutual labels:  developer-tools
Decentralized Internet
A SDK/library for decentralized web and distributing computing projects
Stars: ✭ 406 (-91.48%)
Mutual labels:  developer-tools
Credo
A static code analysis tool for the Elixir language with a focus on code consistency and teaching.
Stars: ✭ 4,144 (-13.09%)
Mutual labels:  code-analysis
Fritz Models
Train and deploy machine learning models for mobile apps with Fritz AI.
Stars: ✭ 422 (-91.15%)
Mutual labels:  developer-tools
Awesome Wp Developer Tools
A collection of plugins, starter themes and tools to make WordPress development easier.
Stars: ✭ 388 (-91.86%)
Mutual labels:  developer-tools
Bake
A build system that lets you clone, build and run C/C++ projects with a single command
Stars: ✭ 434 (-90.9%)
Mutual labels:  developer-tools
Joern
Open-source code analysis platform for C/C++/Java based on code property graphs
Stars: ✭ 386 (-91.9%)
Mutual labels:  code-analysis
Asm Dude
Visual Studio extension for assembly syntax highlighting and code completion in assembly files and the disassembly window
Stars: ✭ 3,898 (-18.25%)
Mutual labels:  code-completion
Emacs4developers
A document to help developers to use Emacs as a developer
Stars: ✭ 430 (-90.98%)
Mutual labels:  developer-tools
Xcode Defaults
Awesome and useful Xcode defaults
Stars: ✭ 399 (-91.63%)
Mutual labels:  developer-tools

Universal Ctags

Coverity Scan Build Status Coverage Status Build status RTD build status CircleCI Build Status GitHub Actions/VALGRIND

Universal Ctags (abbreviated as u-ctags) is a maintained implementation of ctags. ctags generates an index (or tag) file of language objects found in source files for programming languages. This index makes it easy for text editors and other tools to locate the indexed items.

Exuberant Ctags (e-ctags) maintained by Darren Hiebert, the ancestor of Universal Ctags, improved traditional ctags with multi-language support, the ability for the user to define new languages searched by regular expressions (called optlib in Universal Ctags), and the ability to generate emacs-style TAGS files. But the activity of the project unfortunately stalled.

Universal Ctags has the objective of continuing the development of Exuberant Ctags. Reza Jelveh [email protected] initially created a personal fork of Exuberant Ctags on GitHub. As interest and participation grew, it was decided to move development to a dedicated project as Universal Ctags. The goal of this project is to maintain a common/unified working space where people interested in making ctags better can work together.

Some of the major features of Universal Ctags are:

  • more numbers of improved language support
    • new extended C/C++ language parser, etc.
  • fully extended optlib (a feature to define a new language parser from a command line)
  • interactive mode (experimental)

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 and clone the ctags-snap repo. Then, follow instructions to build the snap package of Universal Ctags. Snapcraft will automatically fetch the source code from GitHub.

How to build and install

To build with Autotools (Autoconf, Automake, and Libtool) on GNU/Linux, OSX, or Windows 10 WSL,

    $ git clone https://github.com/universal-ctags/ctags.git
    $ cd ctags
    $ ./autogen.sh
    $ ./configure --prefix=/where/you/want # defaults to /usr/local
    $ make
    $ make install # may require extra privileges depending on where to install

See docs/autotools.rst for more information.

To build on Windows, see docs/windows.rst for more information.

To build on OSX, see docs/osx.rst for more information.

Manual

The primary documents of Universal Ctags are man pages. Users should first consult the ctags(1), and other man pages if necessary.

Universal Ctags Hacking Guide, which also includes the man pages, is primarily for developers and provides additional information to the man pages, including experimental features.

See also */README.md on this repository.

Differences from exuberant-ctags

You may be interested in how Universal Ctags is different from Exuberant Ctags. See ctags-incompatibilities(7) and Introduced changes for details.

The most significant incompatible changes:

  • Universal Ctags doesn't load ~/.ctags and ./.ctags at starting up time. Instead, it loads ~/.ctags.d/*.ctags and ./.ctags.d/*.ctags.

  • Universal Ctags is more strict about characters that can be used in kind letters and kind names than Exuberant-ctags.

    • The letter must be an alphabetical character ([a-zA-EG-Z]). F is reserved for file kind.

    • The first character of the name must be alphabetic, and the rest characters must be alphanumeric ([a-zA-Z][a-zA-Z0-9]*).

    The detailed background is explained in #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 --kinddef-<LANG>=... option is appreciated.

Pull-requests are welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].