Skip to content

v0.10.5

Choose a tag to compare

@github-actions github-actions released this 07 May 05:15
· 169 commits to main since this release

Fixed

  • lex_core::ast::Document::find_all_links /
    lex_core::ast::Session::find_all_links now return DocumentLink
    ranges that cover only the [bracketed] reference, not the
    containing paragraph or title line. Editors render LSP
    textDocument/documentLink ranges as clickable underlined link
    surfaces; the previous code used paragraph.range() (with a comment
    acknowledging the limitation: "we don't have inline-level ranges
    yet") for URL and File reference types, so any paragraph containing
    a [https://…] or [./path] reference was rendered end-to-end as
    one giant link in VSCode. A new internal ReferenceLocator walks
    the inline tree with the same cursor / escape logic that
    lex-analysis::semantic_tokens::InlineWalker uses, producing
    precise byte and Position ranges for each URL/File reference.
    Verbatim src parameters retain their verbatim-block range
    (they aren't bracketed inline references). Existing extraction
    tests only asserted target + link_type, never range; new
    tests lock in the bracket-bounded invariant.
  • lex_core::ast::Session::find_all_links now scans nested-session
    titles, not just the session it is invoked on.
    Document::find_all_links calls into the implicit root session
    (whose title is empty) and paragraph traversal yields paragraphs
    only, so URL/File references that appear in a section heading like
    1. See [./handlers.lex] for details were silently dropped from
    the LSP documentLink response — editors had no clickable surface
    on the heading even though the same reference inside a body
    paragraph worked. The fix walks Session::iter_sessions_recursive
    after the session's own title, so every heading at every depth
    contributes bracket-bounded link ranges.

Changed

  • Release pipeline consolidation: WASM/npm publishing is now part of
    the canonical arthur-debert/release@v1.2.0 rust-cli workflow
    (opt-in via wasm-package input). Replaces the separate
    release-wasm.yml workflow that re-installed Rust and recompiled the
    workspace dep tree. One tag, one workflow run, one operator dashboard
    view — crates.io, GH release tarballs (incl. lex-wasm-wasm.tar.gz
    for direct-download consumers), Homebrew, and npm all ship from a
    single pipeline. (#510)
  • lex-lsp-core is now part of the cargo publish list so its version
    ships to crates.io in lockstep with the rest of the workspace.