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 插件

MIT 许可证

260KB
5.5K SLoC

crates.io Crates.io

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:列出提交或日期

在键入 search 之后,您可以键入您想要搜索的函数名称。

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

如果您还想搜索特定日期、提交哈希或日期范围,可以使用 datecommit-hashdate-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后,您可以使用commitsdates指定要查看的列表类型。

然后按回车键执行命令,执行命令后,您将在查看窗格中看到列表结果。

查看窗格

要导航查看窗格,您需要处于查看模式。要从编辑模式进入查看模式,请按esc

要滚动查看窗格中的文件,可以使用upkdownj键。

要移动到下一个或上一个提交,可以使用rightllefth键。

要浏览提交中的文件,可以使用shift + rightlshift + lefth键。

顶部将显示提交哈希值、日期和时间。以下为文件名。

文件将显示您搜索的函数和行号。

状态窗格

状态窗格用于显示程序的状态。

有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