Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matt-snider/ctags-query
A tool to query ctags file with simple boolean expressions.
https://github.com/matt-snider/ctags-query
boolean-expression ctags parse query search
Last synced: 27 days ago
JSON representation
A tool to query ctags file with simple boolean expressions.
- Host: GitHub
- URL: https://github.com/matt-snider/ctags-query
- Owner: matt-snider
- Created: 2019-02-16T11:19:08.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-09-23T18:32:23.000Z (over 4 years ago)
- Last Synced: 2024-12-20T16:58:10.871Z (about 1 month ago)
- Topics: boolean-expression, ctags, parse, query, search
- Language: Rust
- Homepage:
- Size: 25.4 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ctags-query
A tool to query ctags with simple boolean expressions.
For example, to find locations tagged with `foo`, `bar`, but _not_ `buzz`:
```sh
$ ctags-query 'foo&bar&!buzz'
path/to/fileX:10
path/to/fileY:50
path/to/fileZ:165
```I'm not sure how useful this is for a regular ctags file, because that wasn't my [motivation](#Motivation), but hopefully it can be useful for other uses as well.
## Motivation
[Vimwiki](https://github.com/vimwiki/vimwiki) is a fantastic application for keeping notes. In my notes, I like to leverage tags as much as possible, but until now, have only been able to query a single tag at once with `:VimwikiSearchTags` or `:FzfTags`. Inspired by [orgmode's tag search](https://orgmode.org/manual/Matching-tags-and-properties.html#Match-syntax), I set out to build something similar to help me find stuff in my vimwiki notes.
This repository is the actual implementation of that functionality, while the vim specific code lives at [vim-tagquery](https://github.com/matt-snider/vim-tagquery).
## Releasing
Currently I do this sort of manually:
* Update version in Cargo.toml, rebuild, and commit ("Bump version to x.y.z")
* Run script to tag and build binaries: `./prep-release.sh x.y.z`
* Push: `git push && git push --tags`
* Within GitHub, make a new release and upload the binaries in `release-tmp/`