|
2 | 2 |
|
3 | 3 | ## 3.0.0 - 2026-09-27 |
4 | 4 |
|
5 | | -This major release updates the R session integration and adds substantial improvements to the plot, data, and workspace viewers. The extension bundles the [`sess`](https://github.com/REditorSupport/vscode-R/tree/main/sess) R package and prompts to install or update it when needed. |
| 5 | +`v3.0.0` of the R Extension for VS Code is a major release. It introduces a |
| 6 | +significant architectural change via the (new) |
| 7 | +[**`sess`**](https://github.com/REditorSupport/vscode-R/tree/main/sess) R |
| 8 | +package, which powers faster and more robust communication with the underlying R |
| 9 | +session. In turn, this has allowed us to close numerous long-standing bugs, as |
| 10 | +well as enable a variety of ancillary improvements and feature requests. The |
| 11 | +extension bundles its own copy of `sess` and will offer to install it (on your |
| 12 | +behalf) if it is missing or outdated. See the |
| 13 | +[`sess` |
| 14 | +README](https://github.com/REditorSupport/vscode-R/tree/main/sess#readme) for |
| 15 | +more details. |
6 | 16 |
|
7 | 17 | ### Highlights |
8 | 18 |
|
9 | | -* **More reliable R sessions:** Session communication now uses `sess` with 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. |
10 | | -* **More flexible plot viewing:** `r.plot.backend` selects `jgd`, `httpgd`, or the standard graphics device. Automatic selection prefers JGD when installed, then httpgd, then the standard device. JGD adds plot history and navigation; the Show Viewers command can reopen existing plot panels. |
11 | | -* **Faster, more capable data and workspace viewers:** Data rows load on demand, including for Arrow and Polars data frames. The data viewer adds column controls, filtering, row counts, full-value tooltips, and saved sizing and layout; repeated `View()` calls refresh the existing viewer and retain its state when column names, order, and types are unchanged. Workspace objects also load their contents on demand and support nested lists, environments, pairlists, S4 objects, and data frames. |
12 | | -* **R Markdown and RStudio API:** YAML parameters are evaluated before running R Markdown code. The session integration implements `rstudioapi::showPrompt()` and `rstudioapi::askForPassword()`. |
13 | | -* **Improved console configuration:** Console and background R executable paths can be set separately, including executable names found on `PATH`; settings resolve in the relevant workspace context. |
14 | | - |
15 | | -### Upgrade notes |
16 | | - |
17 | | -* **VS Code 1.110 or later is required.** |
18 | | -* The canonical settings are `r.executablePath` (background R), `r.consolePath` (interactive console), `r.consoleArgs`, and `r.consoleSendDelay`. The old `r.rpath.<platform>`, `r.rterm.<platform>`, `r.rterm.option`, and `r.rtermSendDelay` settings remain supported but are deprecated. |
19 | | -* Use `r.plot.backend` instead of `r.plot.useHttpgd`. The old setting remains supported; when the backend is `auto`, `r.plot.useHttpgd: true` continues to select httpgd. An explicitly selected backend takes precedence. |
20 | | -* Live Share support and its `r.liveShare.*` settings have been removed. |
21 | | -* The obsolete settings `r.helpPanel.rpath`, `r.session.useWebServer`, `r.session.data.rowLimit`, `r.session.objectLengthLimit`, `r.session.objectTimeout`, `r.session.levelOfObjectDetail`, and `r.workspaceViewer.showObjectSize` have been removed. On-demand loading replaces the old object detail and row limit controls. |
22 | | -* Context-dependent plot commands are hidden from the Command Palette to keep viewer-specific actions out of the general command list. They remain registered for existing viewer controls and user keybindings; **R Plot: Show Viewers** remains discoverable for reopening plot panels. |
| 19 | +- **More reliable R sessions:** Session communication now uses `sess` with |
| 20 | + local sockets or named pipes. Managed R sessions can reconnect after a VS |
| 21 | + Code window reload, and workspace updates no longer delay code submission |
| 22 | + when the environment contains large objects. |
| 23 | +- **More flexible plot viewing:** `r.plot.backend` selects `jgd`, `httpgd`, or |
| 24 | + the standard graphics device. Automatic selection prefers `jgd` when |
| 25 | + installed, then `httpgd`, then the standard device. |
| 26 | +- **Faster, more capable data and workspace viewers:** Data rows and workspace |
| 27 | + objects load on demand, including Arrow and Polars data frames in the data |
| 28 | + viewer, which also gains column controls, filtering, and row counts. |
| 29 | +- **R Markdown and RStudio API:** YAML parameters are evaluated before running |
| 30 | + R Markdown code, and `rstudioapi::showPrompt()` and |
| 31 | + `rstudioapi::askForPassword()` are now supported. |
| 32 | +- **Improved console configuration:** Console and background R executables can |
| 33 | + be set separately, including executable names found on `PATH`. |
| 34 | + |
| 35 | +### Breaking changes |
| 36 | + |
| 37 | +- **VS Code 1.110 or later is now required.** |
| 38 | +- The session watcher has been rewritten around the new `sess` package, which |
| 39 | + replaces the R scripts that previously lived under `~/.vscode-R/`. The |
| 40 | + extension and R now talk over a local socket (Unix) or named pipe (Windows), |
| 41 | + rather than by watching files. For most users, this change should be |
| 42 | + invisible apart from being faster and more reliable. However, users who |
| 43 | + customized the old session watcher should note the following: |
| 44 | + - The R-side `vsc.*` options (e.g., `vsc.plot`, `vsc.viewer`, `vsc.browser`, |
| 45 | + `vsc.row_limit`) are no longer read. Use the equivalent `r.*` VS Code |
| 46 | + settings instead. |
| 47 | + - The `~/.vscode-R/init.R` script and the **R: Attach Active Terminal** |
| 48 | + command have been removed. |
| 49 | +- Live Share integration has been removed, including its commands and |
| 50 | + `r.liveShare.*` settings. (#1684 @randy3k) |
| 51 | +- Several settings that no longer had any effect have been removed: |
| 52 | + `r.helpPanel.rpath`, `r.session.useWebServer`, `r.session.data.rowLimit` |
| 53 | + (superseded by on-demand loading in the data viewer), `r.session.objectLengthLimit`, |
| 54 | + `r.session.objectTimeout`, `r.session.levelOfObjectDetail`, and |
| 55 | + `r.workspaceViewer.showObjectSize`. (#1713, #1734 @Fred-Wu, #1762 @eitsupi) |
| 56 | + |
| 57 | +### Renamed settings |
| 58 | + |
| 59 | +Several settings have been given clearer, platform-independent names. The old |
| 60 | +names are deprecated but still work, so existing configurations will continue |
| 61 | +to behave as before. If both are set, the new name takes precedence (within the |
| 62 | +same user/workspace scope). |
| 63 | + |
| 64 | +| Old (deprecated) | New | |
| 65 | +|------------------------|-----------------------| |
| 66 | +| `r.rpath.<platform>` | `r.executablePath` | |
| 67 | +| `r.rterm.<platform>` | `r.consolePath` | |
| 68 | +| `r.rterm.option` | `r.consoleArgs` | |
| 69 | +| `r.rtermSendDelay` | `r.consoleSendDelay` | |
| 70 | +| `r.plot.useHttpgd` | `r.plot.backend` | |
| 71 | + |
| 72 | +(#1733, #1735, #1762 @eitsupi) |
| 73 | + |
| 74 | +### New features |
| 75 | + |
| 76 | +#### Plot viewer |
| 77 | + |
| 78 | +- New `r.plot.backend` setting for choosing the plot viewer: `"standard"`, |
| 79 | + `"httpgd"`, `"jgd"`, or `"auto"` (the default). The latter picks the best |
| 80 | + available backend, trying [jgd](https://github.com/REditorSupport/jgd) first |
| 81 | + (see next bullet), then httpgd, then the standard viewer. Changes should take |
| 82 | + effect without reloading VS Code, and you'll get a warning if the requested |
| 83 | + backend isn't installed. This supersedes the old `r.plot.useHttpgd` setting, |
| 84 | + which is deprecated but still respected (see "Renamed settings" above). |
| 85 | + (#1706, #1716, #1766 @grantmcdermott, #1733 @eitsupi) |
| 86 | +- Native integration with the lightweight `jgd` graphics device, including |
| 87 | + plot history and export. Only the `jgd` R package is needed; no separate VS |
| 88 | + Code extension required. See the `r.plot.jgd.*` settings for history and |
| 89 | + export options. (#1706 @grantmcdermott) |
| 90 | +- The standard plot viewer now re-renders plots to fit the viewer panel as it |
| 91 | + is resized, rather than displaying a fixed-size image. It also produces |
| 92 | + crisp SVG output by default if the `svglite` package is installed, falling |
| 93 | + back to PNG otherwise. Use the new `r.plot.format` setting to choose |
| 94 | + explicitly. (#1684 @randy3k) |
| 95 | +- Plot navigation commands (next, previous, zoom, export, etc.) are now hidden |
| 96 | + from the Command Palette, since they only apply to an open plot viewer. They |
| 97 | + remain available from the viewer toolbar. (#1762 @eitsupi) |
| 98 | + |
| 99 | +#### R executable and console |
| 100 | + |
| 101 | +- `r.executablePath` sets the R used for background tasks (e.g., the help |
| 102 | + server and package installation), while `r.consolePath` sets the interactive |
| 103 | + console. The latter makes it easy to use alternative consoles like |
| 104 | + [arf](https://github.com/eitsupi/arf) or |
| 105 | + [radian](https://github.com/randy3k/radian). Both accept either a full path |
| 106 | + or a bare command name on your `PATH` (e.g., `"R"` or `"arf"`), and support |
| 107 | + variables like `${workspaceFolder}`. If `r.consolePath` is unset, |
| 108 | + `r.executablePath` is used for the console too. (#1735, #1762 @eitsupi) |
| 109 | + |
| 110 | +#### Data viewer |
| 111 | + |
| 112 | +- Much faster for large datasets. Rows are loaded on demand as you scroll, |
| 113 | + rather than all at once. Arrow tables and Polars DataFrames are also |
| 114 | + supported. (#1703 @renkun-ken, #1717 @Fred-Wu) |
| 115 | +- New column panel to search, show/hide, and pin columns, plus inline filters, |
| 116 | + a "clear all filters" button, row counts, and full-value tooltips. Columns |
| 117 | + fit the viewer width by default, and your view settings are remembered. |
| 118 | + (#1747 @Fred-Wu, #1765 @renkun-ken) |
| 119 | +- Calling `View()` on the same object again refreshes the existing viewer tab, |
| 120 | + instead of opening a new one. The viewer also keeps its column layout if the |
| 121 | + column names, order, and types are unchanged. (#1707 @Fred-Wu, #1765 |
| 122 | + @renkun-ken) |
| 123 | + |
| 124 | +#### Workspace viewer |
| 125 | + |
| 126 | +- Nested objects (lists, environments, pairlists, S4 and R6 objects, data |
| 127 | + frames) can now be expanded recursively. Large objects load 500 items at a |
| 128 | + time, with a "..." row to load more. (#1713, #1730 @Fred-Wu) |
| 129 | + |
| 130 | +#### Session |
| 131 | + |
| 132 | +- R terminals now reconnect automatically after reloading the VS Code window. |
| 133 | + (#1764 @eitsupi) |
| 134 | + |
| 135 | +#### Other |
| 136 | + |
| 137 | +- `rstudioapi::showPrompt()` and `rstudioapi::askForPassword()` are now |
| 138 | + supported. (#1684 @randy3k) |
| 139 | +- R Markdown `params` from the YAML header are now evaluated before running |
| 140 | + code chunks. (#1684 @randy3k) |
| 141 | +- The extension now activates when an R or R Markdown file is opened, not just |
| 142 | + when a workspace contains one. (#1768 @ThomasSoeiro) |
| 143 | +- New R documentation files default to the `.Rd` extension. (#1773 |
| 144 | + @ThomasSoeiro) |
| 145 | + |
| 146 | +### Bug fixes |
| 147 | + |
| 148 | +- Fixed lag when sending code to the console while the workspace contains many |
| 149 | + or large objects. (#1713, #1720 @Fred-Wu) |
| 150 | +- The data viewer no longer displays very small numbers as `0`. (#1738, #1757 |
| 151 | + @Fred-Wu) |
| 152 | +- Fixed various `rstudioapi` emulation issues, including viewer routing. |
| 153 | + (#1684 @randy3k) |
| 154 | +- Removed the spurious "No text editor active" warning. (#1704 @renkun-ken) |
| 155 | +- The help viewer no longer disables TLS certificate validation when fetching |
| 156 | + from CRAN. (@tomaioo) |
| 157 | +- Session files are now created with owner-only permissions. (#1705 |
| 158 | + @renkun-ken) |
| 159 | +- `r.session.viewers.viewColumn.helpPanel` is now respected for help pages |
| 160 | + opened from R, including `"Disable"`. (#1762 @eitsupi) |
| 161 | +- Language server diagnostics now ignore virtual and deleted files. |
| 162 | + (#1697 @toscm) |
| 163 | +- When the session watcher is disabled, the warning now links to the relevant |
| 164 | + setting rather than an empty wiki page. (#1760 @Fred-Wu) |
| 165 | + |
| 166 | +### Internals |
| 167 | + |
| 168 | +- New integration test suite. (#1684 @randy3k) |
| 169 | +- Modernized CI, including Node.js 24, updated GitHub Actions, and Dependabot |
| 170 | + updates for workflow dependencies. (#1731, #1771 @eitsupi) |
| 171 | +- The `sess` R tests use |
| 172 | + [tinytest](https://github.com/markvanderloo/tinytest). (#1706 |
| 173 | + @grantmcdermott) |
| 174 | + |
| 175 | +### Organization |
| 176 | + |
| 177 | +- New maintainers with write access: @eitsupi, @Fred-Wu, and @grantmcdermott. |
| 178 | +- The [jgd](https://github.com/REditorSupport/jgd) graphics device package |
| 179 | + has joined the REditorSupport organization. |
| 180 | +- REditorSupport now has its own |
| 181 | + [R-universe](https://reditorsupport.r-universe.dev), providing up-to-date |
| 182 | + (dev) binary builds of our various R packages. |
23 | 183 |
|
24 | 184 | **Full Changelog**: <https://github.com/REditorSupport/vscode-R/compare/v2.8.8...v3.0.0> |
25 | 185 |
|
@@ -62,6 +222,6 @@ This major release updates the R session integration and adds substantial improv |
62 | 222 |
|
63 | 223 | **Full Changelog**: <https://github.com/REditorSupport/vscode-R/compare/v2.8.5...v2.8.6> |
64 | 224 |
|
65 | | -See [CHANGELOG.old.md](https://github.com/REditorSupport/vscode-R/blob/main/CHANGELOG.old.md) for changes before v2.8.5. |
| 225 | +See [CHANGELOG.old.md](https://github.com/REditorSupport/vscode-R/blob/master/CHANGELOG.old.md) for changes before v2.8.5. |
66 | 226 |
|
67 | 227 | <!-- generated by git-cliff --> |
0 commit comments