RUSTY-TAGS(1)

πŸ¦‹ RUSTY-TAGS(1) πŸ¦‹

okay so bestie, gather round, because this is the general commands manual page for rusty-tags and it's genuinely one of my faves πŸ’– it's giving "I make your code navigable" and honestly? iconic.


✨ NAME ✨

rusty-tags β€” creates ctags/etags for a cargo project πŸŽ€


✨ SYNOPSIS ✨

rusty-tags [options] tags_kind

🌸 DESCRIPTION 🌸

So basically, rusty-tags creates tags for source code navigation using ctags, and it does this for a cargo(1) project, all of its direct and indirect dependencies, and the Rust standard library. no cap. 🫢

You can run it literally anywhere inside a cargo project, she's flexible like that.

rusty-tags creates a rusty-tags.vi file (if tags_kind is vi) or a rusty-tags.emacs file (if tags_kind is emacs) right beside the Cargo.toml file. πŸ’…

Tags are also generated for every dependency. and if a dependency reexports parts of its own dependencies? then those reexported parts are also contained in the tags file of that dependency. we love a thorough queen ✨

Tags for the standard library are created if the path to the Rust source is supplied by defining the environment variable RUST_SRC_PATH. that's the vibe check right there πŸ‘‘


πŸ’… OPTIONS πŸ’…

  • -f, --force-recreate β€” forces the recreation of the tags of all dependencies and the Rust standard library. it's giving "start over, we're doing this fresh" πŸ”₯
  • -h, --help β€” prints help information.
  • -n, --num-threads=num β€” sets the number of threads used for the tags creation. default is the number of available physical cpus πŸ’€
  • -o, --omit-deps β€” do not generate tags for dependencies. (skipping the deps, bold move but okay)
  • -O, --output=filename β€” sets the name of the output tags file. default: rusty-tags.vi if tags_kind is vi, or rusty-tags.emacs if tags_kind is emacs.
  • -q, --quiet β€” do not output anything but errors. 🀫
  • -s, --start-dir=dir β€” sets the start directory for the search of the Cargo.toml file. default is the current working directory.
  • -V, --version β€” prints version information.
  • -v, --verbose β€” enable verbose output about all operations. she's telling you everything πŸ—£οΈ

🌈 CONFIGURATION 🌈

πŸŽ€ rusty-tags configuration πŸŽ€

rusty-tags reads the configuration file ~/.rusty-tags/config.toml. it supports these settings:

  • vi_tags β€” the file name used for vi tags. default: rusty-tags.vi.
  • emacs_tags β€” the file name used for emacs tags. default: rusty-tags.emacs.
  • ctags_exe β€” the name or path to the ctags(1) executable. default: ctags, exuberant-ctags, exctags, universal-ctags, uctags are tried in that order. (yes, in that order, bestie, don't shuffle them πŸ™ˆ)
  • ctags_options β€” the options given to the ctags(1) executable. default: none.

🧚 vim configuration 🧚

To use the generated tag files with vim, add the following to your vimrc file:

autocmd BufRead *.rs :setlocal tags=./rusty-tags.vi;/
autocmd BufWritePost *.rs :silent! exec "!rusty-tags vi --quiet --start-dir=" . expand('%:p:h') . "&" | redraw!

The first line ensures that vim will automatically search for a rusty-tags.vi file upwards the directory hierarchy. this setting is important if you want to jump to dependencies and then further jump to their dependencies. literally essential, don't skip it 🫢

The second line ensures that your project's tag file gets updated if a file is written. auto-refresh? we stan ⭐

If you have set the path to the Rust source code in the RUST_SRC_PATH environment variable, use this setting instead:

autocmd BufRead *.rs :setlocal tags=./rusty-tags.vi;/,$RUST_SRC_PATH/rusty-tags.vi

πŸ“ ENVIRONMENT πŸ“

  • RUST_SRC_PATH β€” the path to the source code of the Rust standard library to generate tags for.

πŸ’œ FILES πŸ’œ

  • ~/.rusty-tags/config.toml β€” the configuration file for rusty-tags (see the Configuration section above, bestie, it's all there).

⭐ SEE ALSO ⭐

ctags(1)


and that's the whole page, no notes πŸ’– this beauty is from the general commands manual, dated 2019-01-25, and honestly it aged like fine wine. go make some tags, you main character πŸŽ€βœ¨πŸ¦‹πŸ‘‘

πŸ“¦ where this page comes from