# ttags
ttags generates ctags using [Tree-sitter](https://github.com/tree-sitter/tree-sitter).
### Installation
##### macOS and Linux
```bash
cargo install ttags
```
Binaries are also available on the releases page of the repo.
Download the tar file, and place the executable in your path.
##### From source
```bash
git clone https://github.com/npezza93/ttags
cd ttags
cargo build --release
./target/release/ttags $(git ls-files)
```
### Usage
Give a list of file paths and/or directories to ttags to parse and generate.
```bash
ttags $(git ls-files)
```
#### Options
- `-a` or `--apend` - Will keep your tag file in tact and only update the tags
for the files passed.
- `-r` or `--tag-relative` - Make paths outputed in the tags file be relative to the
current working directory (i.e. where you called `ttags`)? By default, the tag
path is relative to the `tag-file` location.
- `-f` or `--tag-file=file` - Path to the file where tags should be written. If
`-` is passed, tags are outputted to stdout.
- `lsp` - Starts an LSP server that updates the tags for a file when the file is
saved
### Supported languages
- [x] Haskell
- [x] JavaScript
- [x] Nix
- [x] Ruby
- [x] Rust
- [x] Swift