GitHub Hot Board

GitHub Hot Board · Архив репозитория

jolars/badness

LaTeX language server, formatter, and linter (Описание взято из самого репозитория.)

Rust

Данные на October 29jolars

Лучшее место

#206

Недооценённые жемчужины

100

Всего звёзд

6

Всего форков

2

Дней в рейтингах (30 дн.)

Лицензия: MITПоследний push: October 29Открытые issues (вкл. PR): 1Собирается с 2026-10-25; неизвестно = ещё не собрано

Документация проекта

Badness

Build and Test Crates.io Open VSX VS Code PyPI version npm version DOI

Badness is a language server, formatter, and linter for LaTeX. It is designed to be fast, robust, and memory efficient. It bundles three tools in one:

  • Formatter (badness format): opinionated, deterministic, and rule-based layout.
  • Linter (badness lint): syntax errors and best practices.
  • Language server (badness lsp): both of the above, plus information on hovering, symbol outlines, go-to-definitions, code actions, and much more.

The architecture is modeled after rust-analyzer, relying on a incremental parser that forms a full concrete syntax tree of the document, and then using that tree to provide formatting, linting, and language server features. It is designed to used both inside your editor and on the command line, and is fast enough to provide real-time analysis after every keystroke and formatting on save, even for large documents and complex projects.

The audience for Badness is both authors who write LaTeX documents (.tex and .bib files) and developers who write LaTeX packages (.sty, .cls, .dtx, and .ins files), and provides support both for the newer LaTeX3 programming layer and the older LaTeX2e layer.

Installation

Badness is available from several sources:

  • crates.io: cargo install badness
  • Homebrew: brew install jolars/tap/badness
  • npm: npm install -g badness (bundles a prebuilt binary)
  • PyPI: uv tool install badness/pipx install badness
  • mise/Aqua: see the installation guide
  • Prebuilt binaries: from the releases page
  • VS Code/Open VSX: the Badness extension (also works in Positron and Cursor)
  • NixOS: the badness package on Nixpkgs
  • From source: cargo install --path . in a checkout

Install Script

The installer scripts pick the right release artifact for your platform and install to a user-local directory by default. They download the matching Badness CLI release asset and verify its checksum. If you prefer, download and inspect the script before running it.

For macOS and Linux:

curl --proto '=https' --tlsv1.2 -sSf https://badness.dev/install | sh

For Windows PowerShell:

powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://badness.dev/install.ps1 | iex"

The VS Code/Open VSX extension bundles the badness binary and starts the language server automatically when you open a supported LaTeX or BibTeX file: .tex, .sty, .cls, .dtx, .ins, or .bib.

Usage

# Format a file in place (or `badness format -` for stdin → stdout)
badness format paper.tex

# Verify formatting without writing, showing diffs
badness format --check bibliography.bib

# Lint, reporting parse diagnostics
badness lint paper.tex

# Fix lint issues in place
badness lint --fix paper.tex

Formatting is configurable via a TOML file named badness.toml. See the documentation for the full reference.

Editor Integration

The language server runs over stdio (badness lsp); see the editor setup guide for instructions on how to integrate with your editor.

Badness is also available in Zed. See the Zed setup guide.

Pre-Commit Hook

badness-pre-commit provides pre-commit hooks for linting and formatting. It installs a prebuilt binary wheel from PyPI, so no Rust toolchain or LaTeX distribution is required:

repos:
  - repo: https://github.com/jolars/badness-pre-commit
    rev: v0.26.0
    hooks:
      - id: badness-lint
      - id: badness-format

See the pre-commit guide for installation, optional fixes, and updates.

GitHub Actions

badness-action installs badness and runs format and lint checks in CI:

jobs:
  badness:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: jolars/badness-action@v1

See the integration guide for a complete workflow, dprint setup, and using Badness inside Panache code blocks.

Documentation

See https://badness.dev/ for the full documentation, including a user guide, reference, and developer guide.

Citation

If you use Badness in your research, please cite the release you used. Select that release in the Zenodo archive and export its citation. To cite Badness generally, use the concept DOI 10.5281/zenodo.20664708.

Machine-readable metadata is available in CITATION.cff.

Contributing

See CONTRIBUTING.md.

Funding

I am grateful for the financial support offered by the TeX Users Group through the TeX Development Fund.

License

MIT

Текущие места

  • 206

    Недооценённые жемчужины

    100 звёзд · 6 fork · Всего звёзд (по возрастанию)

    Недооценённые →

Динамика за 30 дней

Накопленные звёзды

Динамика мест

Поставьте бейдж в свой README · jolars/badness[![Поставьте бейдж в свой README](https://git.vaiox.xyz/api/badge/jolars/badness.svg)](https://git.vaiox.xyz/ru/repo/jolars/badness)

Badge · 任何仓库都可以挂 —— 未上榜的仓库显示灰章,上完榜会自动点亮。

<a href="https://git.vaiox.xyz/ru/repo/jolars/badness"><img src="https://git.vaiox.xyz/api/badge/jolars/badness.svg" alt="Поставьте бейдж в свой README" height="20"></a>

← К рейтингам

GitHub Hot BoardМашина времениОбзор联系我们 · Contact