{"id":13437544,"url":"https://github.com/dan-t/rusty-tags","last_synced_at":"2025-04-08T09:09:37.248Z","repository":{"id":24289961,"uuid":"27684957","full_name":"dan-t/rusty-tags","owner":"dan-t","description":"Create ctags/etags for a cargo project","archived":false,"fork":false,"pushed_at":"2024-03-05T18:28:02.000Z","size":390,"stargazers_count":417,"open_issues_count":3,"forks_count":31,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-01T08:31:43.868Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dan-t.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-12-07T21:14:30.000Z","updated_at":"2025-03-20T21:52:11.000Z","dependencies_parsed_at":"2024-06-19T02:54:45.575Z","dependency_job_id":"56672839-1360-4ae5-b679-8073aa7d7f3b","html_url":"https://github.com/dan-t/rusty-tags","commit_stats":{"total_commits":380,"total_committers":20,"mean_commits":19.0,"dds":0.08684210526315794,"last_synced_commit":"cc1112de809cb04f17abb7f5ca05fab5f9376663"},"previous_names":[],"tags_count":92,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-t%2Frusty-tags","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-t%2Frusty-tags/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-t%2Frusty-tags/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-t%2Frusty-tags/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dan-t","download_url":"https://codeload.github.com/dan-t/rusty-tags/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247809964,"owners_count":20999816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T03:00:58.167Z","updated_at":"2025-04-08T09:09:37.218Z","avatar_url":"https://github.com/dan-t.png","language":"Rust","funding_links":[],"categories":["Development tools","Rust","开发工具 Development tools","开发工具"],"sub_categories":["Web Servers","Web服务器 Web Servers","Operating systems","Web 服务器","Workflow Automation","网络服务端 Web Servers"],"readme":"[![Build Status](https://travis-ci.org/dan-t/rusty-tags.svg?branch=master)](https://travis-ci.org/dan-t/rusty-tags)\n[![](http://meritbadge.herokuapp.com/rusty-tags)](https://crates.io/crates/rusty-tags)\n\nrusty-tags\n==========\n\nA command line tool that creates [tags](https://en.wikipedia.org/wiki/Ctags) - for source code navigation by\nusing [ctags](\u003chttp://ctags.sourceforge.net\u003e) - for a [cargo](\u003chttps://github.com/rust-lang/cargo\u003e) project, all\nof its direct and indirect dependencies and the rust standard library.\n\nPrerequisites\n=============\n\n* [ctags](\u003chttp://ctags.sourceforge.net\u003e) installed, needs a version with the `--recurse` flag\n\nOn a linux system the package is most likely called `exuberant-ctags`.\n\nOtherwise you can get the sources directly from [here](http://ctags.sourceforge.net/) or use the newer and alternative\n[universal-ctags](https://github.com/universal-ctags/ctags).\n\nOnly `universal-ctags` will add tags for struct fields and enum variants.\n\nInstallation\n============\n\n    $ cargo install rusty-tags\n\nThe build binary will be located at `~/.cargo/bin/rusty-tags`.\n\nUsage\n=====\n\nJust calling `rusty-tags vi` or `rusty-tags emacs` anywhere inside\nof the cargo project should just work.\n\nAfter its run a `rusty-tags.vi / rusty-tags.emacs` file should be beside of the\n`Cargo.toml` file.\n\nAdditionally every dependency gets a tags file at its source directory, so\njumping further to its dependencies is possible.\n\nRust Standard Library Support\n=============================\n\nTags for the standard library are created if the rust source is supplied by\ndefining the environment variable `RUST_SRC_PATH`.\n\nThese tags aren't automatically added to the tags of the cargo project and have\nto be added manually with the path `$RUST_SRC_PATH/rusty-tags.vi` or\n`$RUST_SRC_PATH/rusty-tags.emacs`.\n\nIf you're using [rustup](\u003chttps://www.rustup.rs/\u003e) you can get the\nrust source of the currently used compiler version by calling:\n\n    $ rustup component add rust-src\n\nAnd then setting `RUST_SRC_PATH` inside of e.g. `~/.bashrc`.\n\nFor `rustc \u003e= 1.47.0`:\n\n    $ export RUST_SRC_PATH=$(rustc --print sysroot)/lib/rustlib/src/rust/library/\n\nFor `rustc \u003c 1.47.0`:\n\n    $ export RUST_SRC_PATH=$(rustc --print sysroot)/lib/rustlib/src/rust/src/\n\nConfiguration\n=============\n\nThe current supported configuration at `~/.rusty-tags/config.toml` (defaults displayed):\n\n    # the file name used for vi tags\n    vi_tags = \"rusty-tags.vi\"\n\n    # the file name used for emacs tags\n    emacs_tags = \"rusty-tags.emacs\"\n\n    # the name or path to the ctags executable, by default executables with names\n    # are searched in the following order: \"ctags\", \"exuberant-ctags\", \"exctags\", \"universal-ctags\", \"uctags\"\n    ctags_exe = \"\"\n\n    # options given to the ctags executable\n    ctags_options = \"\"\n\nVim Configuration\n=================\n\nPut this into your `~/.vimrc` file:\n\n    autocmd BufRead *.rs :setlocal tags=./rusty-tags.vi;/\n\nOr if you've supplied the rust source code by defining `RUST_SRC_PATH`:\n\n    autocmd BufRead *.rs :setlocal tags=./rusty-tags.vi;/,$RUST_SRC_PATH/rusty-tags.vi\n\nAnd:\n\n    autocmd BufWritePost *.rs :silent! exec \"!rusty-tags vi --quiet --start-dir=\" . expand('%:p:h') . \"\u0026\" | redraw!\n\nEmacs Configuration\n===================\n\nInstall [counsel-etags](https://github.com/redguardtoo/counsel-etags).\n\nCreate file `.dir-locals.el` in rust project root (please note the line to set `counsel-etags-extra-tags-files` is optional):\n\n    ((nil . ((counsel-etags-update-tags-backend . (lambda (src-dir) (shell-command \"rusty-tags emacs\")))\n             (counsel-etags-extra-tags-files . (\"~/third-party-lib/rusty-tags.emacs\" \"$RUST_SRC_PATH/rusty-tags.emacs\"))\n             (counsel-etags-tags-file-name . \"rusty-tags.emacs\"))))\n\nUse `M-x counsel-etags-find-tag-at-point` for code navigation.\n\n`counsel-etags` will automatically detect and update tags file in project root. So no extra setup is required.\n\nSublime Configuration\n=====================\n\nThe plugin [CTags](https://github.com/SublimeText/CTags) uses vi style tags, so\ncalling `rusty-tags vi` should work.\n\nBy default it expects tag files with the name `.tags`, which can be set\nin `~/.rusty-tags/config.toml`:\n\n    vi_tags = \".tags\"\n\nOr by calling `rusty-tags vi --output=\".tags\"`.\n\nMacOS Issues\n============\n\nMac OS users may encounter problems with the execution of `ctags` because the shipped version\nof this program does not support the recursive flag. See [this posting](\u003chttps://www.gmarik.info/blog/2010/ctags-on-osx/\u003e)\nfor how to install a working version with homebrew.\n\nCygwin/Msys Issues\n==================\n\nIf you're running [Cygwin](\u003chttps://www.cygwin.com/\u003e) or [Msys](\u003chttp://www.mingw.org/wiki/MSYS\u003e) under Windows,\nyou might have to set the environment variable `$CARGO_HOME` explicitly. Otherwise you might get errors\nwhen the tags files are moved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan-t%2Frusty-tags","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdan-t%2Frusty-tags","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan-t%2Frusty-tags/lists"}