Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Zsh Snap | 942 | 14 days ago | 7 | mit | Shell | |||||
⚡️ Znap! Fast, easy-to-use tools for Zsh dotfiles & plugins, plus git repos | ||||||||||
Ptags | 113 | 16 hours ago | 18 | May 10, 2021 | 1 | mit | Rust | |||
A parallel universal-ctags wrapper for git repository | ||||||||||
Nbodykit | 93 | 3 | 9 months ago | 35 | September 08, 2020 | 79 | gpl-3.0 | Python | ||
Analysis kit for large-scale structure datasets, the massively parallel way | ||||||||||
Ci Task Runner | 79 | 5 years ago | 1 | mit | JavaScript | |||||
大型代码仓库按需构建解决方案 | ||||||||||
Easyexcel | 42 | 4 years ago | 3 | June 20, 2019 | apache-2.0 | Java | ||||
简单、高效、易扩展,且支持百万数据读写的ExcelUtils | ||||||||||
Gitall.rs | 21 | a year ago | 9 | December 12, 2021 | 2 | other | Rust | |||
Run Git commands in all subdirectories really fast | ||||||||||
Zbx2git | 17 | 5 years ago | 1 | other | Ruby | |||||
Zabbix Configuration Versioning Manager | ||||||||||
Git Pisect | 16 | 3 years ago | mit | Perl | ||||||
Parallel regression finder for Git | ||||||||||
Steer | 12 | 6 years ago | mit | Go | ||||||
Deploy concurrently to FTP and SFTP using Git | ||||||||||
Git Parallel | 11 | 2 years ago | Shell | |||||||
Run the command in parallel much to multiple repositories |
A parallel universal-ctags wrapper for git repository
ptags is a universal-ctags wrapper to have the following features.
.gitignore
support )ctags
command in parallel for acceleration
Download from release page, and extract to the directory in PATH.
You can install from AUR.
If you use yay
, you can install like below:
yay -S ptags // latest tagged version
yay -S ptags-git // current master of git repo
You can install by cargo.
cargo install ptags
ptags uses ctags
and git
command internally.
The tested version is below.
Command | Version |
---|---|
ctags |
Universal Ctags 0.0.0(f9e6e3c1) / Exuberant Ctags 5.8 |
git |
git version 2.14.2 |
git-lfs |
git-lfs/2.3.3 |
ptags 0.1.12-pre
[email protected]
A parallel universal-ctags wrapper for git repository
USAGE:
ptags [FLAGS] [OPTIONS] [--] [DIR]
FLAGS:
--config Generate configuration sample file
--exclude-lfs Exclude git-lfs tracked files
-h, --help Prints help information
--include-ignored Include ignored files
--include-submodule Include submodule files
--include-untracked Include untracked files
-s, --stat Show statistics
--unsorted Disable tags sort
--validate-utf8 Validate UTF8 sequence of tag file
-V, --version Prints version information
-v, --verbose Verbose mode
OPTIONS:
--bin-ctags <bin_ctags> Path to ctags binary [default: ctags]
--bin-git <bin_git> Path to git binary [default: git]
--completion <completion> Generate shell completion file [possible values: bash, fish,
zsh, powershell]
-e, --exclude <exclude>... Glob pattern of exclude file ( ex. --exclude '*.rs' )
-c, --opt-ctags <opt_ctags>... Options passed to ctags
-g, --opt-git <opt_git>... Options passed to git
--opt-git-lfs <opt_git_lfs>... Options passed to git-lfs
-f, --file <output> Output filename ( filename '-' means output to stdout ) [default: tags]
-t, --thread <thread> Number of threads [default: 8]
ARGS:
<DIR> Search directory [default: .]
You can pass options to ctags
by-c
/--ctags_opt
option like below.
ptags -c --links=no -c --languages=Rust
Searched file types per options are below.
--include-submodule
and --include_untracked
are exclusive.
This is the restriction of git ls-files
.
Any include/exclude options without the above combination can be used simultaneously.
File type | Default | --exclude-lfs | --include-ignored | --include-submodule | --include-untracked |
---|---|---|---|---|---|
tracked | o | o | o | o | o |
untracked | x | x | x | x | o |
ignored | x | x | o | x | x |
lfs tracked | o | x | o | o | o |
in submodules | x | x | x | o | x |
You can override any default option by ~/.ptags.toml
like below.
The complete example of ~/.ptags.toml
can be generated by --config
option.
thread = 16
bin_ctags = "ctags2"
bin_git = "git2"
Name | Repository | Revision | Files | Size[GB] |
---|---|---|---|---|
source0 | neovim/neovim | f5b0f5e17 | 2370 | 0.1 |
source1 | llvm-mirror/llvm | ddf9edb4020 | 29670 | 1.2 |
source2 | torvalds/linux | 071e31e254e0 | 52998 | 2.2 |
source3 | chromium/chromium | d79c68510b7e | 293205 | 13 |
ptags is up to x5 faster than universal-ctags.
Command | Version | source0 | source1 | source2 | source3 |
---|---|---|---|---|---|
ctags -R |
Universal Ctags 0.0.0(f9e6e3c1) | 0.41s ( x1 ) | 3.42s ( x1 ) | 23.64s ( x1 ) | 32.23 ( x1 ) |
ptags -t 16 |
ptags 0.1.4 | 0.13s ( x3.15 ) | 0.58s ( x5.90 ) | 4.24s ( x5.58 ) | 7.27s ( x4.43 ) |