64 个稳定版本 (12 个主要版本)

13.0.0-alpha.5 2024 年 8 月 23 日
13.0.0-alpha.12024 年 3 月 4 日
13.0.0-alpha.02023 年 3 月 27 日
12.1.2 2021 年 1 月 12 日
1.2.1 2015 年 10 月 27 日

#3 in 可视化

Download history 2398/week @ 2024-05-03 2091/week @ 2024-05-10 2705/week @ 2024-05-17 2708/week @ 2024-05-24 2592/week @ 2024-05-31 2687/week @ 2024-06-07 2553/week @ 2024-06-14 2334/week @ 2024-06-21 2185/week @ 2024-06-28 2197/week @ 2024-07-05 2252/week @ 2024-07-12 2224/week @ 2024-07-19 2436/week @ 2024-07-26 2263/week @ 2024-08-02 2703/week @ 2024-08-09 3025/week @ 2024-08-16

每月下载量 10,751
用于 14 个 crate(13 个直接使用)

MIT/Apache

180KB
4K SLoC

时计 (时钟)

Mean Bean CI Help Wanted Lines Of Code Documentation Chocolatey Downloads dependency status Packaging status

时计是一个显示代码统计信息的程序。时计将显示文件数量、文件中的总行数以及按语言分组的代码、注释和空白。

翻译

示例

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 Language            Files        Lines         Code     Comments       Blanks
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 BASH                    4           49           30           10            9
 JSON                    1         1332         1332            0            0
 Shell                   1           49           38            1           10
 TOML                    2           77           64            4            9
───────────────────────────────────────────────────────────────────────────────
 Markdown                5         1355            0         1074          281
 |- JSON                 1           41           41            0            0
 |- Rust                 2           53           42            6            5
 |- Shell                1           22           18            0            4
 (Total)                           1471          101         1080          290
───────────────────────────────────────────────────────────────────────────────
 Rust                   19         3416         2840          116          460
 |- Markdown            12          351            5          295           51
 (Total)                           3767         2845          411          511
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 Total                  32         6745         4410         1506          829
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

API 文档

目录

功能

  • 时计非常快,能够在几秒钟内统计数百万行代码。查看 11.0.0 版本的发布 以了解时计的速度与其他工具相比如何。

  • 时计非常准确,正确处理多行注释、嵌套注释,并且不会统计字符串中的注释。提供准确的代码统计信息。

  • 时计支持广泛的编程语言,支持超过 150 种语言及其各种扩展。

  • 时计可以输出多种格式(CBORJSONYAML),允许时计的输出易于存储和重用。这些也可以与以前的运行统计信息结合使用。

  • 时计可在 MacLinuxWindows 上使用。查看 安装说明 了解如何在您的平台上获取时计。

  • 时计也是一个 ,允许您轻松将其与其他项目集成。

  • 时计提供带颜色和不带颜色的版本。将环境变量 NO_COLOR 设置为 1,它将以黑白显示。

安装

包管理器

Unix

# Alpine Linux (since 3.13)
apk add tokei
# Arch Linux
pacman -S tokei
# Cargo
cargo install tokei
# Conda
conda install -c conda-forge tokei
# Fedora
sudo dnf install tokei
# FreeBSD
pkg install tokei
# NetBSD
pkgin install tokei
# Nix/NixOS
nix-env -i tokei
# OpenSUSE
sudo zypper install tokei
# Void Linux
sudo xbps-install tokei

macOS

# Homebrew
brew install tokei
# MacPorts
sudo port selfupdate
sudo port install tokei

Windows

# Winget
winget install XAMPPRocky.tokei
# Scoop
scoop install tokei

手册

下载

您可以在 发布部分 下载预构建的二进制文件。

构建

您还可以从源代码构建和安装(需要最新的稳定版 Rust 编译器。)

cargo install --git https://github.com/XAMPPRocky/tokei.git tokei

配置

Tokei 有一个 配置文件,允许您更改默认行为。该文件可以命名为 tokei.toml.tokeirc。目前 tokei 会在这三个不同的位置查找此文件:当前目录、您的家目录以及您的配置目录。

如何使用时计

基本用法

这是使用 tokei 的基本方法。它将报告 ./foo 和所有子文件夹中的代码。

$ tokei ./foo

多个文件夹

要在同一调用中让 tokei 报告多个文件夹,只需添加逗号或一个空格后跟另一个路径即可。

