5 个版本
0.2.1 | 2022 年 9 月 28 日 |
---|---|
0.2.0 | 2022 年 9 月 22 日 |
0.1.2 | 2022 年 9 月 6 日 |
0.1.1 | 2022 年 9 月 5 日 |
0.1.0 | 2022 年 8 月 17 日 |
#640 in Cargo 插件
260KB
5.5K SLoC
cargo 功能历史
- 需要至少 15*15 终端大小
A cargo frontend for the git function history library.
安装
cargo install cargo-function-history
如果你不想使用并行
cargo install cargo-function-history --no-default-features
用法
cargofunction-history<function-name<:filename>> <选项>
或 cargo-function-history <function-name<:filename>> <options>
选项
-
--help
: 显示帮助信息 -
--filter-date <date>
: 只过滤到这个日期 -
--filter-commit-hash <hash>
: 只过滤到这个提交哈希 -
--filter-date-range=<date1>:<date2>
: 过滤到指定的日期范围 -
--file-absolute
: 在函数名后面指定的文件名中搜索确切的文件 -
--file-relative
: 在函数名后面指定的文件名后搜索任何文件
使用 tui
运行命令后,将弹出 tui 界面。

即使你通过运行的命令指定了搜索,你也看不到函数历史结果,因为它仍在加载。加载完成后,你将看到函数历史结果。
现在你已经打开了应用程序,你将看到它分为 3 个部分
-
顶部区域是查看面板。它显示函数历史结果。
-
中间区域是命令面板。在这里输入命令,按回车键后执行。
-
底部区域是状态面板。它显示应用程序的状态。
command-pane

尽管查看面板在最前面,但通常您必须先输入命令才能使用查看面板。
要进入编辑模式,请按 :
,然后您将看到命令面板变为命令输入模式,并在输入栏中显示带有黄色文本的光标。

要退出编辑模式,请按 esc
。
如果您的命令太长而无法在屏幕上显示,可以使用左右箭头键滚动命令面板。
您还可以使用上箭头和下箭头键滚动通过您的命令历史。
每个命令都以三种命令类型之一开头
-
search
:搜索一个函数 -
filter
:过滤当前搜索 -
list
:列出提交或日期
command-pane-search
在键入 search
之后,您可以键入您想要搜索的函数名称。

如果您只想搜索特定文件,首先使用 absolute
或 relative
指定是绝对搜索还是相对搜索,然后是文件名;如果您想搜索包含目录的任何文件,可以执行 directory
目录名称。

如果您还想搜索特定日期、提交哈希或日期范围,可以使用 date
、commit-hash
或 date-range
指定,然后是日期、提交哈希或日期范围(对于日期范围,每个日期之间用空格分隔)。

如果只需要搜索特定日期、提交哈希或日期范围,可以省略文件名和文件类型。

然后按回车键执行命令,执行命令后,您将在查看面板中看到搜索结果。
command-pane-filter
在运行搜索(或其他过滤)后,键入 filter
,允许您构建一个命令来过滤当前输出。
选项取决于您是否已经根据例如日期进行过滤,那么您将无法根据日期范围或提交哈希进行过滤。
所有选项如下
-
commit
:此选项将输出过滤到只有带有指定提交哈希的提交 -
date
:此选项将输出过滤到只有日期最接近指定日期的提交 -
date-range
:此选项将输出过滤到只有两个空格分隔日期之间的提交

parent
:此选项将输出过滤到包含您在搜索中指定的函数的提交,其中在parent
关键词后指定父函数line-range
:此选项将输出过滤到包含您在搜索中指定的函数的提交,其中在line-range
关键词后指定行范围

block
:此选项将过滤输出,只显示包含您在搜索中指定的函数的提交,这些函数位于block
关键字之后的指定块中。有效的块类型有extern
impl
trait

-
file-absolute
:此选项将过滤输出,只显示包含您在搜索中指定的确切文件的提交,这些文件位于file-absolute
关键字之后的指定文件中 -
file-relative
:此选项将过滤输出,只显示包含您在搜索中指定的文件(以指定文件结尾的任何文件)的提交,这些文件位于file-relative
关键字之后的指定文件中 -
directory
:此选项将过滤输出,只显示包含您在搜索中指定的目录(包含该目录的任何文件)的提交,这些文件位于directory
关键字之后的指定目录中
输入命令后,按回车键执行命令,执行命令后,您将在查看窗格中看到搜索结果。
命令窗格列表
输入list
后,您可以使用commits
或dates
指定要查看的列表类型。

然后按回车键执行命令,执行命令后,您将在查看窗格中看到列表结果。
查看窗格
要导航查看窗格,您需要处于查看模式。要从编辑模式进入查看模式,请按esc
。

要滚动查看窗格中的文件,可以使用up
或k
和down
或j
键。
要移动到下一个或上一个提交,可以使用right
或l
和left
或h
键。
要浏览提交中的文件,可以使用shift
+ right
或l
和shift
+ left
或h
键。
顶部将显示提交哈希值、日期和时间。以下为文件名。
文件将显示您搜索的函数和行号。
状态窗格
状态窗格用于显示程序的状态。
有4种不同的状态类型
error
:此状态类型用于显示程序执行过程中发生的错误

warning
:此状态类型用于显示程序执行过程中发生的警告ok
:此状态类型用于显示命令已成功执行

loading
:此状态类型用于显示程序正在加载
注意
指定日期时,请使用RFC 2822格式,例如:Mon, 15 Feb 2021 15:04:05 +0000,请将空格替换为下划线,例如:
Mon_15_Feb_2021_15:04:05_+0000
。
依赖
~10–21MB
~276K SLoC