mrrrp mrrrp brrr formal verification go brrr
  • Rust 71.2%
  • YAML 17.9%
  • Ruby 4.7%
  • Text 3.5%
  • PowerShell 1.1%
  • Other 1.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-09 14:02:19 +00:00
.devcontainer Move language definitions to a separate crate (#630) 2026-01-01 18:40:10 -05:00
.github Bump codecov/codecov-action from 5 to 6 (#670) 2026-03-30 10:30:07 -04:00
.vscode Switch to Language enum (#298) 2024-02-21 23:18:15 -05:00
docs Move language definitions to a separate crate (#630) 2026-01-01 18:40:10 -05:00
gengo Bump gix from 0.80.0 to 0.81.0 (#669) 2026-03-30 13:17:19 +00:00
gengo-bin Remove chromaterm and owo-colors features 2025-12-12 00:21:21 +00:00
gengo-language fix(languages): recognise formal language sources 2026-11-09 14:02:19 +00:00
samples-test Add support and example for Moonbit (#668) 2026-03-21 10:28:50 -04:00
scoop Update scoop manifest 2026-01-24 11:53:53 -05:00
scripts Sort languages case-insensitively (#647) 2026-01-24 16:08:02 +00:00
.all-contributorsrc 📝 Add mst-mkt as a contributor for data (#570) 2025-07-15 08:04:21 -04:00
.dockerignore Add more files to .dockerignore 2023-09-08 13:41:18 -04:00
.editorconfig Dockerize (#97) 2023-09-08 12:45:48 -04:00
.git-blame-ignore-revs Ignore format commit 2025-12-06 17:29:56 +00:00
.gitattributes Move language definitions to a separate crate (#630) 2026-01-01 18:40:10 -05:00
.gitignore chore: Ignore .tar.gz files 2023-08-14 14:40:28 -04:00
.taplo.toml Format with taplo 2023-10-16 09:40:58 -04:00
Cargo.lock Bump version 2026-03-30 14:25:34 +00:00
Cargo.toml Bump version 2026-03-30 14:25:34 +00:00
CODEOWNERS Move language definitions to a separate crate (#630) 2026-01-01 18:40:10 -05:00
crates-io.md Switch to Language enum (#298) 2024-02-21 23:18:15 -05:00
CREDITS.md 📝 Add mst-mkt as a contributor for data (#570) 2025-07-15 08:04:21 -04:00
Dockerfile Bump docker builder image 2025-04-29 19:46:45 -04:00
install.ps1 Add Windows install script (#512) 2025-02-18 19:33:45 +00:00
install.sh Update install.sh for new release asset names (#253) 2023-12-08 12:25:55 -05:00
languages.yaml Move language definitions to a separate crate (#630) 2026-01-01 18:40:10 -05:00
LICENSE-APACHE chore: Add licenses and update crate doc data 2023-08-09 13:46:32 -04:00
LICENSE-MIT chore: Add licenses and update crate doc data 2023-08-09 13:46:32 -04:00
README.md Describe output 2025-12-06 11:25:52 -05:00
rust-toolchain.toml Add clippy and rustfmt to toolchain 2025-07-14 19:51:48 -04:00

gengo (言語)

library binary CI codecov

A linguist-inspired language classifier with multiple file source handlers.

Its output is similar to linguist, but by default the language stats are colorized.

Comparison

Feature/Behavior linguist gengo
Analyze Git Revision Yes Yes
Analyze Directory No Yes
Requires Git Repository Yes No
Detect Language by Extension Yes Yes
Detect Language by Filename Yes Yes
Detect by Filepath Pattern No Yes
Detect Language with Heuristics Yes Yes
Detect Language with Classifier Yes Not Yet ;)

Installation

Packaging status

View the installation documentation.

Usage

This tool has multiple file sources. Each file source can have unique usage to take advantage of its strengths and work around its weaknesses.

Directory File Source

This is a very generic file source that tries not to make many assumptions about your environment and workspace.

Ignoring Files

You can utilize a .gitignore file and/or an .ignore file to prevent files from being scanned. See the ignore for more details.

Git File Source

The git file source is highly opinionated -- it tries to act like a git utility, and uses git tools. Its goal is to behave similarly to linguist. This means that this file source does not need any actual files present, and can work on a bare repository, making it suitable for usage with a Git server.

Overrides

Like linguist, you can override behavior using a .gitattributes file. Basically, just replace linguist-FOO with gengo-FOO. Unlike linguist, gengo-detectable will always make a file be included in statistics (linguist will still exclude them if they're generated or vendored).

# .gitattributes

# boolean attributes:

# These can be *negated* by prefixing with `-` (`-gengo-documentation`).
# Mark a file as documentation
*.html gengo-documentation
# Mark a file as generated
my-built-files/* gengo-generated
# Mark a file as vendored
deps/* gengo-vendored

# string attributes:
# Override the detected language for a file
# Use the Language enum's variant name (see docs.rs for more details)
templates/*.js gengo-language=PlainText

You will need to commit your .gitattributes file for it to take effect.