Coq.ctags
Universal Ctags optlib parser for Coq
Install / Use
/learn @tomtomjhj/Coq.ctagsREADME
coq.ctags
coq.ctags is a Universal Ctags configuration ("optlib parser") for Coq.
Features
- Supports most built-in commands that define some identifiers.
- Supports unicode identifiers.
- Doesn't get confused by string, comments, attributes, etc.
Not supported (yet)
Axiom,Conjecture,Parameter,Hypothesis,VariableTheorem ... with,Record ... with(Inductive ... withandFixpoint ... withare supported)- Automatically generated identifiers
Build_XXXXXX_ind, ...
constructors_or_record- Notations
- basic notation
- tactic notation
- (Abbreviations are supported)
- ... ?
Caveat
- Assumes that parentheses/braces/brackets in terms are well-balanced.
- Notations that contain
;confuses record field parsing. This results in some unwanted tag entries.
Requirements
A recent version of Universal Ctags with +pcre2 feature is required.
$ ctags --list-features
#NAME DESCRIPTION
...
pcre2 has pcre2 regex engine
...
You may need to build Universal Ctags from source. In that case, to enable pcre2, run the configure script like so: ./configure --enable-pcre2.
Usage
$ ctags --options=/path/to/coq.ctags [options] [file(s)]
Some notable [options]:
-R: Recurse into directories-e: OutputTAGSfile for Emacs-V: Verbose output for debugging
Please see ctags(1) for more details.
Example usage with fd:
$ fd -e v -X ctags --options=/path/to/coq.ctags
Implementation
coq.ctags uses some experimental features of Universal Ctags.
- PCRE2
- Multiple regex table
- (Not used yet, but would be necessary for adding support for more Coq features) Optscript
Related work
etagsconfiguration from HoTT projectcoqtagsPerl script from Proof Generalcoqdocuses.globfiles to generate hyperlinks.
Related Skills
node-connect
350.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
