Skip to content

Latest commit

 

History

History
97 lines (66 loc) · 3.04 KB

other-projects.rst

File metadata and controls

97 lines (66 loc) · 3.04 KB

Relationship between other projects

Table of contents

Geany maintains their own tagging engine derived from ctags. We are looking for the way to merge or share the source code each other.

Repo

https://github.com/geany/geany/tree/master/tagmanager/ctags

Geany has created a library out of ctags

universal-ctags#63

Their language parsers have many improvements to various parsers. Changes known by devs worth backporting:

  • HTML reads <h1><h2><h3> tags
  • Make has support for targets
  • Various fixes for D parser (c.c), but currently the code diverges from ours to some extent.

They have these additional language parsers:

These changes have been merged:

  • Fix regex callback match count - universal-ctags#104
  • SQL tags are stored with scopes instead of "tablename.field" - universal-ctags#100
  • Some fixes for D parser
  • C++11's enum class/struct support

pygments

pygments can generate html files. It can utilize tags file as input for making hyperlinks. However, pygments just looks at names and lines in tags file. scopes and kinds are not used.

As far as I(Masatake YAMATO) tried, using pygments from ctags is not so useful. There are critical gap between ctags and pygments. ctags focuses on identifiers. pygments focuses on keywords.

GNU global

I(Masatake YAMATO) don't inspect this much but GNU global uses ctags internally.

A person at GNU global project proposed an extension for the tags file format:

http://sourceforge.net/p/ctags/mailman/message/30020186/

GNU source highlight

highlight can generate html files. It can utilize tags file as input for making hyperlinks. http://www.gnu.org/software/src-highlite/source-highlight.html#Generating-References

I(Masatake YAMATO) have not tried the feature yet.

OpenGrok

I(Masatake YAMATO) don't inspect this much but OpenGrok uses ctags internally.

Linux kernel

See linux/scripts/tags.sh of Linux kernel source tree. It utilizes c parser to the utmost limit.