1 个不稳定版本

0.2.1 2020年8月27日

#12 in #loc

GPL-3.0-or-later

72KB
1.5K SLoC

rlocc

只是一个速度极快的LOC计数器。

Build Status (master) Build Status (develop) GitHub

它工作(而且非常快)但尚未完成。您可以通过以下已知问题来确保您想使用它。

免责声明

这是我第一次用Rust做的项目;在阅读Rust Book时开发的!对于可能滥用语言,我向Rust社区表示诚挚的歉意;在我编写rlocc的时候,我还在与借用检查器斗争 :P

内容

构建

假设Rust已经安装,可以使用提供的Makefile构建rlocc

$ make

它通常使用cargo

$ RUSTFLAGS="-Ctarget-cpu=native" cargo build --release

用法

尽管rlocc被开发为一个库,但目前它主要通过附带的二进制文件使用。换句话说,它的API并不是为在提供的二进制文件之外使用而精心设计的。

作为一个命令行工具,rlocc非常简单易用:它接收任何数量的文件或目录名称作为命令行输入,并遍历它们进行计数。

例如,要统计file1../file3以及~/dir2下的所有文件,可以发出以下命令:

$ rlocc file1 ~/dir2 ../file3

目前不支持任何命令行标志。

平台

到目前为止,rlocc仅在linux/amd64上测试过,使用Rust 1.42.0或更高版本。

支持的文件类型

目前rlocc支持76种文件类型。它主要通过文件名扩展名猜测文件类型,只有少数例外(对于Makefile、Dockerfile等)。

支持的所有文件类型的详尽列表

  • Ada
  • 汇编
  • Autoconf
  • AWK
  • 批处理
  • C
  • C++
  • C/C++头文件
  • C#
  • Clojure
  • CMake
  • COBOL
  • CSV
  • CSS
  • D
  • Dart
  • Delphi
  • Dockerfile
  • Eiffel
  • Elm
  • Elixir
  • Erlang
  • F#
  • .gitignore
  • Go
  • Haskell
  • HTML
  • Java
  • JavaScript
  • JSON
  • Julia
  • Jupyter
  • Kotlin
  • 许可文件
  • Lisp
  • Lua
  • Makefile
  • MAL (MonetDB)
  • Markdown
  • Matlab
  • Nim
  • Nix
  • OCaml
  • OpenCL
  • Pascal
  • Perl
  • PHP
  • 纯文本
  • Pony
  • PowerShell
  • Protocol Buffers
  • Python
  • R
  • ReStructuredText
  • Ruby
  • Rust
  • Scala
  • Scheme
  • Sed
  • Shell
  • SML
  • Solidity
  • SQL
  • Swift
  • Systemd
  • TeX
  • Tcl
  • TOML
  • TypeScript
  • V
  • Vala
  • VimL
  • WebAssembly(文本格式)
  • YAML
  • XML
  • Zig

已知问题 & TODOs

  • TODO: 在crates.io上发布时,需要提供适当的代码和安装文档。

  • TODO: 为二进制文件提供命令行选项。

  • TODO: 目前,当一个多行注释的开始标记出现在字符串内(任何同时支持多行注释和字符串的受支持语言中),rlocc无法处理它,并且该整个文件的LOC计数结果很可能计算错误。

  • 嵌套注释未处理。(我不认为我会修复这个问题,因为它并不是我真正关心的用例。)

依赖项

~545KB