Keep known R6 member signatures and hover when initializer analysis reaches its inference limit. Select members directly from the inferred receiver and allow more time in parallel tests without changing the normal request budget.
Complete bindings available in R6 method scopes, including self, private,
super, inherited members in non-portable classes, and nested closures,
using static context analysis during incomplete edits. Respect method-local
shadowing and prefer class bindings over enclosing declarations. Include
class information in completion, hover and signature help, and derive R6
new() signatures and argument completion from public initializers.
Preserve Polars member completion, signature help and hover when other packages are cached. Prefer receiver roots over incidental exported names and keep metadata requested by open documents ahead of background entries. Retain compact inert snapshots so indexes evicted from the decoded cache can be restored when multiple open documents need large package metadata. Use compact catalogs for context selection and restore full namespace indexes only when inference needs them, avoiding repeated eviction on each request.
Keep parameter-name inlay hints for untouched calls during incomplete edits, moving their positions with incremental changes and refreshing after a valid parse, so a temporary syntax error does not clear hints across the document.
Enclose non-syntactic completion names in backticks and preserve escaped names in function snippets, including completion inside partially typed quoted names (#781).
Complete chained $ members using static receiver analysis, including source
list/environment factories, declarative R6 classes and package method
registries. Package metadata is prepared in a background worker; completion
never calls document expressions, constructors, methods or active getters.
Preserve member completion for assigned and reassigned Polars query chains,
including DataFrame results after collect(), within the inference budget.
Use the same static member inference for signature help and hover, including
chained methods and named argument documentation. Member requests wait for the
current parse after edits, fixing stale completions on the first $ trigger.
Resolve member names across line breaks and infer self, super and
private inside supported R6 methods for completion, hover and signatures.
Extend member completion, signature help and hover to package factories backed
by internal R6 classes and methods assigned during initialization. Support
namespace-qualified factories and R6 constructors without a library() call,
without executing constructors, methods or user arguments.
Complete S4 @ slots from source declarations and installed class metadata,
including inheritance, aliases and factory results. Show slot types on hover
and signatures for slots whose function definitions are known statically.
Complete S7 @ properties and constructor arguments from source declarations
and installed descriptors, with constructor/property hover and signatures.
Infer inheritance, nested properties and supported custom constructors
without calling constructors, getters, setters, validators or defaults.
Follow installed S7 constructor semantics, including 1.0 development class
references, forwarding constructors, named bindings, list property updates,
external class references, S4 parents and deprecation declarations.
Run full-document, range, and multiple-range formatting in a lazy, cancellable background worker so other editor requests remain responsive during formatting (#764, #251).
Stabilize diagnostics for Quarto and R Markdown documents by preserving source-specific settings, custom suppression markers, and exclusions when linting extracted code, while normalizing paths on Windows (#763, #726).
Clear published diagnostics and cancel queued or running lint tasks when diagnostics are disabled (#763).
Strictly enforce mutual exclusivity of result and error in JSON-RPC responses
per the JSON-RPC 2.0 specification, preventing strict clients like Neovim from
disconnecting on errors (#768, #766).
Prevent undefined behavior in reference_resolve_local_c() by guarding qsort and
avoiding zero-length allocations when definitions or occurrences are empty (#767).
Speed up test-coverage workflow by utilizing 4 CPUs, path filtering, and 4-way balanced test sharding (#769).
Preserve missing terminal newline state during diagnostics and provide a preferred quick fix for trailing_blank_lines_linter (#774, #772).
Respond to shutdown with a null result instead of [], which clients that type the result strictly fail to decode.
Closed issues:
.lintr config and diagnostics not clearing when disabled (#726)Merged pull requests:
.qmd and Quarto language
ID detection, independent R-cell parsing, nested fenced-div folding, and
provider isolation from YAML, Markdown, cell options, and non-R engines.source() closures. Keep
unrelated standalone scripts isolated in semantic editor features.callr workers when cancelling tasks so a late interrupt
cannot leak into the next diagnostics run.lintr diagnostics and a conflict-aware
source.fixAll action, while making multi-line nolint actions apply to every
affected line.refactor.extract actions for variables and functions with
local free-variable analysis, plus a conservative refactor.inline action
for single-use local variables.label type.callr subprocesses after transient parse errors or representation
changes while preserving package attachment order (#754).STR_CONST in xdoc_find_token() at ambiguous punctuation/string boundaries (#739, #740).extract_default_values() (#759).Closed issues:
resolve_attached_packages) spawns fresh R subprocess on keystrokes in Quarto/R Markdown documents (#754)xdoc_find_token resolves to adjacent punctuation instead of string literal at unspaced quote (#739)diagnose_file: empty path crash and .lintr config never applied when using text= argument (#722)Merged pull requests:
xdoc_find_token() now prefers STR_CONST at ambiguous punctuation/string boundaries (#740)Closed issues:
call[[1L]] (#723)Merged pull requests:
Closed issues:
lintr warnings (#674)Merged pull requests:
# %% code chunks (#644)nline_to_break_succession as option (#643)Closed issues:
nline_to_break_succession option to control section collapsing (#643)Merged pull requests:
path_from_uri (#610)Closed issues:
Merged pull requests:
Closed issues:
html-to-markdown.lua error: attempt to call a nil value (#555)Merged pull requests:
Closed issues:
Merged pull requests:
languageId (#511)fs::path_abs with existing files (#506)completionItem/resolve always returns completionItem (#505)Closed issues:
= differs from functions assigned with <- (#466)Merged pull requests:
get_help instead of repr (#469)EQ_ASSIGN (#467)Closed issues:
workspace/didChangeWatchedFiles (#446)Merged pull requests:
workspace/didChangeWatchedFiles (#447)Closed issues:
styler::style_text(base_indention=) for styler > 1.4.0 (#400)Merged pull requests:
._ from namespace (#406)