Skip to content

v0.2.0

Choose a tag to compare

@jolars jolars released this 12 Jun 09:23
· 117 commits to main since this release
dc35e5d

Breaking changes

  • rename package to arity (979371b)

Features

  • lsp: document symbols outline (b203c2f)
  • lsp: find-references + document highlight (12e7566)
  • lsp: add go-to-definitions (f74a087)
  • lsp: cross-edit node refs + intra-file rename (64533de)
  • project: workspace-wide symbol/reference index (8920e6f)
  • incremental: model the package index as a HIGH-durability salsa input (d04b2cb)
  • symbols: bundle top-500 CRAN export lists (0c2a59b)
  • parser: incremental token/block reparse (231e0f3)
  • lsp: wrap project scope as tracked salsa queries (5006a04)
  • lsp: add range formatting (c0dafe1)
  • lsp: preempt in-flight lint on a fresher edit (81b2e71)
  • lsp: reuse salsa db for hover/format/code-action reads (e90dd68)
  • lsp: add init options (3e6757b)
  • lsp: cross-file resolution for the active document (1e7f046)
  • linter: honor NAMESPACE exports and imports (7177f47)
  • linter: resolve bindings across files in a project (44c1938)
  • project: add source() edge and file-export extractors (cc5ee3d)
  • lsp: lint off a persistent salsa database (54afbe1)
  • incremental: cache parse tree + semantic model in salsa (8651d0c)
  • formatter: hug trailing block past an unbreakable atom (cfc892c)
  • formatter: rest-aware group fit; break inner hug on overflow (e493d0d)
  • formatter: line width wins over hug; explode instead (579621a)
  • add space after = in fn(NULL =) (e311b0d)
  • formatter: adopt air's always-brace for control flow (c583583)
  • inline {{ x }} syntax (accf8a8)
  • formatter: pack leading argument holes inline (cd78c06)
  • lsp: hover with indexed package help (e6e0b66)
  • rindex: harvest full Rd help bodies as markdown (8833905)
  • lsp: load the index and lazily build missing packages (f1852c4)
  • linter: enable undefined-symbol behind an all-indexed gate (8a5861d)
  • rindex: harvest function formals from lazy-load DBs (5693f7c)
  • rindex: on-disk R-introspection sidecar (ravel index) (36c8aae)
  • linter: autofix infrastructure, --fix, and LSP code actions (76dcb44)
  • linter: semantic foundation, suppression directives, and LSP diagnostics (2f121a2)
  • lsp: add initial lsp with formatting capabilities (e8e2a73)
  • add a config (058b8af)
  • formatter: support @ slot extraction as sticky operator (c46b761)
  • support the walrus operator (b2549b6)
  • parser: lex ** as exponentiation synonym for ^ (fa6d90a)
  • parser: handle help operators (d7e9ab7)
  • parser: lex imaginary suffix as complex literal (4732bb3)
  • parser: recognize unary tilde formula operator (edc90bc)
  • formatter: conditional group for break-aware fits (410dd48)
  • formatter: handle nested expressions/curly-curly (e041594)
  • formatter: handle magrittr pipes (8bb6a56)
  • cli: format in place if file provided (eac1fe3)
  • formatter: handle binary operators (0bd8db6)
  • formatter: handle complex comment cases (340ced7)
  • formatter: handle curly-curlies and whitespace (1c4d189)
  • formatter,parser: handle complex if-else cases (09beb1e)
  • formatter: handle repeat constructs (2425148)
  • formatter: handle empty functions (a2d04c9)
  • formatter: handle some parenthesized expressions (27bf2fd)
  • parser,formatter: handle comment prefixed args (630df1c)
  • formatter: handle more complex subsetting cases (a1efad0)
  • formatter: handle comment in subset (a6be358)
  • formatter: add support for subsetting with holes (790f63d)
  • formatter: handle basic subsetting and holes (000b3f7)
  • formatter: flatten simple functions (0881304)
  • formatter: handle more function cases (20033bb)
  • formatter,parser: handle comments in function defs (e844b23)
  • formatter: handle lambdas (3aecd57)
  • formatter: support [[ subsetting (52f32f2)
  • formatter: harden support around hugging and calls (961d748)
  • formatter: add call hugging support (e92401f)
  • formatter: handle blanklines between function arguments (2398618)
  • formatter: handle curly-curly (3d47fe1)
  • formatter,parser: handle empty RHS (978828c)
  • formatter: handle comments and continuations in calls (d534d66)
  • parse,formatter: handle lambdas and trailing functions (5ad396b)
  • formatter: handle training braces (3103ac3)
  • formatter: handle comments after holes (310bde3)
  • formatter: handle comments inside holes (17e7b12)
  • formatter: tackle holes in calls (b57fc73)
  • formatter: support calls and handle line breaks (f1ae921)
  • formatter: support basic calls (b95eeac)
  • formatter: support while statements (4e7d3e5)
  • formatter: support for statements (0f4f836)
  • formatter: handle blanklines and functions (363fbd8)
  • formatter: don't add spaces for carets (461f329)
  • refactor formatter (a7d5600)
  • parser: wrap up air test parity (9e5ca51)
  • parser: handle double colon namespace error (99c2259)
  • parser: handle dots and repeats (84c790c)
  • parser: extend to air fixtures (d411968)
  • parser: extend to subset assignment (f19572a)
  • parser: suppor subsetting brackets (c80a021)
  • parser: add multiple new operators (c2ca22c)
  • parser: add semicolon, comma (4f4e76f)
  • parser: add newline-sensitive boundaries (fd490f4)
  • parser: add slash, minus, colon (d45cb7e)
  • parser: expand operator coverage (939667e)
  • parser: improve coverage and add operator precedence (085e59b)
  • add a linter (72519c1)
  • add more parsing cases (4982f1c)
  • lay groundwork for formatter and parser (76005cd)
  • parser: expand to handle more cases (2783429)
  • add cli, with parse command (8a2b5e9)
  • add a minimal parser (1c0289c)
  • setup basic package infrastructure (835dad5)

Bug Fixes

  • ci: avoid SIGPIPE in CRAN ranking script (c8703ad)
  • formatter: render comment-free if/else as native IR (bd9e8c6)
  • formatter: indent pipe RHS so broken calls nest correctly (af16e75)
  • lsp: handle URIs properly on windows (130c741)
  • formatter: keep else-if chains flat, brace consistently (e16aa86)
  • parser: skip comments around if-clause boundaries (da34806)
  • formatter: handle comments between if-body and else (9336fa1)
  • parser: handle newline between subset args (c9e41d1)
  • parser: newline terminates complete top-level expressions (23a63c3)
  • properly handle CLRF (f147ad6)

Performance Improvements

  • rindex: parallelize package harvest across rayon (8852209)