$ tokei ./foo ./bar ./baz
$ tokei ./foo, ./bar, ./baz

排除文件夹

Tokei 会尊重所有 .gitignore.ignore 文件,并且您可以使用 --exclude 选项排除任何额外的文件。 --exclude 标志与 .gitignore 具有相同的语义。

$ tokei ./foo --exclude *.rs

排除路径也可以在 .tokeignore 文件中列出,使用与 .gitignore 文件相同的 语法

排序输出

默认情况下,tokei 按语言名称的字母顺序排序,但使用 --sort 选项,tokei 还可以按任何列排序。

空格,代码,注释,

$ tokei ./foo --sort code

输出文件统计信息

默认情况下,tokei 只输出语言的总量,但使用 --files 标志,tokei 还可以输出单个文件的统计信息。

$ tokei ./foo --files

输出到不同的格式

tokei 通常以设计用于终端的易于阅读的格式输出。还有使用 --output 选项的多种其他格式,这些格式对于将数据带入另一个程序更有用。

注意: 此版本的 tokei 是在没有序列化格式的情况下编译的,要启用序列化,请使用功能标志重新安装 tokei。

  ALL:
  cargo install tokei --features all

  CBOR:
  cargo install tokei --features cbor

  YAML:
  cargo install tokei --features yaml

当前支持的格式

  • JSON --output json
  • YAML --output yaml
  • CBOR --output cbor
$ tokei ./foo --output json

读取存储的格式

Tokei 还可以接受以前的结果中添加的输出格式,用于当前运行。Tokei 可以接受文件路径、作为选项值的格式或从 stdin。

$ tokei ./foo --input ./stats.json

选项

USAGE:
    tokei [FLAGS] [OPTIONS] [--] [input]...

FLAGS:
    -f, --files               Will print out statistics on individual files.
    -h, --help                Prints help information
        --hidden              Count hidden files.
    -l, --languages           Prints out supported languages and their extensions.
        --no-ignore           Don't respect ignore files (.gitignore, .ignore, etc.). This implies --no-ignore-parent,
                              --no-ignore-dot, and --no-ignore-vcs.
        --no-ignore-dot       Don't respect .ignore and .tokeignore files, including those in parent directories.
        --no-ignore-parent    Don't respect ignore files (.gitignore, .ignore, etc.) in parent directories.
        --no-ignore-vcs       Don't respect VCS ignore files (.gitignore, .hgignore, etc.), including those in parent
                              directories.
    -V, --version             Prints version information
    -v, --verbose             Set log output level:
                                          1: to show unknown file extensions,
                                          2: reserved for future debugging,
                                          3: enable file level trace. Not recommended on multiple files

OPTIONS:
    -c, --columns <columns>       Sets a strict column width of the output, only available for terminal output.
    -e, --exclude <exclude>...    Ignore all files & directories matching the pattern.
    -i, --input <file_input>      Gives statistics from a previous tokei run. Can be given a file path, or "stdin" to
                                  read from stdin.
    -o, --output <output>         Outputs Tokei in a specific format. Compile with additional features for more format
                                  support. [possible values: cbor, json, yaml]
    -s, --sort <sort>             Sort languages based on column [possible values: files, lines, blanks, code, comments]
    -t, --type <types>            Filters output by language type, separated by a comma. i.e. -t=Rust,Markdown

ARGS:
    <input>...    The path(s) to the file or directory to be counted.

徽章

Tokei 支持徽章。例如

