- Raised the minimum supported VS Code version to 1.101.0 (Node.js 22). (#1850, #1906)
- Terminal startup and manual attachment now offer to install
jgdandrstudioapiinto a vscode-R-managed tool library, with consent, without modifying user or project libraries. (#1907, #1909)
- Improved workspace refresh, R Interactive output, and editor responsiveness. (#1908, #1921)
- Improved session startup reliability and fixed Help navigation and plot loading. (#1921)
Full Changelog: https://github.com/REditorSupport/vscode-R/compare/v3.2.2...v3.4.0
The comparison also lists #1911, which was already released in 3.2.2 via a backport.
- Restored httpgd plot and local help rendering with EJS 7. (#1911)
Full Changelog: https://github.com/REditorSupport/vscode-R/compare/v3.2.1...v3.2.2
- Accepting a function or method completion that inserts parentheses now opens signature help, respecting
editor.parameterHints.enabled. (#1878) - Fixed session column completion in grouped and nested pipelines, including native R pipes and magrittr pipes. (#1901)
- Added an explicit Apply button and Blank option for filtering logical columns in the data viewer, including missing (
NA) values. - Fixed R Interactive plots disappearing during incremental output updates. (#1888)
- R Interactive execution timing now includes final output delivery and is retained across reconnects. (#1888)
Full Changelog: https://github.com/REditorSupport/vscode-R/compare/v3.2.0...v3.2.1
- Lowered the minimum supported VS Code version from 1.110 to 1.98.2. (#1832, #1855)
- The httpgd backend now requires httpgd 2.0.1 or later. (#1855)
sessnow requires IPC protocol 2 and an exact bundled source revision; restart R if a differentsessis already loaded. (@Fred-Wu, #1819, #1840, #1856)- When using isolated R libraries (e.g. with renv), install any missing R package dependencies of
sessin each environment's library. (#1856) - Removed
sess::register_hooks()and theuse_httpgd/use_jgdarguments; usesess::connect(plot_backend = ...)instead. (#1847) - Plot backend settings are no longer synchronized between machines by Settings Sync. (#1817)
- Added paged list and vector viewers with nested expansion, parent/child navigation, and reset controls. (@Fred-Wu, #1835)
- Data and list viewers stay bound to their source session and show its R version and process ID. (@Fred-Wu)
- HTML Viewer now reuses a tab per session, with output history, navigation, removal, and restoration after closing the tab or reloading VS Code. (#1852)
- Added
r.plot.backend: "native"to preserve R's configured graphics device while retaining other session integrations. (#1817) sesssetup now uses the target R process and asks before installing into a managed library, leaving user and project libraries unchanged. (#1856)- Added
options(sess.quiet = TRUE)to suppress successful connection messages. (#1795) - Experimental: Persistent R Interactive sessions with retained history, rich outputs, and automatic input formatting; requires arf on Linux/macOS, with Windows and console input/debugger prompts currently unsupported. (#1805, #1830, #1835, #1867)
- Added
getRExecutablePath(resource?)to resolve the configured R executable. (#1813) - Added
session.prepareAttachment()to prepare managedsessin an extension-owned R process, including through a local proxy endpoint. (#1868) - Extended
session.activate(sessionId, { terminal })to route Workspace actions to extension-owned terminals; bindings must be renewed after reconnecting. (#1837) - Added
onDidChangeSessionConnection,getSessionReference(), attachment/connection IDs, and selection controls (autoActivate,select). (#1870) - Added
session.registerTerminalIntegration()to delegate manual attachment recovery to external terminals without bypassing their transport. (#1871)
- Prevented unintended R code evaluation when hover or completion has no valid expression range. (#1803)
- Initial code submission now waits for the terminal's own session attachment and package preparation. (#1821, #1856)
- Applied configured R library paths before looking for
renvin language server and help processes. (#1797) - Prevented overlapping standard plot renders and stale results after session switches or viewer changes. (#1844)
- Fixed stale viewer disposal/responses, custom list extraction, and duplicate evaluation of active bindings. (@Fred-Wu)
- Fixed HTML Viewer search, fragment links, authored HTML preservation, and navigation blocked by missing load confirmation. (#1852)
- Fixed Interactive dependency loading in isolated libraries and preserved cells and drafts across reloads. (#1843, #1861)
- Removed duplicate startup prompts and unwanted
TRUE/FALSEoutput. (#1795, #1864) - Manual attachment now handles R errors and interrupts while keeping the R prompt usable. (#1868)
- Added daily pre-releases to the VS Code Marketplace and Open VSX after successful verification. (#1833, #1834)
- Reduced VSIX assets and runtime dependencies, including replacing
httpgd-jswith built-in transports. (#1849, #1855) - Updated build tooling, shared release verification, and dependencies, including security fixes. (#1792, #1814, #1818, #1823)
Full Changelog: https://github.com/REditorSupport/vscode-R/compare/v3.0.1...v3.2.0
- Bump version of both the extension and
sessto3.0.1so users who installed an earlier3.0.0pre-release build ofsess(before its connection protocol was finalized) are prompted to reinstallsess. (#1794)
Full Changelog: https://github.com/REditorSupport/vscode-R/compare/v3.0.0...v3.0.1
v3.0.0 of the R Extension for VS Code is a major release. It introduces a
significant architectural change via the (new)
sess R
package, which powers faster and more robust communication with the underlying R
session. In turn, this has allowed us to close numerous long-standing bugs, as
well as enable a variety of ancillary improvements and feature requests. The
extension bundles its own copy of sess and will offer to install it (on your
behalf) if it is missing or outdated. See the
sess
README for
more details.
- More reliable R sessions: Session communication now uses
sesswith local sockets or named pipes. Managed R sessions can reconnect after a VS Code window reload, and workspace updates no longer delay code submission when the environment contains large objects. - More flexible plot viewing:
r.plot.backendselectsjgd,httpgd, or the standard graphics device. Automatic selection prefersjgdwhen installed, thenhttpgd, then the standard device. - Faster, more capable data and workspace viewers: Data rows and workspace objects load on demand, including Arrow and Polars data frames in the data viewer, which also gains column controls, filtering, and row counts.
- R Markdown and RStudio API: YAML parameters are evaluated before running
R Markdown code, and
rstudioapi::showPrompt()andrstudioapi::askForPassword()are now supported. - Improved console configuration: Console and background R executables can
be set separately, including executable names found on
PATH.
- VS Code 1.110 or later is now required.
- The session watcher has been rewritten around the new
sesspackage, which replaces the R scripts that previously lived under~/.vscode-R/. The extension and R now talk over a local socket (Unix) or named pipe (Windows), rather than by watching files. For most users, this change should be invisible apart from being faster and more reliable. However, users who customized the old session watcher should note the following:- The R-side
vsc.*options (e.g.,vsc.plot,vsc.viewer,vsc.browser,vsc.row_limit) are no longer read. Use the equivalentr.*VS Code settings instead. - The
~/.vscode-R/init.Rscript and the R: Attach Active Terminal command have been removed.
- The R-side
- Live Share integration has been removed, including its commands and
r.liveShare.*settings. (#1684 @randy3k) - Several settings that no longer had any effect have been removed:
r.helpPanel.rpath,r.session.useWebServer,r.session.data.rowLimit(superseded by on-demand loading in the data viewer),r.session.objectLengthLimit,r.session.objectTimeout,r.session.levelOfObjectDetail, andr.workspaceViewer.showObjectSize. (#1713, #1734 @Fred-Wu, #1762 @eitsupi)
Several settings have been given clearer, platform-independent names. The old names are deprecated but still work, so existing configurations will continue to behave as before. If both are set, the new name takes precedence (within the same user/workspace scope).
| Old (deprecated) | New |
|---|---|
r.rpath.<platform> |
r.executablePath |
r.rterm.<platform> |
r.consolePath |
r.rterm.option |
r.consoleArgs |
r.rtermSendDelay |
r.consoleSendDelay |
r.plot.useHttpgd |
r.plot.backend |
(#1733, #1735, #1762 @eitsupi)
- New
r.plot.backendsetting for choosing the plot viewer:"standard","httpgd","jgd", or"auto"(the default). The latter picks the best available backend, trying jgd first (see next bullet), then httpgd, then the standard viewer. Changes should take effect without reloading VS Code, and you'll get a warning if the requested backend isn't installed. This supersedes the oldr.plot.useHttpgdsetting, which is deprecated but still respected (see "Renamed settings" above). (#1706, #1716, #1766 @grantmcdermott, #1733 @eitsupi) - Native integration with the lightweight
jgdgraphics device, including plot history and export. Only thejgdR package is needed; no separate VS Code extension required. See ther.plot.jgd.*settings for history and export options. (#1706 @grantmcdermott) - The standard plot viewer now re-renders plots to fit the viewer panel as it
is resized, rather than displaying a fixed-size image. It also produces
crisp SVG output by default if the
svglitepackage is installed, falling back to PNG otherwise. Use the newr.plot.formatsetting to choose explicitly. (#1684 @randy3k) - Plot navigation commands (next, previous, zoom, export, etc.) are now hidden from the Command Palette, since they only apply to an open plot viewer. They remain available from the viewer toolbar. (#1762 @eitsupi)
r.executablePathsets the R used for background tasks (e.g., the help server and package installation), whiler.consolePathsets the interactive console. The latter makes it easy to use alternative consoles like arf or radian. Both accept either a full path or a bare command name on yourPATH(e.g.,"R"or"arf"), and support variables like${workspaceFolder}. Ifr.consolePathis unset,r.executablePathis used for the console too. (#1735, #1762 @eitsupi)
- Much faster for large datasets. Rows are loaded on demand as you scroll, rather than all at once. Arrow tables and Polars DataFrames are also supported. (#1703 @renkun-ken, #1717 @Fred-Wu)
- New column panel to search, show/hide, and pin columns, plus inline filters, a "clear all filters" button, row counts, and full-value tooltips. Columns fit the viewer width by default, and your view settings are remembered. (#1747 @Fred-Wu, #1765 @renkun-ken)
- Calling
View()on the same object again refreshes the existing viewer tab, instead of opening a new one. The viewer also keeps its column layout if the column names, order, and types are unchanged. (#1707 @Fred-Wu, #1765 @renkun-ken)
- Nested objects (lists, environments, pairlists, S4 and R6 objects, data frames) can now be expanded recursively. Large objects load 500 items at a time, with a "..." row to load more. (#1713, #1730 @Fred-Wu)
- R terminals now reconnect automatically after reloading the VS Code window. (#1764 @eitsupi)
rstudioapi::showPrompt()andrstudioapi::askForPassword()are now supported. (#1684 @randy3k)- R Markdown
paramsfrom the YAML header are now evaluated before running code chunks. (#1684 @randy3k) - The extension now activates when an R or R Markdown file is opened, not just when a workspace contains one. (#1768 @ThomasSoeiro)
- New R documentation files default to the
.Rdextension. (#1773 @ThomasSoeiro)
- Fixed lag when sending code to the console while the workspace contains many or large objects. (#1713, #1720 @Fred-Wu)
- The data viewer no longer displays very small numbers as
0. (#1738, #1757 @Fred-Wu) - Fixed various
rstudioapiemulation issues, including viewer routing. (#1684 @randy3k) - Removed the spurious "No text editor active" warning. (#1704 @renkun-ken)
- The help viewer no longer disables TLS certificate validation when fetching from CRAN. (@tomaioo)
- Session files are now created with owner-only permissions. (#1705 @renkun-ken)
r.session.viewers.viewColumn.helpPanelis now respected for help pages opened from R, including"Disable". (#1762 @eitsupi)- Language server diagnostics now ignore virtual and deleted files. (#1697 @toscm)
- When the session watcher is disabled, the warning now links to the relevant setting rather than an empty wiki page. (#1760 @Fred-Wu)
- New integration test suite. (#1684 @randy3k)
- Modernized CI, including Node.js 24, updated GitHub Actions, and Dependabot updates for workflow dependencies. (#1731, #1771 @eitsupi)
- The
sessR tests use tinytest. (#1706 @grantmcdermott)
- New maintainers with write access: @eitsupi, @Fred-Wu, and @grantmcdermott.
- The jgd graphics device package has joined the REditorSupport organization.
- REditorSupport now has its own R-universe, providing up-to-date (dev) binary builds of our various R packages.
- The default branch has been renamed from
mastertomain. Contributors should update their local clones and targetmainin pull requests. (#1103, #1775 @randy3k)
Full Changelog: https://github.com/REditorSupport/vscode-R/compare/v2.8.8...v3.0.0
- feat: change default of r.lsp.multiServer to false
Full Changelog: https://github.com/REditorSupport/vscode-R/compare/v2.8.7...v2.8.8
- fix: correct r.term and r.path setting names in error message
- feat: support multi-root workspaces in single-server mode
- Allow bracketedPaste on win32 platform (#1631)
- feat: default to single language server for multi-root workspaces (#1682)
Full Changelog: https://github.com/REditorSupport/vscode-R/compare/v2.8.6...v2.8.7
- Syntax update and bump to 2.8.6 (#1605)
- Show sidebar icon only when extension is active (#1579)
- Move R and R markdown syntaxes to vscode-R-syntax (#1606)
- refactor: restructure files (#1613)
Full Changelog: https://github.com/REditorSupport/vscode-R/compare/v2.8.5...v2.8.6
See CHANGELOG.old.md for changes before v2.8.5.