#duplicate #scanner #finder #code

app duplicate_code

一个用于解析目录并扫描其中所有文件的工具,以找到跨文件重复的代码段。

9 个版本 (破坏性更新)

0.8.1 2021年5月7日
0.8.0 2020年12月29日
0.7.0 2020年12月27日

#1301开发工具

AGPL-3.0

36KB
904

重复代码

crates.io pipeline status Conventional Commits License: AGPL v3

一个用于解析目录并扫描其中所有文件的工具,以找到跨文件重复的代码段。

内容

用法

Duplicate Code 会扫描当前目录及其所有子目录以找到每个文件,然后每个文件与其他所有文件进行比较,以找到跨文件的重复代码段。

用法 - 额外标志

标志
--ignore-line-regex 忽略与这些提供的正则表达式匹配的每一行。例如,要忽略Java代码中的导入和包声明,请使用 --ignore-line-regex '^import ' '^package '
--ignore-file-regex 忽略与这些提供的正则表达式匹配的每一文件。例如,要忽略所有XML和CSV文件,请使用 --ignore-file-regex '[.]xml$' '[.]csv$'
--minimum-successive-lines 必须匹配的最小连续行数,才能被认为是重复的。默认值为3。
--json 以单行JSON格式输出所有重复信息。因此,它很容易被其他程序存储、摄取和处理。

用法 - 记录

使用 pretty_env_loggerlog 提供日志记录。可以使用环境变量 RUST_LOG 来设置日志级别。有关更详细的文档,请参阅 https://crates.io/crates/pretty_env_logger

通过本地仓库编译

在本地检查代码仓库,切换到仓库目录,然后通过 cargo 进行构建。使用 --release 标志可以生成优化的二进制文件,但编译时间会更长。

git clone [email protected]:DeveloperC/duplicate_code.git
cd duplicate_code/
cargo build --release

编译的二进制文件位于 target/release/duplicate_code

通过Cargo编译

Cargo 是 Rust 的包管理器,使用 install 子命令从 crates.io 提取软件包,然后在本地编译二进制文件。 cargo install 将生成的二进制文件放置在 $HOME/.cargo/bin/duplicate_code

cargo install duplicate_code

问题/功能请求

要报告错误/问题或请求新功能,请使用 https://gitlab.com/DeveloperC/duplicate_code/-/issues

依赖项

~6–16MB
~202K SLoC