[![](https://tokei.rs/b1/github/XAMPPRocky/tokei)](https://github.com/XAMPPRocky/tokei).

Tokei 的 URL 方案如下。

https://tokei.rs/b1/{host: values: github|gitlab}/{Repo Owner eg: XAMPPRocky}/{Repo name eg: tokei}

默认情况下,徽章将显示仓库的 LoC(代码行数),您也可以指定它显示不同的类别,通过使用 ?category= 查询字符串。它可以是 codeblanksfileslinescomments,例如显示总行数

[![](https://tokei.rs/b1/github/XAMPPRocky/tokei?category=lines)](https://github.com/XAMPPRocky/tokei).

在 tokei.rs 上托管的服务器代码位于 XAMPPRocky/tokei_rs

Docker 版本

Tokei 可在基于 alpine 的小型 Docker 镜像中找到,可通过 earthly 构建

earthly +docker

构建完成后,可以使用以下命令运行镜像:

docker run --rm -v /path/to/analyze:/src tokei .

或者,简单地分析当前文件夹(linux)

docker run --rm -v $(pwd):/src tokei .

支持的语言

如果您想添加一种语言到tokei,请随时提交pull request。语言定义在languages.json中,您可以在我们的CONTRIBUTING.md中找到如何添加和测试语言的说明。

Abap
ActionScript
Ada
Agda
Alex
Alloy
Asn1
Asp
AspNet
Assembly
AssemblyGAS
ATS
Autoconf
AutoHotKey
Automake
AWK
Bash
Batch
Bazel
Bean
Bicep
Bitbake
BrightScript
C
Cabal
Cassius
Ceylon
CHeader
Cil
Clojure
ClojureC
ClojureScript
CMake
Cobol
CoffeeScript
Cogent
ColdFusion
ColdFusionScript
Coq
Cpp
CppHeader
Crystal
CSharp
CShell
Css
Cuda
CUE
Cython
D
D2
DAML
Dart
DeviceTree
Dhall
Dockerfile
DotNetResource
DreamMaker
Dust
Ebuild
EdgeDB
Edn
Elisp
Elixir
Elm
Elvish
EmacsDevEnv
Emojicode
Erlang
Factor
FEN
Fish
FlatBuffers
ForgeConfig
Forth
FortranLegacy
FortranModern
FreeMarker
FSharp
Fstar
GDB
GdScript
GdShader
Gherkin
Gleam
Glsl
Go
Graphql
Groovy
Gwion
Hamlet
Handlebars
Happy
Hare
Haskell
Haxe
Hcl
Hex
hledger
Hlsl
HolyC
Html
Hy
Idris
Ini
IntelHex
Isabelle
Jai
Janet
Java
JavaScript
Jq
Json
Jsx
Julia
Julius
KakouneScript
Kotlin
Lean
Less
Lingua Franca
LinkerScript
Liquid
Lisp
LLVM
Logtalk
Lua
Lucius
Madlang
Max
Makefile
Markdown
Mdx
Meson
Mint
Mlatu
ModuleDef
MonkeyC
MoonScript
MsBuild
Mustache
Nim
Nix
NotQuitePerl
NuGetConfig
Nushell
ObjectiveC
ObjectiveCpp
OCaml
Odin
OpenSCAD
OpenQASM
Org
Oz
Pascal
Perl
Perl6
Pest
Php
Po
Poke
Polly
Pony
PostCss
PowerShell
Processing
Prolog
Protobuf
PRQL
PSL
PureScript
Python
Qcl
Qml
R
Racket
Rakefile
Razor
Renpy
ReStructuredText
RON
RPMSpecfile
Ruby
RubyHtml
Rust
Sass
Scala
Scheme
Scons
Sh
ShaderLab
Slang
Sml
Solidity
SpecmanE
Spice
Sql
SRecode
Stata
Stratego
Svelte
Svg
Swift
Swig
SystemVerilog
Tact
Tcl
Tex
Text
Thrift
Toml
Tsx
Twig
TypeScript
UMPL
UnrealDeveloperMarkdown
UnrealPlugin
UnrealProject
UnrealScript
UnrealShader
UnrealShaderHeader
UrWeb
UrWebProject
Vala
VB6
VBScript
Velocity
Verilog
VerilogArgsFile
Vhdl
VimScript
VisualBasic
VisualStudioProject
VisualStudioSolution
Vue
WebAssembly
Wolfram
Xaml
XcodeConfig
Xml
XSL
Xtend
Yaml
ZenCode
Zig
ZoKrates
Zsh

常见问题

tokei说我有很多D代码,但我知道没有D代码!

这可能是由于gcc生成了.d文件。直到D语言的人决定使用不同的文件扩展名之前,您始终可以使用-e --exclude标志来排除.d文件,如下所示

$ tokei . -e *.d

规范源

本仓库的官方源代码托管在GitHub上。如果您有GitHub账户,请在那里提交问题和pull request。

  • tokei-pie:将tokei的输出渲染为交互式的sunburst图表。

(C) 版权所有 2015,由XAMPPRocky和贡献者

查看贡献者图表以获取贡献者完整列表。

Tokei是在MIT许可和Apache许可(版本2.0)的条款下分发的。

有关更多信息,请参阅LICENCE-APACHELICENCE-MIT

依赖项

~14–26MB
~459K SLoC