universal-ctags

Jonathan Hartley (tartley)
  • Jonathan Hartley (tartley)

Install latest/stable of universal-ctags

Make sure snap support is enabled in your Desktop store.


Install using the command line

Don't have snapd? Get set up for snaps.

Channel Version Published

Parse source code to build an index of defined symbols.

ctags parses source code to produce an index file, mapping the names of symbols, like functions, classes, and variables, to the locations where they are defined. This index is used by editors like Vim and Emacs to enable feaures like 'go to definition'.

Universal Ctags is a fork of the venerable Exuberant Ctags, that adds additional features, including support for more languages.

Usage

When installed, this snap provides executable universal-ctags, and alias ctags.

In order to read config from files under ~/.ctags.d/, you need to give the snap permission. This should be automated imminently, but for now:

 sudo snap connect universal-ctags:dot-ctags

See ctags online useage documentation at http://docs.ctags.io/en/latest/man/ctags.1.html

Limitations

Compared to universal-ctags installed using apt, or compiled from source, this snap currently has some limitations, introduced by snap security restrictions:

  1. Source files cannot be scanned if they are:

    • Outside the user's $HOME directory, or
    • In a top-level hidden directory, eg. ~/.src.

    However, it can scan source in lower-level hidden directories, eg. ~/proj/.src.

  2. Config is usually read from the following directories:

    • User's ~/.ctags.d/ is read as expected. (But see the note in 'Usage' about giving the snap permission.)
    • Current directory's ctags.d is not read by default, but the '--options' arg can be used to read from it.
    • Current directory's .ctags.d cannot be read.
  3. Configuration in other places, specified using --options or --options-maybe, will not be read if they are outside the user's HOME, or in a top-level hidden directory.

  4. Tag files written using '-f' options or similar may not be outside the user's $HOME directory, nor in a hidden file or directory at top level in the $HOME directory. (You can work around this by using -f - and redirecting stdout to the required location.)

  5. The universal-ctags 'man' pages are not installed.

  6. The 'etags' executable alias (which defaults to Emacs style tags files) is not installed.

If these or other issues cause you problems, let me know at https://github.com/universal-ctags/ctags-snap/issues

Details for universal-ctags

License
unset
Last updated
6 November 2019

Share this snap

Generate an embeddable card to be shared on external websites.


Where people are using universal-ctags

Users by distribution (log)

ubuntu 18.04
ubuntu 19.10
ubuntu 16.04
ubuntu 19.04
centos 7
neon 18.04
linuxmint 19.2
ubuntu 18.10
fedora 30

Related blog posts


Install universal-ctags on your Linux distribution

Choose your Linux distribution to get detailed installation instructions. If yours is not shown, get more details on the installing snapd documentation.


Is there a problem with universal-ctags? Report this app