3 个版本 (稳定版)
1.1.0 | 2022年5月9日 |
---|---|
1.0.0 | 2021年9月19日 |
1.0.0-alpha.0 | 2021年9月6日 |
#835 in 开发工具
220KB
4.5K SLoC
file-expert
一个识别源代码文件的专家系统,类似于 GitHub/linguist,但用 Rust 编写。
用法
file-expert FILE…
程序还可以像这样读取来自 STDIN
的文件
git ls-files|file-expert
输出格式
每行输出包含文件名和文件类型,由制表符分隔。
输出示例
.gitignore Ignore List
.gitlint.yaml YAML
.gitmodules Git Config
COPYING.md Markdown
Makefile.am Makefile
README.md Markdown
configure.ac M4Sugar
extra-extensions-kb.pl Prolog
file-expert.pl Prolog
heuristics.yml YAML
languages.yml YAML
m4/BKG_DIRECTORY_VARIABLES.m4 M4Sugar
m4/BKG_ENABLE_XDG.m4 M4Sugar
m4/BKG_PACKAGE_INFO.m4 M4Sugar
run-tests Shell
transform.py Python
安装
构建依赖
- cargo
通过 Cargo
carg install file-expert
从源码安装
⒈ 检出此存储库 git clone https://github.com/kalkin/file-expert
.
⒉ 运行 cargo install --path .
以构建和安装它。
当前状态
在生产中。
版本控制
该项目使用 SemVer 进行版本控制。有关可用版本,请参阅此存储库的 标签。
历史
大约从2017年11月开始。2018年12月用 Nim 实现替代,因为此时 GitHub/linguist 启发式是一个巨大的 Ruby 番茄酱代码。
该项目直到2019年1月才存档。我的 Nim 实现被编译器更新破坏了。在修复它的时候,我发现 GitHub/linguist 启发式已经重构到一个 YAML 文件中。这为轻松自动生成启发式规则打开了可能。所以我又开始在 Prolog 实现上工作。
在2021年6月的 COVID-19 夏季,我足够熟练地用 Rust 重写了这个项目。主要好处是性能的大幅提升。
许可证
该项目根据 GNU Affero 通用公共许可证授权——有关详细信息,请参阅 COPYING.md 文件。
作者
由 Bahtiar `kalkin-` Gadimov 编写。
依赖项
~7-10MB
~197K SLoC