You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.