1eb375513SMasatake YAMATO====================================================================== 254b89bebSMasatake YAMATORelationship between other projects 354b89bebSMasatake YAMATO====================================================================== 454b89bebSMasatake YAMATO 5eb375513SMasatake YAMATO.. contents:: `Table of contents` 6eb375513SMasatake YAMATO :depth: 3 7eb375513SMasatake YAMATO :local: 8eb375513SMasatake YAMATO 9fa9c2cfeSHiroo HAYASHIOther tagging engines 1054b89bebSMasatake YAMATO---------------------------------------------------------------------- 11fa9c2cfeSHiroo HAYASHI 12bb84f88aSHiroo HAYASHI`Exuberant Ctags <http://ctags.sourceforge.net/>`_ 13fa9c2cfeSHiroo HAYASHI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 14fa9c2cfeSHiroo HAYASHI 15dccba5efSHiroo HAYASHIThe origin of Universal Ctags. 16fa9c2cfeSHiroo HAYASHI 17fa9c2cfeSHiroo HAYASHI`Geany <https://github.com/geany/geany>`_ 18fa9c2cfeSHiroo HAYASHI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 19fa9c2cfeSHiroo HAYASHIGeany is a small and lightweight IDE. 2054b89bebSMasatake YAMATOGeany maintains their own tagging engine derived from ctags. 2154b89bebSMasatake YAMATOWe are looking for the way to merge or share the source code each 2254b89bebSMasatake YAMATOother. 2354b89bebSMasatake YAMATO 2454b89bebSMasatake YAMATORepo 2554b89bebSMasatake YAMATO 26fa9c2cfeSHiroo HAYASHI https://github.com/geany/geany/tree/master/ctags 2754b89bebSMasatake YAMATO 2854b89bebSMasatake YAMATOGeany has created a library out of ctags 2954b89bebSMasatake YAMATO 3020ea5985SFrank Fesevur https://github.com/universal-ctags/ctags/issues/63 3154b89bebSMasatake YAMATO 3254b89bebSMasatake YAMATOTheir language parsers have many improvements to various parsers. 3354b89bebSMasatake YAMATOChanges known by devs worth backporting: 3454b89bebSMasatake YAMATO 3554b89bebSMasatake YAMATO* Various fixes for D parser (c.c), but currently the code diverges 3654b89bebSMasatake YAMATO from ours to some extent. 3754b89bebSMasatake YAMATO 3854b89bebSMasatake YAMATO 3954b89bebSMasatake YAMATOThey have these additional language parsers: 4054b89bebSMasatake YAMATO 412b8661bbSK.Takata* `DocBook <https://en.wikipedia.org/wiki/DocBook>`_ 422b8661bbSK.Takata* `Vala (c.c) <https://en.wikipedia.org/wiki/Vala_%28programming_language%29>`_ 4354b89bebSMasatake YAMATO 4420ea5985SFrank FesevurSoftware using ctags 4554b89bebSMasatake YAMATO---------------------------------------------------------------------- 4654b89bebSMasatake YAMATO 47fa9c2cfeSHiroo HAYASHI`Pygments <https://pygments.org/>`_ 48fa9c2cfeSHiroo HAYASHI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4954b89bebSMasatake YAMATO 50fa9c2cfeSHiroo HAYASHI .. TODO: Is Pygments using ctags? To be move moved to other section? 51fa9c2cfeSHiroo HAYASHI 52fa9c2cfeSHiroo HAYASHI Pygments is a generic syntax highlighter. 53*31eb7333SHiroo HAYASHI 54fa9c2cfeSHiroo HAYASHI It can utilize tags file 55fa9c2cfeSHiroo HAYASHI as input for making hyperlinks. However, Pygments just looks 5654b89bebSMasatake YAMATO at names and lines in tags file. scopes and kinds are not 57*31eb7333SHiroo HAYASHI used. See `here 58*31eb7333SHiroo HAYASHI <https://pygments-doc.readthedocs.io/en/latest/formatters/html.html>`_ for 59*31eb7333SHiroo HAYASHI details. 6054b89bebSMasatake YAMATO 61fa9c2cfeSHiroo HAYASHI As far as I (Masatake YAMATO) tried, using Pygments from ctags 62fa9c2cfeSHiroo HAYASHI is not so useful. There are critical gap between ctags and Pygments. 63fa9c2cfeSHiroo HAYASHI ctags focuses on identifiers. Pygments focuses on keywords. 6454b89bebSMasatake YAMATO 65fa9c2cfeSHiroo HAYASHI`GNU global <https://www.gnu.org/software/global/>`_ 66fa9c2cfeSHiroo HAYASHI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 67fa9c2cfeSHiroo HAYASHI 68fa9c2cfeSHiroo HAYASHI GNU global is a source code tagging system. 6954b89bebSMasatake YAMATO 702f7b41c1SK.Takata I (Masatake YAMATO) don't inspect this much but GNU global uses 7154b89bebSMasatake YAMATO ctags internally. 7254b89bebSMasatake YAMATO 73bccce6adSMasatake YAMATO A person at GNU global project proposed an extension for the tags file 74fa9c2cfeSHiroo HAYASHI format: See `this ticket 75fa9c2cfeSHiroo HAYASHI <https://sourceforge.net/p/ctags/mailman/message/30020186/>`_ for details. 7654b89bebSMasatake YAMATO 77*31eb7333SHiroo HAYASHI See also `'Source code reading' related sites 78*31eb7333SHiroo HAYASHI <https://www.gnu.org/software/global/links.html>`_. 79*31eb7333SHiroo HAYASHI 80fa9c2cfeSHiroo HAYASHI`GNU Source-highlight <https://www.gnu.org/software/src-highlite/>`_ 81fa9c2cfeSHiroo HAYASHI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8254b89bebSMasatake YAMATO 83fa9c2cfeSHiroo HAYASHI GNU Source-highlight produces a document with syntax highlighting. 84bccce6adSMasatake YAMATO 85fa9c2cfeSHiroo HAYASHI It can utilize tags file 86bccce6adSMasatake YAMATO as input for making hyperlinks. 87fa9c2cfeSHiroo HAYASHI See `Generating References 88fa9c2cfeSHiroo HAYASHI <https://www.gnu.org/software/src-highlite/source-highlight.html#Generating-References>`_ 89fa9c2cfeSHiroo HAYASHI section for details. 90bccce6adSMasatake YAMATO 912f7b41c1SK.Takata I (Masatake YAMATO) have not tried the feature yet. 9254b89bebSMasatake YAMATO 93fa9c2cfeSHiroo HAYASHI`OpenGrok <https://oracle.github.io/opengrok/>`_ 94fa9c2cfeSHiroo HAYASHI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 95fa9c2cfeSHiroo HAYASHI 96fa9c2cfeSHiroo HAYASHI OpenGrok is a fast and usable source 97fa9c2cfeSHiroo HAYASHI code search and cross reference engine. 9854b89bebSMasatake YAMATO 992f7b41c1SK.Takata I (Masatake YAMATO) don't inspect this much but OpenGrok uses 10054b89bebSMasatake YAMATO ctags internally. 10154b89bebSMasatake YAMATO 1022f7b41c1SK.TakataLinux kernel 103fa9c2cfeSHiroo HAYASHI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104bccce6adSMasatake YAMATO 105fa9c2cfeSHiroo HAYASHI See `linux/scripts/tags.sh <https://elixir.bootlin.com/linux/v5.10.2/source/scripts/tags.sh>`_ 106fa9c2cfeSHiroo HAYASHI of Linux kernel source tree. 107bccce6adSMasatake YAMATO It utilizes c parser to the utmost limit. 108fa9c2cfeSHiroo HAYASHI 109fa9c2cfeSHiroo HAYASHIOther interesting ctags repositories 110fa9c2cfeSHiroo HAYASHI---------------------------------------------------------------------- 111fa9c2cfeSHiroo HAYASHIThere are several interesting repo's with ctags around. These are 112fa9c2cfeSHiroo HAYASHIinteresting to integrate in the future. 113fa9c2cfeSHiroo HAYASHI 114fa9c2cfeSHiroo HAYASHI`VIM-Japan <https://github.com/vim-jp/ctags/>`_ 115fa9c2cfeSHiroo HAYASHI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116fa9c2cfeSHiroo HAYASHI 117fa9c2cfeSHiroo HAYASHIVIM-Japan have some interesting things, especially regarding encoding. 118fa9c2cfeSHiroo HAYASHI 119fa9c2cfeSHiroo HAYASHI`Anjuta <https://gitlab.gnome.org/GNOME/anjuta>`_ 120fa9c2cfeSHiroo HAYASHI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121fa9c2cfeSHiroo HAYASHI 122fa9c2cfeSHiroo HAYASHIAnjuta DevStudio is a versatile Integrated Development Environment (IDE) 123fa9c2cfeSHiroo HAYASHIon GNOME Desktop Environment and features a number of advanced 124fa9c2cfeSHiroo HAYASHIprogramming facilities. 125fa9c2cfeSHiroo HAYASHI 126bb84f88aSHiroo HAYASHIThey did not fork Exuberant Ctags, but they did 127fa9c2cfeSHiroo HAYASHInatively `include it in Anjuta <https://git.gnome.org/browse/anjuta/tree/plugins/symbol-db/anjuta-tags>`_. 128fa9c2cfeSHiroo HAYASHIThey have made several additions to 129fa9c2cfeSHiroo HAYASHItheir version of it including fairly extensive Vala language support. 130fa9c2cfeSHiroo HAYASHI 131fa9c2cfeSHiroo HAYASHI`Tagbar <https://github.com/majutsushi/tagbar/>`_ 132fa9c2cfeSHiroo HAYASHI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133fa9c2cfeSHiroo HAYASHI 134fa9c2cfeSHiroo HAYASHITagbar is a Vim plugin that provides an easy way to browse the tags of the 135fa9c2cfeSHiroo HAYASHIcurrent file and get an overview of its structure. 136fa9c2cfeSHiroo HAYASHI 137fa9c2cfeSHiroo HAYASHIThis is `a gold mine of optlibs <https://github.com/majutsushi/tagbar/wiki>`_. 138fa9c2cfeSHiroo HAYASHI 139fa9c2cfeSHiroo HAYASHI.. include:: tracking.rst 140