{"id":13470197,"url":"https://github.com/universal-ctags/ctags","last_synced_at":"2025-05-12T13:25:18.209Z","repository":{"id":37783317,"uuid":"578839","full_name":"universal-ctags/ctags","owner":"universal-ctags","description":"A maintained ctags implementation","archived":false,"fork":false,"pushed_at":"2025-05-11T19:19:07.000Z","size":23052,"stargazers_count":6785,"open_issues_count":230,"forks_count":631,"subscribers_count":114,"default_branch":"master","last_synced_at":"2025-05-11T20:24:03.373Z","etag":null,"topics":["code-analysis","code-completion","code-navigation","code-reading","code-summarization","ctags","developer-tools","tagjumping"],"latest_commit_sha":null,"homepage":"https://ctags.io","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/universal-ctags.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.rst","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2010-03-25T10:43:13.000Z","updated_at":"2025-05-11T19:19:13.000Z","dependencies_parsed_at":"2023-10-15T23:22:57.052Z","dependency_job_id":"bc13ea9c-e118-4b39-9ddb-ceb5dd6465b9","html_url":"https://github.com/universal-ctags/ctags","commit_stats":{"total_commits":8582,"total_committers":240,"mean_commits":35.75833333333333,"dds":0.4060824982521557,"last_synced_commit":"653ca9204527fe1da7ecf97c3da4308f9ab17d2c"},"previous_names":[],"tags_count":282,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/universal-ctags%2Fctags","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/universal-ctags%2Fctags/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/universal-ctags%2Fctags/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/universal-ctags%2Fctags/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/universal-ctags","download_url":"https://codeload.github.com/universal-ctags/ctags/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253746216,"owners_count":21957519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-analysis","code-completion","code-navigation","code-reading","code-summarization","ctags","developer-tools","tagjumping"],"created_at":"2024-07-31T16:00:25.150Z","updated_at":"2025-05-12T13:25:18.188Z","avatar_url":"https://github.com/universal-ctags.png","language":"C","readme":"# Universal Ctags\n\n[![Coverity Scan Build Status](https://scan.coverity.com/projects/4355/badge.svg)](https://scan.coverity.com/projects/4355)\n[![Coverage Status](https://coveralls.io/repos/universal-ctags/ctags/badge.svg?branch=master\u0026service=github)](https://coveralls.io/github/universal-ctags/ctags?branch=master)\n[![Build status](https://ci.appveyor.com/api/projects/status/6hk2p5lv6jsrd9o7/branch/master?svg=true)](https://ci.appveyor.com/project/universalctags/ctags/branch/master)\n[![RTD build status](https://readthedocs.org/projects/ctags/badge)](https://docs.ctags.io)\n[![CircleCI Build Status](https://dl.circleci.com/status-badge/img/gh/universal-ctags/ctags/tree/master.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/universal-ctags/ctags/tree/master)\n![GitHub Actions/VALGRIND](https://github.com/universal-ctags/ctags/workflows/run%20units%20target%20under%20VALGRIND/badge.svg)\n[![Gurubase](https://img.shields.io/badge/Gurubase-Ask%20Universal%20Ctags%20Guru-006BFF)](https://gurubase.io/g/universal-ctags)\n\n[Universal Ctags](https://ctags.io/) (abbreviated as u-ctags) is a *maintained*\nimplementation of `ctags`.\n`ctags` generates an index (or tag) file of language objects found in source\nfiles for programming languages.\nThis index makes it easy for text editors and other tools to locate the indexed\nitems.\n\n[Exuberant Ctags](http://ctags.sourceforge.net/) (e-ctags) maintained by Darren\nHiebert, the ancestor of Universal Ctags, improved traditional `ctags` with\nmulti-language support, the ability for the user to define new languages\nsearched by regular expressions (called optlib in Universal Ctags), and the\nability to generate emacs-style TAGS files.\nBut the activity of the project unfortunately stalled.\n\nUniversal Ctags has the objective of continuing the development of Exuberant\nCtags.\nReza Jelveh \u003creza.jelveh@gmail.com\u003e initially created a personal fork of\nExuberant Ctags on GitHub.\nAs interest and participation grew, it was decided to move development to a\ndedicated project as Universal Ctags.\nThe goal of this project is to maintain a common/unified working space where\npeople interested in making ctags better can work together.\n\nSome of the major features of Universal Ctags are:\n\n* more numbers of improved language support\n    * new extended C/C++ language parser, etc.\n* fully extended optlib (a feature to define a new language parser from a\n  command line)\n* interactive mode (experimental)\n\n## The latest build and package ##\n\nIf you want to try the latest Universal Ctags without building it yourself...\n\n### Windows\nDaily builds are available at the [ctags-win32](https://github.com/universal-ctags/ctags-win32) project.\nGo to the [releases](https://github.com/universal-ctags/ctags-win32/releases) page to download zip packages.\n\n### Unix-like\nNightly builds are available at the [ctags-nightly-build](https://github.com/universal-ctags/ctags-nightly-build) project.\nGo to the [releases](https://github.com/universal-ctags/ctags-nightly-build/releases) page to download tarball archives.\n\n### Mac\nRecent builds are available via the [`universal-ctags` Homebrew formula](https://formulae.brew.sh/formula/universal-ctags).\n\n### Snap\nGo to [ctags-snap](https://github.com/universal-ctags/ctags-snap) and\nclone the `ctags-snap` repo. Then, follow instructions to build the\nsnap package of Universal Ctags. Snapcraft will automatically fetch the source\ncode from GitHub.\n\n## How to build and install ##\n\nTo build with Autotools (Autoconf and Automake) on GNU/Linux, OSX, or Windows 10 WSL,\n```\n    $ git clone https://github.com/universal-ctags/ctags.git\n    $ cd ctags\n    $ ./autogen.sh\n    $ ./configure  # use --prefix=/where/you/want to override installation directory, defaults to /usr/local\n    $ make\n    $ make install # may require extra privileges depending on where to install\n```\n\nGNU make is assumed as the `make` command.\n\nSee\n[`docs/autotools.rst`](https://github.com/universal-ctags/ctags/blob/master/docs/autotools.rst)\nfor more information.\n\nTo build on Windows, see\n[`docs/windows.rst`](https://github.com/universal-ctags/ctags/blob/master/docs/windows.rst)\nfor more information.\n\nTo build on OSX, see\n[`docs/osx.rst`](https://github.com/universal-ctags/ctags/blob/master/docs/osx.rst)\nfor more information.\n\n## Manual ##\nThe primary documents of Universal Ctags are man pages.\nUsers should first consult the\n[ctags(1)](https://docs.ctags.io/en/latest/man/ctags.1.html), and [other man\npages](https://docs.ctags.io/en/latest/man-pages.html) if necessary.\n\n[Universal Ctags Hacking Guide](https://docs.ctags.io), which also includes the\nman pages, is primarily for developers and provides additional information to\nthe man pages, including experimental features.\n\nSee also `*/README.md` on this repository.\n\n## Differences from exuberant-ctags ##\n\nYou may be interested in how Universal Ctags is different from Exuberant Ctags.\nSee\n[ctags-incompatibilities(7)](https://docs.ctags.io/en/latest/man/ctags-incompatibilities.7.html)\nand [Introduced changes](https://docs.ctags.io/en/latest/news.html) for details.\n\nThe most significant incompatible changes:\n\n* Universal Ctags doesn't load `~/.ctags` and `./.ctags` at starting up time.\n  Instead, it loads `~/.ctags.d/*.ctags` and `./.ctags.d/*.ctags`.\n\n* Universal Ctags is more strict about characters that can be\n  used in kind letters and kind names than Exuberant-ctags.\n\n  - The letter must be an alphabetical character (`[a-zA-EG-Z]`).\n    `F` is reserved for `file` kind.\n\n  - The first character of the name must be alphabetic, and\n    the rest characters must be alphanumeric (`[a-zA-Z][a-zA-Z0-9]*`).\n\n  The detailed background is explained in\n  [#1737](https://github.com/universal-ctags/ctags/pull/1737).\n\n  If you want to reuse your `.ctags` written for Exuberant-ctags,\n  you must review kind letters and names defined with `--regex-\u003cLANG\u003e=...`\n  options. When updating the definitions, using `--kinddef-\u003cLANG\u003e=...` option\n  is appreciated.\n\n## [CVE-2022-4515](https://access.redhat.com/security/cve/CVE-2022-4515) ##\nIt is not affected to Universal Ctags.\nIt was fixed in [e00c55d7a0204dc1d0ae316141323959e1e16162](https://github.com/universal-ctags/ctags/commit/e00c55d7a0204dc1d0ae316141323959e1e16162) in 2016. Thanks to the reporter.\n\nPull-requests are welcome!\n","funding_links":[],"categories":["C","others","Analysis","C/C++程序设计","Plugins / Themes / Dependencies"],"sub_categories":["Library","资源传输下载"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funiversal-ctags%2Fctags","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funiversal-ctags%2Fctags","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funiversal-ctags%2Fctags/lists"}