Badness is a tool designed for working with LaTeX documents, offering language server, formatting, and linting capabilities. It is built to parse LaTeX into a lossless concrete syntax tree, enabling deterministic formatting, diagnostic linting, and integration with editors through its language server. The tool is intended for users who need precise control over their LaTeX source code, such as those seeking automated formatting and code quality checks.
The platform provides three main components: a formatter that lays out LaTeX source code in a consistent and repeatable manner, a linter that reports diagnostics on the code, and a language server that brings these features and additional capabilities to compatible editors. Its architecture is inspired by rust-analyzer, employing a generic, error-tolerant, hand-written parser that produces a lossless syntax tree. Semantics are layered on top of this structure, and the system is designed for incremental recomputation, allowing for efficient updates as code changes.
Badness treats input as generic TeX surface syntax and does not require resolving macros or catcodes to function. Instead, when it encounters elements it cannot statically recognize, it degrades gracefully to generic nodes rather than failing. Two key properties are enforced: losslessness, where the parsed tree can reconstruct the original input byte-for-byte, and idempotence, ensuring that formatting an already-formatted file results in no changes.
The tool is delivered as a binary and can be set up for integration with editors through its language server. There is no information provided about its pricing or licensing model.
badness is an Other dev tools product. It focuses on automating formatting, linting, and language support for LaTeX documents. It is built as an open-source project for laTeX users and developers. badness is open source under the MIT license. It runs on the web and the command line.
badness first shipped in 2026. Development happens publicly on GitHub with 229 commits in the last 90 days. Key capabilities include laTeX formatting, linting, and language server.
Latest indexed changes and source events
Other apps tracked under the same category.