[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6361":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":36,"lastSyncTime":37,"discoverSource":38},6361,"ctags","universal-ctags\u002Fctags","universal-ctags","A maintained ctags implementation","https:\u002F\u002Fctags.io",null,"C",7216,664,103,202,0,11,41,1,39.47,"GNU General Public License v2.0",false,"master",true,[26,27,28,29,30,5,31,32],"code-analysis","code-completion","code-navigation","code-reading","code-summarization","developer-tools","tagjumping","2026-06-12 02:01:18","# Universal Ctags\n\n[![Coverity Scan Build Status](https:\u002F\u002Fscan.coverity.com\u002Fprojects\u002F4355\u002Fbadge.svg)](https:\u002F\u002Fscan.coverity.com\u002Fprojects\u002F4355)\n[![Coverage Status](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Funiversal-ctags\u002Fctags\u002Fbadge.svg?branch=master&service=github)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Funiversal-ctags\u002Fctags?branch=master)\n[![Build status](https:\u002F\u002Fci.appveyor.com\u002Fapi\u002Fprojects\u002Fstatus\u002F6hk2p5lv6jsrd9o7\u002Fbranch\u002Fmaster?svg=true)](https:\u002F\u002Fci.appveyor.com\u002Fproject\u002Funiversalctags\u002Fctags\u002Fbranch\u002Fmaster)\n[![RTD build status](https:\u002F\u002Freadthedocs.org\u002Fprojects\u002Fctags\u002Fbadge)](https:\u002F\u002Fdocs.ctags.io)\n[![CircleCI Build Status](https:\u002F\u002Fdl.circleci.com\u002Fstatus-badge\u002Fimg\u002Fgh\u002Funiversal-ctags\u002Fctags\u002Ftree\u002Fmaster.svg?style=svg)](https:\u002F\u002Fdl.circleci.com\u002Fstatus-badge\u002Fredirect\u002Fgh\u002Funiversal-ctags\u002Fctags\u002Ftree\u002Fmaster)\n![GitHub Actions\u002FVALGRIND](https:\u002F\u002Fgithub.com\u002Funiversal-ctags\u002Fctags\u002Fworkflows\u002Frun%20units%20target%20under%20VALGRIND\u002Fbadge.svg)\n[![Gurubase](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGurubase-Ask%20Universal%20Ctags%20Guru-006BFF)](https:\u002F\u002Fgurubase.io\u002Fg\u002Funiversal-ctags)\n\n[Universal Ctags](https:\u002F\u002Fctags.io\u002F) (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:\u002F\u002Fctags.sourceforge.net\u002F) (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> 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\u002Funified 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\u002FC++ 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:\u002F\u002Fgithub.com\u002Funiversal-ctags\u002Fctags-win32) project.\nGo to the [releases](https:\u002F\u002Fgithub.com\u002Funiversal-ctags\u002Fctags-win32\u002Freleases) page to download zip packages.\n\n### Unix-like\nNightly builds are available at the [ctags-nightly-build](https:\u002F\u002Fgithub.com\u002Funiversal-ctags\u002Fctags-nightly-build) project.\nGo to the [releases](https:\u002F\u002Fgithub.com\u002Funiversal-ctags\u002Fctags-nightly-build\u002Freleases) page to download tarball archives.\n\n### Mac\nRecent builds are available via the [`universal-ctags` Homebrew formula](https:\u002F\u002Fformulae.brew.sh\u002Fformula\u002Funiversal-ctags).\n\n### Snap\nGo to [ctags-snap](https:\u002F\u002Fgithub.com\u002Funiversal-ctags\u002Fctags-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\u002FLinux, OSX, or Windows 10 WSL,\n```\n    $ git clone https:\u002F\u002Fgithub.com\u002Funiversal-ctags\u002Fctags.git\n    $ cd ctags\n    $ .\u002Fautogen.sh\n    $ .\u002Fconfigure  # use --prefix=\u002Fwhere\u002Fyou\u002Fwant to override installation directory, defaults to \u002Fusr\u002Flocal\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\u002Fautotools.rst`](https:\u002F\u002Fgithub.com\u002Funiversal-ctags\u002Fctags\u002Fblob\u002Fmaster\u002Fdocs\u002Fautotools.rst)\nfor more information.\n\nTo build on Windows, see\n[`docs\u002Fwindows.rst`](https:\u002F\u002Fgithub.com\u002Funiversal-ctags\u002Fctags\u002Fblob\u002Fmaster\u002Fdocs\u002Fwindows.rst)\nfor more information.\n\nTo build on OSX, see\n[`docs\u002Fosx.rst`](https:\u002F\u002Fgithub.com\u002Funiversal-ctags\u002Fctags\u002Fblob\u002Fmaster\u002Fdocs\u002Fosx.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:\u002F\u002Fdocs.ctags.io\u002Fen\u002Flatest\u002Fman\u002Fctags.1.html), and [other man\npages](https:\u002F\u002Fdocs.ctags.io\u002Fen\u002Flatest\u002Fman-pages.html) if necessary.\n\n[Universal Ctags Hacking Guide](https:\u002F\u002Fdocs.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 `*\u002FREADME.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:\u002F\u002Fdocs.ctags.io\u002Fen\u002Flatest\u002Fman\u002Fctags-incompatibilities.7.html)\nand [Introduced changes](https:\u002F\u002Fdocs.ctags.io\u002Fen\u002Flatest\u002Fnews.html) for details.\n\nThe most significant incompatible changes:\n\n* Universal Ctags doesn't load `~\u002F.ctags` and `.\u002F.ctags` at starting up time.\n  Instead, it loads `~\u002F.ctags.d\u002F*.ctags` and `.\u002F.ctags.d\u002F*.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:\u002F\u002Fgithub.com\u002Funiversal-ctags\u002Fctags\u002Fpull\u002F1737).\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>=...`\n  options. When updating the definitions, using `--kinddef-\u003CLANG>=...` option\n  is appreciated.\n\n## [CVE-2022-4515](https:\u002F\u002Faccess.redhat.com\u002Fsecurity\u002Fcve\u002FCVE-2022-4515) ##\nIt is not affected to Universal Ctags.\nIt was fixed in [e00c55d7a0204dc1d0ae316141323959e1e16162](https:\u002F\u002Fgithub.com\u002Funiversal-ctags\u002Fctags\u002Fcommit\u002Fe00c55d7a0204dc1d0ae316141323959e1e16162) in 2016. Thanks to the reporter.\n\nPull-requests are welcome!\n","Universal Ctags 是一个维护中的 ctags 实现，用于生成源代码文件中语言对象的索引文件。其核心功能包括增强的语言支持（如改进的C\u002FC++解析器）、完全扩展的optlib（允许用户通过命令行定义新的语言解析器）以及实验性的交互模式。该项目旨在为对提升ctags感兴趣的人提供一个共同的工作空间，以延续Exuberant Ctags的发展。它适用于需要高效代码导航、补全或分析的各种开发场景，尤其是对于那些希望在不同编程语言间实现一致标签处理能力的开发者来说非常有用。",2,"2026-06-11 03:06:42","top_language"]