0.7.0 (2026-07-08)
- lsp: selection ranges from CST hierarchy (
2aff55f)
- formatter: column-spec-aware table alignment (
9ab94ba)
- linter: package-aware duplicate and provides lints (
758fac3)
- semantic: recognize package metadata and options (
0cd95ce)
- lsp: color and TikZ/PGF library completion (
1a881f3)
- lint: add unreferenced-label rule (
4d975a1)
- lint: add verbatim-trailing-text rule (
a11358d)
- lint: flag line-break tie in missing-nonbreaking-space (
de2d51f)
- lint: autofix obsolete-environment eqnarray to align (
aa26b13)
- lint: add missing-required-argument rule (
5206ee6)
- lsp: references, rename, goto-def for user macros (
fdeb0e9)
- lsp: negotiate client capabilities at initialize (
36b6ed2)
- lsp: change-environment refactor command (
1f27fab)
- lsp: glossary/acronym key completion (
f73f138)
- lsp: signature help for command arguments (
0c5f649)
- lsp: label hover and symbol numbers from
.aux (3efb7aa)
- semantic: classify what a
\label labels (01a8b0b)
- project: scan
.aux for label numbers and toc (ed48898)
- config: add
[build] section with aux-dir (ad8cc8a)
- lsp: go-to-definition for include/package file arguments (
99927ea)
- lsp: resolve packages via TEXMF index and CTAN metadata (
24ba5c7)
- bib: tighten title-capitalization camelCase heuristic (
91de065)
- ci: rename aux.rs, allow option-ext MPL-2.0 (
cc1c834)
- formatter: parallelize the CLI format paths (
d38b4d6)
- linter: cache registry, stream rewalkers, parallelize CLI (
5c3813a)
- signature: bake CTAN metadata via phf, not runtime parse (
f635d23)
0.6.0 (2026-07-06)
- completion: complete
\usepackage/\documentclass names (2457147)
- completion: add baked package/class name lists (
ff4906d)
- lsp: add document links (
915aea6)
- lsp: highlight matching
\begin/\end pair (d643518)
- lsp: re-indent on close via onTypeFormatting (
5972340)
- parser: parse math environments in math mode (
9097be3)
- formatter: implement sentence and semantic wrap modes (
17003ba)
- linter: add hard-coded-reference rule (
da66c29)
- linter: add sectioning-level-jump rule (
6ac6def)
- linter: add makeat-macro rule (
2ae6d07)
- linter: add space-before-command rule (
36d5fa3)
- linter: add abbreviation-spacing rule (
2fea8db)
- linter: add swallowed-space rule (
c48aa20)
- linter: add primitive-command rule (
94da7ca)
- linter: add math-operator-name rule (
17cc5f2)
- linter: add times-variable rule (
52de07a)
- linter: add dash-length rule (
a6218e0)
- linter: add straight-quotes rule for ASCII quotes (
adff4ba)
- linter: add ellipsis rule for literal … (
488ebdd)
- linter: generate rules reference from metadata (
74e2234)
- math: normalize operator spacing (
36c9314)
- semantic: keep built-in over delegating arity-0 redef (
9fd50d8)
- add title, author, date, thanks to signatures db (
3c537d1)
- formatter: stack binary chains under the relation too (
0777920)
- formatter: align relation chains in display math (
e69a72e)
- formatter: join alignment-cell continuation lines (
cd3e590)
- semantic: resolve packages to .dtx sources (
249e68e)
- parser: point unclosed-delimiter errors at the opener (
1029351)
- formatter: tight spacing and no paren breaks in display math (
7112b8c)
- linter: allow en dash between proper names in dash-length (
2ab4342)
- formatter: peel over-attached cell off table rules (
7c91ac9)
- “feat(formatter): stack binary chains under the relation too” (
4a6988b)
0.5.0 (2026-07-01)
- lsp: add range formatting support (
5ad2827)
- lsp: add workspace symbols support (
eb8a111)
- formatter: format expl3 code (catcode 9/10 model) (
ac4ff31)
- lsp: watch on-disk tex/bib/config and reanalyze (
b551c01)
- dtx: reflow documentation prose under reflow (
be57646)
- lsp: outline entries for dtx documented macros (
cba0b01)
- lsp: add
textDocument/documentHighlight (404069b)
- bench: add formatter speed bench vs tex-fmt & latexindent (
82ddeb5)
- format: reflow brace-group bodies as statements (
bb976e0)
- lsp: discover and apply badness.toml per document (
e56a8af)
- lint: add missing-nonbreaking-space (tie before cite/ref) (
4d75da4)
- lsp: surface linter autofixes as code actions (
13c727e)
- lsp: resolve completion items with signature and citation detail (
f9892e6)
- lsp: add hover for commands, environments and citations (
3c6047c)
- lsp: add pull diagnostics (
a73fd7b)
- lsp: honor excludes for siblings (
7a50529)
- signature: bake CWL tier into a build-time phf map (
a920d4a)
0.4.0 (2026-06-23)
- semantic: mark the cross-reference family inline (
c7c77a7)
- semantic: ingest CWL corpus as a bulk signature tier (
4740bf5)
- lint: don’t withold lints that disturbs alignment (
8ea1efc)
- bib: diagnose missing field separator; fix value trivia attachment (
e14751c)
- bib: autofix duplicate-field when values are identical (
c34bd78)
- bib: duplicate-field lint rule (
f2f6d60)
- lsp: rename labels and citation keys (textDocument/rename + prepareRename) (
7b1d01b)
- config: badness.toml configuration (CLI) (
8c68ca2)
- project: package load graph + package signatures into scope (
f8e6bc7)
- semantic: doc/ltxdoc prose↔code association query (
a52f17c)
- file-kind: .ins installation-script support (plain code, Preserve) (
85c9c7a)
- formatter: .dtx two-layer formatting (foundation, Preserve) (
6c7861f)
- semantic: doc/ltxdoc signatures + DOC_COMMENT node (M3) (
95ec2a2)
- parser: lex expl3 syntax mode (_/: as letters) (
c98e2e8)
- parser: lex .dtx docstrip guards as GUARD tokens (M2) (
b09c507)
- parser: parse .dtx docstrip surface syntax (M0+M1) (
8e54604)
- lsp: add textDocument/foldingRange (
f0ea513)
- cli: fix file-detection in cli linter (
7821b6a)
0.3.0 (2026-06-21)
- lsp: add textDocument/references (find references) (
2ef3606)
- sty/cls: format and lint LaTeX package/class sources (
54692cf)
- lsp: bib-aware completion and \cite key completion (
493ad41)
- bib: add generator to sync bib_fields.json with biblatex data model (
189de08)
- bib: align entry-type required fields to the data model (
35b81d9)
- bib: derive field/entry DB from biblatex’s canonical data model (
55a6883)
- bib: recognize the full standard biblatex field set (
e2c2639)
- semantic: flag user verbatim environments via begin-code catcode scanning (
eefc1a1)
- semantic: scan \def-defined verbatim commands and helper chains (
6cad9c1)
- semantic: flag user verbatim-argument commands via definition scanning (
19ef5f1)
- lsp: go-to-definition for refs and citations (
2535199)
- cli: –stdin-filepath routes lint stdin to the bib pipeline (
f8a4831)
- cli: –stdin-filepath routes format stdin to the bib pipeline (
96f1b80)
- lsp: cross-file project assembly — undefined-ref/citation fire live (
38b7f2c)
- bib: Phase 4 — incremental, LSP, and project-graph integration (
b593bdc)
- bib: linter rules + CLI wiring (Phase 3) (
571c2d3)
- bib: field & entry sorting (Phase 2c) (
438a61d)
- bib: value reflow (Phase 2b) — wrap long field values by category (
3cfed27)
- bib: formatter (Phase 2) — lower bib CST to shared Wadler IR (
de48afd)
- bib: semantic model + field/entry signature DB (
b59befc)
- bib: differential parse oracle vs texlab + phased roadmap (
d7360b6)
- bib: first-stab BibTeX/BibLaTeX parser (
6f38675)
- lsp: add basic completion (
20903b7)
- linter: autofix infra + dollar-display-math $$→[ fix (
216f590)
- linter: obsolete-environment, dollar-display-math, mismatched-delimiter lints (
8f89b51)
- formatter: break wide display math at top-level operators (
716612f)
- linter: cross-file label resolution + undefined-ref / duplicate-label (
270a035)
- formatter: keep appendix environment body flush like document (
b1a55f7)
- formatter: collapse cite-family key lists deterministically (
d88e7e3)
- semantic: extract unbraced \newcommand\foo definition form (
f2472d5)
- parser: bind leading comments into the following construct (
0afabeb)
- lsp: add document symbols (
5547650)
- parser: don’t wrap a lone block environment in a PARAGRAPH (
b4a46fe)
- formatter: use latexindent-style desc hang (
46ab231)
- formatter: reflow inline prose commands inline, not as blocks (
5d706b2)
- collapse blanklines into 1 (
b19d8da)
- formatter: grid-align comments and rule lines; enable tables (
4cbb183)
- formatter: lower display math as an indented block (
5e2cefc)
- parser: lex verbatim-argument commands; fix multi-line VERB formatting (
73cf04c)
- cli: add badness parse command (
7735a75)
- formatter: align itemize blocks (
47a2b19)
- formatter: don’t indent document environment (
3cd0d04)
- linter: add rule layer with duplicate-label and deprecated-command (
4aaee37)
- align & columns in align/matrix environments (
d5abdca)
- match \left … \right delimiter pairs in math (
3079875)
- add structured math model and math formatting (
02802f6)
- support argument-taking verbatim environments (
ab8eb74)
- add file-walk for formatter (
1603230)
- lsp: handle Windows file URIs in path completion (
5b38f45)
- formatter: keep a trailing % on the \begin header line (
e02413f)
- formatter: ass JSS/Sweave verbatim environments to signatures (
21b5e61)
- don’t reflow single
% (be49170)
- formatter: don’t push
% to next line (de271ae)
- formatter: fall back when an alignment cell contains a comment (
918c592)
- parser: don’t treat comment-only lines as paragraph breaks (
3c83c01)
- formatter: keep command-only lines on their own line under reflow (
739a32f)
- linter: migrate render.rs to annotate-snippets 0.12 API (
602d835)
0.2.0 (2026-06-12)
- add vscode and open vsx extensions (
975f1e4)
- npm: package for npm (
b3a576f)
0.1.0 (2026-06-12)
- formatter: reflow signature-marked prose arguments (
18c99ee)
- lsp: ra-style writer/threadpool, cancellation, incremental sync (
8628f92)
- lsp: reuse cached salsa tree for formatting (
30cd2d5)
- implement semantic group scanning (
4f5e9ca)
- parser: model \ line break as a LINE_BREAK node (
651e1c5)
- formatter: paragraph reflow via a Wadler Fill node (
0cbe264)
- semantic: add built-in signature database (
e9bf2de)
- rename fmt to format (
1fedc1b)
- linter: add minimal
badness lint command (443fa6a)
- lsp: add minimal lsp server (
7e6f4fe)
- formatter: indent multi-line group/argument bodies (
5e66038)
- parser: differential parse oracle vs texlab (
25e065c)
- lsp: add semantic model and reference support (
61707c1)
- build project graph (
cc81a29)
- incremental: salsa harness for cached parsing (
67a1948)
- formatter: environment-body indentation (
5b3d1b5)
- formatter: whitespace normalization (first real rule) (
00385eb)
- formatter: Phase 2 formatter MVP — identity round-trip (
ab2ef57)
- parser: Phase 1 recursive-descent grammar with error recovery (
511352c)
- attach arguments to environment (
a6772d2)
- parser: stop $-math at group and \end anchors (
1319fd8)