From e0836d0acade1fff888d5ffe69fb6a8fa65bfe24 Mon Sep 17 00:00:00 2001 From: eitsupi Date: Sun, 15 Nov 2026 04:04:21 +0000 Subject: [PATCH 01/10] docs(website): port README-only content and fix outdated pages Add release channels and installation steps to Getting Started, move the data viewer details and recommended console/plot setup from the README, document the native plot backend, and update R Interactive requirements for the pure R sess package. --- .../docs/configuration/extension-settings.md | 5 +- .../configuration/recommended-extensions.md | 27 +++++++++++ website/docs/features/interactive-viewers.md | 26 +++++++++-- website/docs/features/plot-viewer.md | 9 ++-- website/docs/features/r-interactive.md | 12 ++--- website/docs/getting-started.md | 46 +++++++++++++++++++ 6 files changed, 106 insertions(+), 19 deletions(-) diff --git a/website/docs/configuration/extension-settings.md b/website/docs/configuration/extension-settings.md index 54f511c2f..1c5bc18f9 100644 --- a/website/docs/configuration/extension-settings.md +++ b/website/docs/configuration/extension-settings.md @@ -48,8 +48,9 @@ Likewise, use `r.consoleArgs` instead of `r.rterm.option`, and ## Plot Settings -- `r.plot.backend`: select `auto`, `standard`, `httpgd`, or `jgd`. The default - `auto` tries JGD first, then httpgd, then the standard viewer. +- `r.plot.backend`: select `auto`, `standard`, `httpgd`, `jgd`, or `native`. + The default `auto` tries JGD first, then httpgd, then the standard viewer. + `native` leaves R's configured graphics device untouched. - `r.plot.format`: select `svglite` or `png` for the standard plot backend - `r.plot.devArgs`: supplementary graphics-device arguments for the standard backend. Width and height are managed by the responsive viewer and override diff --git a/website/docs/configuration/recommended-extensions.md b/website/docs/configuration/recommended-extensions.md index 0700ef734..f91da1d40 100644 --- a/website/docs/configuration/recommended-extensions.md +++ b/website/docs/configuration/recommended-extensions.md @@ -9,6 +9,33 @@ other editors like RStudio. Many of these are features that vscode-R does not directly control, but are possible to handle through VSCode and the libraries vscode-R interfaces with. We suggest some of those options here. +## R console, plots, and companion extensions + +- [arf](https://github.com/eitsupi/arf) is a modern R console with syntax + highlighting, multiline editing, vi/emacs keybindings, and R version + switching. It is a successor to [radian](https://github.com/randy3k/radian) + written in Rust. +- [jgd](https://github.com/REditorSupport/jgd) and + [httpgd](https://github.com/nx10/httpgd) provide interactive plots in the + [plot viewer](../features/plot-viewer.md). If jgd is not installed, vscode-R + can offer to install it into a vscode-R-managed library without changing your + R libraries. +- The [Quarto](https://marketplace.visualstudio.com/items?itemName=quarto.quarto) + extension adds support for Quarto documents, and + [VSCode-R-Debugger](https://github.com/ManuelHentschel/VSCode-R-Debugger) + enables VS Code's debugging facilities for R scripts. + +For example, with arf and jgd installed, your user `settings.json` might +include: + +```jsonc +{ + "r.consolePath": "arf", + "r.bracketedPaste": true, // recommended for arf and radian + "r.plot.backend": "jgd" // "auto" already prefers jgd, then httpgd +} +``` + ## Formatting User's `settings.json` file in VSCode can be configured to format on save: diff --git a/website/docs/features/interactive-viewers.md b/website/docs/features/interactive-viewers.md index 80aa579b9..3b942e455 100644 --- a/website/docs/features/interactive-viewers.md +++ b/website/docs/features/interactive-viewers.md @@ -18,11 +18,27 @@ display tabular data, graphics, [htmlwidgets](http://www.htmlwidgets.org/) and ### Table viewer -Rows are loaded on demand as you scroll. The table viewer supports sorting, -column filters, row counts, full-value tooltips, and a column panel for -searching, showing, hiding, pinning, and reordering columns. Calling `View()` on -the same object again refreshes the existing tab and preserves its layout when -the column names, order, and types are unchanged. +The viewer loads rows on demand and applies column filters and sorting in R +across the full table. + +- **Columns** searches column names, shows or hides matching columns, and pins + columns to either edge. Drag entries to reorder them. Row names stay pinned on + the left. +- **Filters** shows filter inputs below the headers. Press Enter to apply text + and number filters; use the filter button for ranges, missing values, or + combined conditions. **Clear filters** removes every column filter, including + filters on hidden columns. The toolbar shows the matching and total row + counts. +- Columns fit the available width by default and adapt when the viewer is + resized. **Size to content** sizes the currently displayed cells, up to 480 + pixels, and keeps those widths; **Fit width** switches back to filling the + viewer. Manually resized columns retain their widths while the remaining + flexible columns share the space. Hover over a cell to see its full value. +- Repeated `View()` calls for the same object refresh the existing tab and + retain the viewer's sizing mode, column layout, sorting, filters, and page + size when the column names, order, and types are unchanged. Refreshed data + starts on the first page. **Reset view** restores fit-width sizing, the + default layout, filters, sorting, and configured page size. image diff --git a/website/docs/features/plot-viewer.md b/website/docs/features/plot-viewer.md index fefe2aeb1..e4b3afe10 100644 --- a/website/docs/features/plot-viewer.md +++ b/website/docs/features/plot-viewer.md @@ -1,13 +1,15 @@ # Plot viewer Plots from an attached R session can be displayed in a VS Code editor tab. Use -`r.plot.backend` to select one of four modes: +`r.plot.backend` to select one of five modes: - `auto` (default): use JGD if installed, otherwise httpgd if installed, otherwise the standard viewer - `jgd`: use the [JGD](https://github.com/REditorSupport/jgd) graphics device - `httpgd`: use the [httpgd](https://github.com/nx10/httpgd) graphics device - `standard`: use the built-in responsive plot viewer +- `native`: use R's configured graphics device without plot integration or + opening the VS Code plot viewer automatically Backend changes take effect without reloading VS Code. vscode-R warns and falls back when the requested package is unavailable. @@ -27,9 +29,8 @@ Use `r.plot.format` to request `"svglite"` or `"png"`. The `r.plot.devArgs` setting supplies additional graphics-device arguments, but the responsive viewer manages width and height itself. -To use R's native graphics window instead, disable the session watcher with -`r.sessionWatcher`. This also disables the other features that require an -attached R session. +To use R's native graphics window instead, set `r.plot.backend` to `"native"`. +The other features that require an attached R session remain available. ## JGD viewer diff --git a/website/docs/features/r-interactive.md b/website/docs/features/r-interactive.md index 12f2281c1..fbd5f080c 100644 --- a/website/docs/features/r-interactive.md +++ b/website/docs/features/r-interactive.md @@ -8,17 +8,17 @@ R Interactive was introduced in vscode-R 3.2.0 ([PR #1805](https://github.com/RE ## Requirements and setup -Use **VS Code 1.101.0 or newer**. R Interactive currently supports Linux and macOS; its native console bridge does not support Windows. Existing R terminal workflows remain available. +Use **VS Code 1.101.0 or newer**. R Interactive currently supports Linux and macOS; persistent session supervision is not available on Windows. Existing R terminal workflows remain available. For Remote SSH, install this extension **on the remote host**. R, its packages, optional executables, and session storage must be available on that host. For local use, the same requirements apply to your computer. The R host needs: -- R, plus either compatible pre-built sess/dependency packages or a C compiler capable of building R packages (`r-base-dev` and `build-essential` on Debian/Ubuntu). +- R. The bundled sess package is pure R and needs no compiler; its missing Imports are installed from the configured R repository. - The session agent automatically uses the extension host's bundled runtime: VS Code's Electron runtime in Node mode on desktop, or VS Code Server's Node runtime remotely. A separate Node.js installation is optional. - `tmux` is optional. On Linux, the default supervisor uses tmux when available and otherwise starts an independent detached process. `systemd --user` is another configurable option. - R packages `processx`, `later`, `jsonlite`, and `rstudioapi`. Install `languageserver` for language features, `jgd` and `systemfonts` for JGD graphics, `svglite` for the static fallback, and `htmlwidgets`/`htmltools` for HTML output. -- `arf` is optional. Creating a headless arf session requires an executable on the R host; plain R requires no arf installation. Connecting to an already-running arf uses its socket and does not require arf on the extension host's PATH. The provider contract was exercised with arf 0.5.1. +- `arf` is optional. Creating a headless arf session requires an executable on the R host; plain R requires no arf installation. Connecting to an already-running arf uses its socket and does not require arf on the extension host's PATH. The provider contract is tested with arf 0.5.3. For example, run in the R installation used on the server: @@ -37,11 +37,7 @@ Runtime availability and version (Node.js 18+) are checked before installation o ### R packages and project libraries -The extension installs its bundled `sess` into a private, content-addressed library. It does not replace your installed `sess` package. If the source build fails, including when build tools are missing, it tries a compiler-free package from [R-universe](https://reditorsupport.r-universe.dev/sess). Installation diagnostics appear in the **R Interactive** output channel. - -On macOS, the fallback uses R's matching binary repository. On Ubuntu, it uses a repository matching the host's codename, architecture, and R version. It never assumes that an Ubuntu binary is compatible with another Linux distribution. Dependencies for a binary fallback come from the matching R-universe repositories. No global repository settings are changed. - -The compiler-free fallback requires a published `sess` build compatible with the native Interactive bridge. A matching package version alone is insufficient; the extension checks the compatibility marker, required functions, and registered native console routines. Until a compatible build is published for your host, building the bundled package requires a C compiler. Missing or incompatible binaries produce an installation error with diagnostics in **R Interactive**. +The extension installs its bundled pure R sess into a private, content-addressed library when starting an Interactive session. It does not replace your installed sess package. Missing Imports are installed from the configured R repository; no global repository settings are changed. Installation diagnostics appear in the **R Interactive** output channel. That private library is used only to load the bridge; it is not added to your session's `.libPaths()` or `R_LIBS`. Package installation follows ordinary R behavior: `install.packages()` defaults to the first library in `.libPaths()`, usually your user library. Startup files can customize that order, and an explicit `lib=` still takes precedence. The extension does not force a user-library destination over a project library. diff --git a/website/docs/getting-started.md b/website/docs/getting-started.md index 5c72a2318..45b91b6d1 100644 --- a/website/docs/getting-started.md +++ b/website/docs/getting-started.md @@ -68,3 +68,49 @@ needed to make each part work well together. To minimize that cost, please refer to the detailed installation instructions we provide for [Windows](./installation/windows.md), [macOS](./installation/macos.md) and [Linux](./installation/linux.md). + +## Install the extension + +Install the stable release from the +[VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=REditorSupport.r) +or the [Open VSX Registry](https://open-vsx.org/extension/REditorSupport/r), or +from the command line: + +```sh +code --install-extension REditorSupport.r +``` + +Then install the languageserver R package: + +```r +install.packages("languageserver") +``` + +Create an R file and start coding. When prompted, click **Yes** to install the +bundled sess package. + +### Release channels + +| Channel | Published | How to install | +| --- | --- | --- | +| Stable | When a version is tagged | VS Code Marketplace or Open VSX Registry | +| Daily pre-release | Daily from `main`, after verification passes | **Switch to Pre-Release Version** on the extension's page in VS Code | +| Development build | After each verified push to `main` | The `vscode-R.vsix` file attached to the [`latest`](https://github.com/REditorSupport/vscode-R/releases/tag/latest) GitHub release | + +Stable releases use an even minor version (for example, `3.4.0`), and daily +pre-releases use the next odd minor version with the UTC date as the patch +version (for example, `3.5.20261115`). A scheduled run publishes nothing when +`main` has no changes since the last pre-release, or only changes that do not +affect the extension, such as CI or test files. Choose **Switch to Release +Version** on the extension's page to return to stable releases. + +The development build is not published to a registry. Download and install it +manually: + +```sh +curl -fsSL -o vscode-R.vsix https://github.com/REditorSupport/vscode-R/releases/download/latest/vscode-R.vsix +code --install-extension vscode-R.vsix +``` + +The `latest` release is replaced on each update, so note the extension version +and the commit it was built from when reporting a problem. From d3955e70254f16a447a2e5fe70a6a97732786e73 Mon Sep 17 00:00:00 2001 From: eitsupi Date: Sun, 15 Nov 2026 04:04:21 +0000 Subject: [PATCH 02/10] docs: slim down README and point to the documentation site Replace wiki links with the documentation site, use static badges for the documentation and both registries, and describe daily pre-releases accurately. --- CONTRIBUTING.md | 4 +- README.md | 128 ++++++------------------------------------------ 2 files changed, 16 insertions(+), 116 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c0091396b..596816e05 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing to vscode-r -If you are interested in writing code to fix issues, please see [How to Contribute](https://github.com/REditorSupport/vscode-R/wiki/Contributing) in the wiki. +If you are interested in writing code to fix issues, please see [Contributing](https://reditorsupport.github.io/vscode-R/contributing) on the documentation site. ## Debugging the extension @@ -84,7 +84,7 @@ Interactive session. Run the source/bootstrap checks with ## Testing R Interactive -The [architecture and backend contract](src/interactive/README.md) live beside the implementation. User setup and behavior belong in the [R Interactive wiki page](https://github.com/REditorSupport/vscode-R/wiki/R-Interactive). +The [architecture and backend contract](src/interactive/README.md) live beside the implementation. User setup and behavior belong in the [R Interactive documentation page](https://reditorsupport.github.io/vscode-R/features/r-interactive). Use Linux or macOS for Interactive runtime tests, with R and an installed arf 0.5.3 executable. Bundled sess is pure R and needs no compiler when its Imports are already installed; missing Imports are installed from the configured repository. Windows runs the remaining extension checks; persistent Interactive supervision remains limited to Linux/macOS. From the repository root, after installing pnpm dependencies, prepare a test library: diff --git a/README.md b/README.md index 56c9ef4a6..abfe82f17 100644 --- a/README.md +++ b/README.md @@ -2,131 +2,33 @@ -Release -Development version -CI +Documentation +VS Code Marketplace +Open VSX Registry -This [VS Code](https://code.visualstudio.com/) extension provides support for the [R programming language](https://www.r-project.org), including features such as R language service based on code analysis, interacting with R terminals, viewing data, plots, workspace variables, help pages, managing packages, and working with [R Markdown](https://rmarkdown.rstudio.com/) documents. See the [wiki](https://github.com/REditorSupport/vscode-R/wiki) for full documentation. +This [VS Code](https://code.visualstudio.com/) extension provides support for the [R programming language](https://www.r-project.org), including an R language service based on code analysis, interaction with R terminals, viewers for data, plots, workspace variables, and help pages, package management, and [R Markdown](https://rmarkdown.rstudio.com/) support. -The R and R Markdown syntaxes are located in a sibling package [vscode-R-syntax](https://github.com/REditorSupport/vscode-R-syntax). +**Documentation: ** -## What's new in 3.0.0 - -v3.0.0 is a major release with faster, more reliable R session communication, -powered by the [`sess`](./sess/README.md) package. The extension includes `sess` -and prompts to install or update the bundled copy when needed. Missing Imports -are installed from the configured R repository. See the [changelog](./CHANGELOG.md) -for other changes and upgrade notes. +See [Getting Started](https://reditorsupport.github.io/vscode-R/getting-started) for an overview, and the installation guides for [Windows](https://reditorsupport.github.io/vscode-R/installation/windows), [macOS](https://reditorsupport.github.io/vscode-R/installation/macos), and [Linux](https://reditorsupport.github.io/vscode-R/installation/linux) for detailed setup instructions. ## Quickstart -1. [Install R](https://cloud.r-project.org/) (>= 3.4.0) on your system. On Windows, we recommend letting the installer write the R path to the registry. +1. [Install R](https://cloud.r-project.org/) (>= 3.4.0). -2. Install the [`languageserver`](https://github.com/REditorSupport/languageserver) package from R. +2. Install the [languageserver](https://github.com/REditorSupport/languageserver) package from R. ```r install.packages("languageserver") ``` -3. Install the stable release of this extension from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=reditorsupport.r) or the [Open VSX Registry](https://open-vsx.org/extension/reditorsupport/r). This release requires VS Code 1.101.0 or later. - - ```sh - code --install-extension REditorSupport.r - ``` - - To receive daily development updates, choose **Switch to Pre-Release Version** on the R extension's page in VS Code. New pre-releases are published to the VS Code Marketplace and Open VSX Registry when `main` changes and verification passes. Choose **Switch to Release Version** to return to stable releases. When reporting problems, include the extension version and reproduction steps. - - Alternatively, you can test the latest development version by installing from GitHub: - -
- Install the development version - - The [`latest`](https://github.com/REditorSupport/vscode-R/releases/tag/latest) - pre-release is updated after successful verification of a push to `main`. Download and install it: - - ```sh - curl -fsSL -o vscode-R.vsix https://github.com/REditorSupport/vscode-R/releases/download/latest/vscode-R.vsix - code --install-extension vscode-R.vsix - ``` - -
- -4. Create an R file and start coding! (Click **Yes** if prompted to install `sess`.) - -### Recommended extras - -Steps 1–3 above are all that's required to get started with R in VS Code. But we also recommend the following software for a fully optimized R + VS Code experience: - -* Install an interactive plotting backend for a better R graphics experience: - * [jgd](https://github.com/grantmcdermott/jgd): Lightweight JSON graphics device with native vscode-R integration. If it is not installed, vscode-R can offer to install it into a vscode-R-managed library without changing your R libraries. - * [httpgd](https://github.com/nx10/httpgd): SVG-based graphics device served via HTTP and WebSockets. - -* [arf](https://github.com/eitsupi/arf): A modern R console with many features: syntax highlighting, multiline editing, vi/emacs keybindings, R version switching, etc. Successor to [radian](https://github.com/randy3k/radian) written in Rust. - -* Complementary VS Code extensions: - * [Quarto](https://marketplace.visualstudio.com/items?itemName=quarto.quarto): the official Quarto plugin for VS Code. - * [VSCode-R-Debugger](https://github.com/ManuelHentschel/VSCode-R-Debugger): enables VS Code's debugging facilities for R scripts. - -For example, assuming that you have installed `arf` and `jgd`, your user `settings.json` might include: - -```jsonc -{ - "r.consolePath": "arf", - "r.bracketedPaste": true, // recommended for arf (and radian) - "r.plot.backend": "jgd" // "auto" already prefers jgd, then httpgd -} -``` - -Please consult the relevant installation wiki pages for your OS ([Windows](https://github.com/REditorSupport/vscode-R/wiki/Installation:-Windows) | [macOS](https://github.com/REditorSupport/vscode-R/wiki/Installation:-macOS) | [Linux](https://github.com/REditorSupport/vscode-R/wiki/Installation:-Linux)) for more detailed instructions. - -Set `r.plot.backend` to `"native"` to use R's configured graphics device without -opening the VS Code plot viewer automatically. The `"standard"` backend continues -to display static plots in VS Code. +3. Install this extension from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=REditorSupport.r) or the [Open VSX Registry](https://open-vsx.org/extension/REditorSupport/r). It requires VS Code 1.101.0 or later. -## Features +4. Create an R file and start coding! (Click **Yes** if prompted to install sess.) -* Snippets for R and R Markdown. - -* [R Language Service](https://github.com/REditorSupport/vscode-R/wiki/R-Language-Service): Code completion, function signature, symbol highlight, document outline, formatting, definition, diagnostics, references, and more. - -* [Interacting with R terminals](https://github.com/REditorSupport/vscode-R/wiki/Interacting-with-R-terminals): Sending code to terminals, running multiple terminals, working with remote servers. - -* [Package development](https://github.com/REditorSupport/vscode-R/wiki/Package-development): Build, test, install, load all and other commands from devtools. - -* [Keyboard shortcuts](https://github.com/REditorSupport/vscode-R/wiki/Keyboard-shortcuts): Built-in and customizable keyboard shortcuts. - -* [Workspace viewer](https://github.com/REditorSupport/vscode-R/wiki/Sidebar-user-interface#workspace-viewer): Environment pane to show global variables in the attached R session. - -* [Help pages viewer](https://github.com/REditorSupport/vscode-R/wiki/Sidebar-user-interface#help-pages-viewer): Viewing R help pages and searching help topics. - -* [Package management](https://github.com/REditorSupport/vscode-R/wiki/Sidebar-user-interface#package-management): Installing and removing R packages. - -* Session symbol hover and completion. - -* [Data viewer](https://github.com/REditorSupport/vscode-R/wiki/Interactive-viewers#data-viewer): Viewing data frames, matrices, Arrow tables, and polars data frames in a paged, sortable, filterable grid; lists in a tree view. - -* [Plot viewer](https://github.com/REditorSupport/vscode-R/wiki/Plot-viewer): Interactive plot viewer with support for [jgd](https://github.com/grantmcdermott/jgd) and [httpgd](https://github.com/nx10/httpgd) backends, plus a standard PNG/SVG fallback. - -* [Webpage viewer](https://github.com/REditorSupport/vscode-R/wiki/Interactive-viewers#webpage-viewer): Viewing [htmlwidgets](https://www.htmlwidgets.org) such as interactive graphics and [visual profiling results](https://rstudio.github.io/profvis/). - -* [Browser viewer](https://github.com/REditorSupport/vscode-R/wiki/Interactive-viewers#browser-viewer): Viewing interactive [shiny](https://shiny.rstudio.com) apps. - -* [R Markdown support](https://github.com/REditorSupport/vscode-R/wiki/R-Markdown): R Markdown chunk highlighting, chunk navigation, execute commands, and preview. - -* [RStudio add-in support](https://github.com/REditorSupport/vscode-R/wiki/RStudio-addin-support): Run supported RStudio add-ins in VS Code with a live R session. - -* Full support of [Remote Development](https://code.visualstudio.com/docs/remote/remote-overview) via [SSH](https://code.visualstudio.com/docs/remote/ssh), [Containers](https://code.visualstudio.com/docs/remote/containers) and [WSL](https://code.visualstudio.com/docs/remote/wsl). - -## Exploring data - -Call `View(x)` to open a table. The viewer loads rows on demand and applies column filters and sorting in R across the full table. - -* **Columns** searches column names, shows or hides matching columns, and pins columns to either edge. Drag entries to reorder them. Row names stay pinned on the left. -* **Filters** shows filter inputs below the headers. Press Enter to apply text and number filters; use the filter button for ranges, missing values, or combined conditions. **Clear filters** removes every column filter, including filters on hidden columns. The toolbar shows the matching and total row counts. -* Columns fit the available width by default and adapt when the viewer is resized. **Size to content** sizes the currently displayed cells, up to 480 pixels, and keeps those widths; **Fit width** switches back to filling the viewer. Manually resized columns retain their widths while the remaining flexible columns share the space. Hover over a cell to see its full value. -* Repeated `View()` calls for the same object retain the viewer's sizing mode, column layout, sorting, filters, and page size when the column names, order, and types are unchanged. Refreshed data starts on the first page. **Reset view** restores fit-width sizing, the default layout, filters, sorting, and configured page size. +Daily pre-releases are also available: choose **Switch to Pre-Release Version** on the extension's page in VS Code. See [release channels](https://reditorsupport.github.io/vscode-R/getting-started#release-channels) for details and development builds. ## Questions, bug reports, ideas, and contributions @@ -134,10 +36,8 @@ Call `View(x)` to open a table. The viewer loads rows on demand and applies colu * If you have an idea for a new feature or behavior change, please [start an Ideas discussion](https://github.com/REditorSupport/vscode-R/discussions/new?category=ideas). -* If you find a reproducible problem with the extension, please [check the existing issues](https://github.com/REditorSupport/vscode-R/issues) and then [file a bug report](https://github.com/REditorSupport/vscode-R/issues/new/choose). - -* Contributions are always welcome! Please see the [contributing guide](https://github.com/REditorSupport/vscode-R/wiki/Contributing) for more details. +* If you find a reproducible problem with the extension, please [check the existing issues](https://github.com/REditorSupport/vscode-R/issues) and then [file a bug report](https://github.com/REditorSupport/vscode-R/issues/new/choose). Include the extension version and reproduction steps. -## Persistent R Interactive +* Contributions are always welcome! Please see the [contributing guide](https://reditorsupport.github.io/vscode-R/contributing) for more details. -This experimental feature provides native VS Code Interactive windows with independent arf sessions, including adoption of existing arf sessions over Remote SSH. vscode-R installs the bundled pure-R `sess` snapshot; missing Imports come from the configured R repository. Managed sessions retain streaming output, interruption, rich tables, HTML, and plots; notebook console input and debugger prompts are currently unavailable. See the [setup and usage guide](https://github.com/REditorSupport/vscode-R/wiki/R-Interactive) for session switching, persistence, rich outputs, and platform requirements. +The R and R Markdown syntaxes are located in a sibling package, [vscode-R-syntax](https://github.com/REditorSupport/vscode-R-syntax). See the [changelog](https://github.com/REditorSupport/vscode-R/blob/main/CHANGELOG.md) for changes in each release. From e0d5ef6f75360ecd713a8f1056473b0128f496e2 Mon Sep 17 00:00:00 2001 From: eitsupi Date: Sun, 15 Nov 2026 04:14:35 +0000 Subject: [PATCH 03/10] docs(website): correct R Interactive input and provider requirements Interactive sessions require arf and cannot answer console input or debugger prompts, as the README previously noted. Also clarify when scheduled pre-releases are skipped. --- website/docs/features/r-interactive.md | 6 +++--- website/docs/getting-started.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/website/docs/features/r-interactive.md b/website/docs/features/r-interactive.md index fbd5f080c..a01e57a02 100644 --- a/website/docs/features/r-interactive.md +++ b/website/docs/features/r-interactive.md @@ -18,7 +18,7 @@ The R host needs: - The session agent automatically uses the extension host's bundled runtime: VS Code's Electron runtime in Node mode on desktop, or VS Code Server's Node runtime remotely. A separate Node.js installation is optional. - `tmux` is optional. On Linux, the default supervisor uses tmux when available and otherwise starts an independent detached process. `systemd --user` is another configurable option. - R packages `processx`, `later`, `jsonlite`, and `rstudioapi`. Install `languageserver` for language features, `jgd` and `systemfonts` for JGD graphics, `svglite` for the static fallback, and `htmlwidgets`/`htmltools` for HTML output. -- `arf` is optional. Creating a headless arf session requires an executable on the R host; plain R requires no arf installation. Connecting to an already-running arf uses its socket and does not require arf on the extension host's PATH. The provider contract is tested with arf 0.5.3. +- arf. Creating a new Interactive session requires an arf executable on the R host. Connecting to an already-running arf uses its socket and does not require arf on the extension host's PATH. The provider contract is tested with arf 0.5.3. For example, run in the R installation used on the server: @@ -68,7 +68,7 @@ Detached launch goes through a short-lived bootstrap so the agent leaves the edi ## Start a session -Run **R: New Persistent Interactive Session**, choose **R** or **arf**, and name the session. Each session opens its own Interactive window; select it in **R → Interactive Sessions** to return to it. Plain R does not require arf. Multiple sessions execute concurrently; each R process runs submitted cells serially. +Run **R: New Persistent Interactive Session**, choose **arf**, and name the session. Each session opens its own Interactive window; select it in **R → Interactive Sessions** to return to it. Multiple sessions execute concurrently; each R process runs submitted cells serially. ### Connect to an existing arf session @@ -118,7 +118,7 @@ New arf sessions save their resolved absolute executable path, so a later PATH c ### R execution and input - Code runs in `.GlobalEnv`; visible results update `.Last.value`. Output is streamed during execution. Messages, warnings, errors, and traces are represented separately from ordinary console output. Errors show their message followed by the user calls, omitting the worker, arf transport, and condition-handler scaffolding. Saved R and Jupyter notebooks retain both the message and trace. -- `readline()`, `scan()`, and `browser()` prompts appear as input requests. Canceling the input box leaves R waiting; **Reply to Interactive Input** opens it again. **Interrupt Interactive Session** signals the R process while preserving the environment when R handles the interrupt. +- Notebook console input and debugger prompts are currently unavailable: `readline()`, `scan()`, and `browser()` prompts cannot be answered from the Interactive window. Use an ordinary R terminal for code that needs console input. **Interrupt Interactive Session** signals the R process while preserving the environment when R handles the interrupt. - R remains single-threaded. A native call that does not check interrupts may delay cancellation. Arbitrary environment inspection and table queries are not executed concurrently with user code; cached workspace information remains visible while R is busy. - A rerun creates a new execution identity and history entry. Submissions with an existing identity are deduplicated. Reconnect never resubmits code automatically. Ambiguous dispatch failures block the queue until completion or process exit establishes what happened. - A client control lease prevents two windows from submitting simultaneously. Other clients can observe retained output; **Take Control of Interactive Session** explicitly transfers control. diff --git a/website/docs/getting-started.md b/website/docs/getting-started.md index 45b91b6d1..d5ed70def 100644 --- a/website/docs/getting-started.md +++ b/website/docs/getting-started.md @@ -98,10 +98,10 @@ bundled sess package. | Development build | After each verified push to `main` | The `vscode-R.vsix` file attached to the [`latest`](https://github.com/REditorSupport/vscode-R/releases/tag/latest) GitHub release | Stable releases use an even minor version (for example, `3.4.0`), and daily -pre-releases use the next odd minor version with the UTC date as the patch +pre-releases use the following odd minor version with the UTC date as the patch version (for example, `3.5.20261115`). A scheduled run publishes nothing when -`main` has no changes since the last pre-release, or only changes that do not -affect the extension, such as CI or test files. Choose **Switch to Release +nothing that affects the published extension has changed since the last +pre-release, for example when only tests or development tooling changed. Choose **Switch to Release Version** on the extension's page to return to stable releases. The development build is not published to a registry. Download and install it From 4e25b1a96b1d7c9cc9e44a18dd391647377f240d Mon Sep 17 00:00:00 2001 From: eitsupi Date: Sun, 15 Nov 2026 04:23:56 +0000 Subject: [PATCH 04/10] docs(website): explain odd minor handling for daily pre-releases --- website/docs/getting-started.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/website/docs/getting-started.md b/website/docs/getting-started.md index d5ed70def..6a582c075 100644 --- a/website/docs/getting-started.md +++ b/website/docs/getting-started.md @@ -98,8 +98,9 @@ bundled sess package. | Development build | After each verified push to `main` | The `vscode-R.vsix` file attached to the [`latest`](https://github.com/REditorSupport/vscode-R/releases/tag/latest) GitHub release | Stable releases use an even minor version (for example, `3.4.0`), and daily -pre-releases use the following odd minor version with the UTC date as the patch -version (for example, `3.5.20261115`). A scheduled run publishes nothing when +pre-releases use the next odd minor version (or keep an odd minor version that +is already set in development) with the UTC date as the patch version (for +example, `3.5.20261115`). A scheduled run publishes nothing when nothing that affects the published extension has changed since the last pre-release, for example when only tests or development tooling changed. Choose **Switch to Release Version** on the extension's page to return to stable releases. From be185c811ad318b3fa27e862e35dc5f6a5d8e89d Mon Sep 17 00:00:00 2001 From: eitsupi Date: Sun, 15 Nov 2026 04:29:34 +0000 Subject: [PATCH 05/10] docs(website): drop pre-release publishing details from Getting Started --- website/docs/getting-started.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/website/docs/getting-started.md b/website/docs/getting-started.md index 6a582c075..9583a87ad 100644 --- a/website/docs/getting-started.md +++ b/website/docs/getting-started.md @@ -94,16 +94,11 @@ bundled sess package. | Channel | Published | How to install | | --- | --- | --- | | Stable | When a version is tagged | VS Code Marketplace or Open VSX Registry | -| Daily pre-release | Daily from `main`, after verification passes | **Switch to Pre-Release Version** on the extension's page in VS Code | +| Daily pre-release | Daily from `main` | **Switch to Pre-Release Version** on the extension's page in VS Code | | Development build | After each verified push to `main` | The `vscode-R.vsix` file attached to the [`latest`](https://github.com/REditorSupport/vscode-R/releases/tag/latest) GitHub release | -Stable releases use an even minor version (for example, `3.4.0`), and daily -pre-releases use the next odd minor version (or keep an odd minor version that -is already set in development) with the UTC date as the patch version (for -example, `3.5.20261115`). A scheduled run publishes nothing when -nothing that affects the published extension has changed since the last -pre-release, for example when only tests or development tooling changed. Choose **Switch to Release -Version** on the extension's page to return to stable releases. +Choose **Switch to Release Version** on the extension's page to return to +stable releases. The development build is not published to a registry. Download and install it manually: From 6fbac156b88abd81d34a1e9c7c1dbedf6bfd7aae Mon Sep 17 00:00:00 2001 From: eitsupi Date: Sun, 15 Nov 2026 04:47:04 +0000 Subject: [PATCH 06/10] docs: write the jgd package name in lowercase --- CONTRIBUTING.md | 2 +- website/docs/configuration/extension-settings.md | 6 +++--- website/docs/features/interactive-viewers.md | 2 +- website/docs/features/plot-viewer.md | 14 +++++++------- website/docs/features/r-interactive.md | 10 +++++----- website/docs/getting-started.md | 2 +- website/docs/index.md | 2 +- website/docs/installation/linux.md | 4 ++-- website/docs/installation/macos.md | 4 ++-- website/docs/installation/windows.md | 4 ++-- 10 files changed, 25 insertions(+), 25 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 596816e05..c82032fab 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -96,7 +96,7 @@ pnpm run build Rscript -e 'tinytest::test_package("sess")' ``` -`pnpm run build` installs the bundled sess and its dependencies, including suggested packages, into the selected R library. JGD checks need `jgd` and `systemfonts`; standard graphics uses `svglite` or PNG. Runtime suites build private pure R sess installations and use disposable sessions/libraries. Keep `R_LIBS` set for the commands below. +`pnpm run build` installs the bundled sess and its dependencies, including suggested packages, into the selected R library. jgd checks need `jgd` and `systemfonts`; standard graphics uses `svglite` or PNG. Runtime suites build private pure R sess installations and use disposable sessions/libraries. Keep `R_LIBS` set for the commands below. ```sh pnpm run test:interactive diff --git a/website/docs/configuration/extension-settings.md b/website/docs/configuration/extension-settings.md index 1c5bc18f9..406818cbb 100644 --- a/website/docs/configuration/extension-settings.md +++ b/website/docs/configuration/extension-settings.md @@ -49,15 +49,15 @@ Likewise, use `r.consoleArgs` instead of `r.rterm.option`, and ## Plot Settings - `r.plot.backend`: select `auto`, `standard`, `httpgd`, `jgd`, or `native`. - The default `auto` tries JGD first, then httpgd, then the standard viewer. + The default `auto` tries jgd first, then httpgd, then the standard viewer. `native` leaves R's configured graphics device untouched. - `r.plot.format`: select `svglite` or `png` for the standard plot backend - `r.plot.devArgs`: supplementary graphics-device arguments for the standard backend. Width and height are managed by the responsive viewer and override values supplied here. -- `r.plot.jgd.historyLimit`: maximum number of plots kept in JGD history +- `r.plot.jgd.historyLimit`: maximum number of plots kept in jgd history - `r.plot.jgd.exportWidth`, `r.plot.jgd.exportHeight`, and - `r.plot.jgd.exportDpi`: default JGD export dimensions and resolution + `r.plot.jgd.exportDpi`: default jgd export dimensions and resolution - `r.plot.defaults.colorTheme`: which color theme to use when launching the plot httpgd viewer - `r.plot.defaults.plotPreviewLayout`: how to display plot previews if more than diff --git a/website/docs/features/interactive-viewers.md b/website/docs/features/interactive-viewers.md index 3b942e455..96a7c2c03 100644 --- a/website/docs/features/interactive-viewers.md +++ b/website/docs/features/interactive-viewers.md @@ -50,7 +50,7 @@ The list viewer supports collapsing nodes. ## Plot viewer -The plot viewer supports JGD, httpgd, and a responsive standard SVG/PNG backend. +The plot viewer supports jgd, httpgd, and a responsive standard SVG/PNG backend. For more details, go to [Plot viewer](./plot-viewer.md). diff --git a/website/docs/features/plot-viewer.md b/website/docs/features/plot-viewer.md index e4b3afe10..77bd739c9 100644 --- a/website/docs/features/plot-viewer.md +++ b/website/docs/features/plot-viewer.md @@ -3,9 +3,9 @@ Plots from an attached R session can be displayed in a VS Code editor tab. Use `r.plot.backend` to select one of five modes: -- `auto` (default): use JGD if installed, otherwise httpgd if installed, +- `auto` (default): use jgd if installed, otherwise httpgd if installed, otherwise the standard viewer -- `jgd`: use the [JGD](https://github.com/REditorSupport/jgd) graphics device +- `jgd`: use the [jgd](https://github.com/REditorSupport/jgd) graphics device - `httpgd`: use the [httpgd](https://github.com/nx10/httpgd) graphics device - `standard`: use the built-in responsive plot viewer - `native`: use R's configured graphics device without plot integration or @@ -14,10 +14,10 @@ Plots from an attached R session can be displayed in a VS Code editor tab. Use Backend changes take effect without reloading VS Code. vscode-R warns and falls back when the requested package is unavailable. -JGD is lightweight, has no external R-package dependencies, and is usually +jgd is lightweight, has no external R-package dependencies, and is usually simpler to install. httpgd has a mature, feature-rich SVG viewer, but a larger compiled dependency footprint. If you are unsure which optional backend to -install, start with JGD. +install, start with jgd. ## Standard viewer @@ -32,15 +32,15 @@ responsive viewer manages width and height itself. To use R's native graphics window instead, set `r.plot.backend` to `"native"`. The other features that require an attached R session remain available. -## JGD viewer +## jgd viewer -Install the `jgd` R package to use the lightweight JGD backend: +Install the `jgd` R package to use the lightweight jgd backend: ```r install.packages("jgd") ``` -JGD supports plot history, navigation, zoom, and export. Configure the maximum +jgd supports plot history, navigation, zoom, and export. Configure the maximum history size with `r.plot.jgd.historyLimit`, and the default export dimensions and resolution with `r.plot.jgd.exportWidth`, `r.plot.jgd.exportHeight`, and `r.plot.jgd.exportDpi`. diff --git a/website/docs/features/r-interactive.md b/website/docs/features/r-interactive.md index a01e57a02..ae983264a 100644 --- a/website/docs/features/r-interactive.md +++ b/website/docs/features/r-interactive.md @@ -17,7 +17,7 @@ The R host needs: - R. The bundled sess package is pure R and needs no compiler; its missing Imports are installed from the configured R repository. - The session agent automatically uses the extension host's bundled runtime: VS Code's Electron runtime in Node mode on desktop, or VS Code Server's Node runtime remotely. A separate Node.js installation is optional. - `tmux` is optional. On Linux, the default supervisor uses tmux when available and otherwise starts an independent detached process. `systemd --user` is another configurable option. -- R packages `processx`, `later`, `jsonlite`, and `rstudioapi`. Install `languageserver` for language features, `jgd` and `systemfonts` for JGD graphics, `svglite` for the static fallback, and `htmlwidgets`/`htmltools` for HTML output. +- R packages `processx`, `later`, `jsonlite`, and `rstudioapi`. Install `languageserver` for language features, `jgd` and `systemfonts` for jgd graphics, `svglite` for the static fallback, and `htmlwidgets`/`htmltools` for HTML output. - arf. Creating a new Interactive session requires an arf executable on the R host. Connecting to an already-running arf uses its socket and does not require arf on the extension host's PATH. The provider contract is tested with arf 0.5.3. For example, run in the R installation used on the server: @@ -136,10 +136,10 @@ External terminal output observed through the arf console bridge is retained in | Output | Behavior | | --- | --- | | Console, warnings, errors | Incremental output with per-execution limits and explicit truncation notices | -| Base/grid/ggplot graphics | JGD frames retained by the agent and rendered as scalable SVG; independent font metrics work without a connected editor | +| Base/grid/ggplot graphics | jgd frames retained by the agent and rendered as scalable SVG; independent font metrics work without a connected editor | | Incremental graphics | Recorded execution markers associate updates with their producing cell, including extensions of an existing plot | | Plot controls | Compact icons with labels for opening and resizing; **Save…** opens a native VS Code format picker for SVG and PNG | -| Static fallback | Captured plots when JGD/systemfonts are unavailable or `plotBackend` is `standard` | +| Static fallback | Captured plots when jgd/systemfonts are unavailable or `plotBackend` is `standard` | | Data frames and matrices | On-demand inline pages (20/50/100 rows), first/last and page jumps, sorting, column filters/reordering and Reset; an expanded data viewer remains available. Requests stay bound to their originating session | | HTML widgets and HTML tags | Sandboxed browser output with copied local dependencies; dependencies remain after the R temporary source is gone | | Explicit MIME | `sess::display(x, mime = "text/markdown")`, HTML, and text formats | @@ -174,7 +174,7 @@ Full-table handles retain their original objects in R memory without an addition ### Widgets and output controls -JGD graphics and browser widgets have different interaction models: a static R plot can resize and export, while plotly/leaflet-style interaction comes from the widget's JavaScript. Arbitrary widget behavior that requires browser permissions or unavailable external network resources remains subject to the sandbox and server configuration. +jgd graphics and browser widgets have different interaction models: a static R plot can resize and export, while plotly/leaflet-style interaction comes from the widget's JavaScript. Arbitrary widget behavior that requires browser permissions or unavailable external network resources remains subject to the sandbox and server configuration. Table paging uses arrow icons with tooltips and accessible names. **Data viewer**, **Open plot**, and **Fit R device** retain short labels alongside their icons. **Save…** opens VS Code's native format picker without changing the cell height or scroll position, followed by the file save dialog. PNG is offered after the image loads. The picker supports typing, arrow-key navigation, Enter to select, and Escape to cancel. Each output allows one pending picker, and replies to replaced or disposed outputs are ignored. @@ -237,7 +237,7 @@ These limits do not cap total session storage: earlier R generations and executi Plot storage follows this lifecycle: -- Incremental JGD drawing updates are combined over 200 ms, and pending updates for an execution are flushed when it finishes. The agent saves SVG snapshots; it keeps JGD's drawing operations in memory for live plot handling instead of also saving redundant JSON frame files. +- Incremental jgd drawing updates are combined over 200 ms, and pending updates for an execution are flushed when it finishes. The agent saves SVG snapshots; it keeps jgd's drawing operations in memory for live plot handling instead of also saving redundant JSON frame files. - Generated SVG/JSON assets of at least 4 KiB use gzip when it reduces their size. Identical content is deduplicated. Display and export decode transparently; exported SVG/JSON files remain ordinary files. Existing uncompressed assets remain readable. HTML dependencies retain their original encoding and directory structure. - Automatic cleanup starts when a write would exceed 80% of the quota. It removes superseded snapshots and unreferenced generated assets. The latest display version in every retained journal generation is protected, including all dependencies of retained HTML widgets. When journal rotation removes an output's last reference, its assets become eligible for cleanup. A corrupt or unreadable journal prevents cleanup. - **R: Clean Up Interactive Assets**, also in the session context menu, runs cleanup immediately and reports reclaimed space and current usage. Clearing cells only hides them; it does not erase durable history or make their final plots eligible for cleanup. diff --git a/website/docs/getting-started.md b/website/docs/getting-started.md index 9583a87ad..b6b63290f 100644 --- a/website/docs/getting-started.md +++ b/website/docs/getting-started.md @@ -52,7 +52,7 @@ tools you need: [`httpgd`](https://github.com/nx10/httpgd) (optional): Interactive graphics devices used by the [plot viewer](./features/plot-viewer.md). - The default `r.plot.backend` value, `auto`, tries JGD first, then httpgd, then + The default `r.plot.backend` value, `auto`, tries jgd first, then httpgd, then the standard viewer. - [rmarkdown](https://rmarkdown.rstudio.com): An R package and format for diff --git a/website/docs/index.md b/website/docs/index.md index 37040a7c2..105e05143 100644 --- a/website/docs/index.md +++ b/website/docs/index.md @@ -74,7 +74,7 @@ or [Linux](./installation/linux.md). sortable, filterable grid that loads rows on demand, or lists as JSON. - [Plot viewer](./features/plot-viewer.md): - Interactive JGD and httpgd backends, plus a responsive standard SVG/PNG + Interactive jgd and httpgd backends, plus a responsive standard SVG/PNG viewer. - [Webpage viewer](./features/interactive-viewers.md#webpage-viewer): diff --git a/website/docs/installation/linux.md b/website/docs/installation/linux.md index 56e5ec0da..d15d6c8b1 100644 --- a/website/docs/installation/linux.md +++ b/website/docs/installation/linux.md @@ -68,7 +68,7 @@ remotes::install_github("ManuelHentschel/vscDebugger") vscode-R supports two optional interactive plot backends: -- [JGD](https://github.com/REditorSupport/jgd) is lightweight, has no external +- [jgd](https://github.com/REditorSupport/jgd) is lightweight, has no external R-package dependencies, and is usually simpler to install. - [httpgd](https://github.com/nx10/httpgd) provides a mature, feature-rich SVG viewer over HTTP and WebSockets, but has a larger compiled dependency @@ -81,6 +81,6 @@ install.packages("jgd") install.packages("httpgd", repos = c("https://nx10.r-universe.dev", "https://cran.r-project.org")) ``` -Leave `r.plot.backend` at its default value, `"auto"`, to try JGD first, then +Leave `r.plot.backend` at its default value, `"auto"`, to try jgd first, then httpgd, then the standard viewer. You can instead set it explicitly to `"jgd"` or `"httpgd"`. See [Plot viewer](../features/plot-viewer.md) for details. diff --git a/website/docs/installation/macos.md b/website/docs/installation/macos.md index e50a0939b..b6e30f40e 100644 --- a/website/docs/installation/macos.md +++ b/website/docs/installation/macos.md @@ -68,7 +68,7 @@ remotes::install_github("ManuelHentschel/vscDebugger") vscode-R supports two optional interactive plot backends: -- [JGD](https://github.com/REditorSupport/jgd) is lightweight, has no external +- [jgd](https://github.com/REditorSupport/jgd) is lightweight, has no external R-package dependencies, and is usually simpler to install. - [httpgd](https://github.com/nx10/httpgd) provides a mature, feature-rich SVG viewer over HTTP and WebSockets, but has a larger compiled dependency @@ -81,6 +81,6 @@ install.packages("jgd") install.packages("httpgd", repos = c("https://nx10.r-universe.dev", "https://cran.r-project.org")) ``` -Leave `r.plot.backend` at its default value, `"auto"`, to try JGD first, then +Leave `r.plot.backend` at its default value, `"auto"`, to try jgd first, then httpgd, then the standard viewer. You can instead set it explicitly to `"jgd"` or `"httpgd"`. See [Plot viewer](../features/plot-viewer.md) for details. diff --git a/website/docs/installation/windows.md b/website/docs/installation/windows.md index 2c3b5bcec..578fb2c29 100644 --- a/website/docs/installation/windows.md +++ b/website/docs/installation/windows.md @@ -76,7 +76,7 @@ remotes::install_github("ManuelHentschel/vscDebugger") vscode-R supports two optional interactive plot backends: -- [JGD](https://github.com/REditorSupport/jgd) is lightweight, has no external +- [jgd](https://github.com/REditorSupport/jgd) is lightweight, has no external R-package dependencies, and is usually simpler to install. - [httpgd](https://github.com/nx10/httpgd) provides a mature, feature-rich SVG viewer over HTTP and WebSockets, but has a larger compiled dependency @@ -89,7 +89,7 @@ install.packages("jgd") install.packages("httpgd", repos = c("https://nx10.r-universe.dev", "https://cran.r-project.org")) ``` -Leave `r.plot.backend` at its default value, `"auto"`, to try JGD first, then +Leave `r.plot.backend` at its default value, `"auto"`, to try jgd first, then httpgd, then the standard viewer. You can instead set it explicitly to `"jgd"` or `"httpgd"`. See [Plot viewer](../features/plot-viewer.md) for details. From 83d972e4560bca22110f33192d47cacea2e3a435 Mon Sep 17 00:00:00 2001 From: eitsupi Date: Sun, 15 Nov 2026 04:48:32 +0000 Subject: [PATCH 07/10] docs: drop code formatting from jgd package mentions --- CONTRIBUTING.md | 2 +- website/docs/features/plot-viewer.md | 2 +- website/docs/features/r-interactive.md | 2 +- website/docs/getting-started.md | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c82032fab..d49b5cfa8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -96,7 +96,7 @@ pnpm run build Rscript -e 'tinytest::test_package("sess")' ``` -`pnpm run build` installs the bundled sess and its dependencies, including suggested packages, into the selected R library. jgd checks need `jgd` and `systemfonts`; standard graphics uses `svglite` or PNG. Runtime suites build private pure R sess installations and use disposable sessions/libraries. Keep `R_LIBS` set for the commands below. +`pnpm run build` installs the bundled sess and its dependencies, including suggested packages, into the selected R library. jgd checks need the jgd and systemfonts packages; standard graphics uses svglite or PNG. Runtime suites build private pure R sess installations and use disposable sessions/libraries. Keep `R_LIBS` set for the commands below. ```sh pnpm run test:interactive diff --git a/website/docs/features/plot-viewer.md b/website/docs/features/plot-viewer.md index 77bd739c9..2cf67740f 100644 --- a/website/docs/features/plot-viewer.md +++ b/website/docs/features/plot-viewer.md @@ -34,7 +34,7 @@ The other features that require an attached R session remain available. ## jgd viewer -Install the `jgd` R package to use the lightweight jgd backend: +Install the jgd R package to use the lightweight jgd backend: ```r install.packages("jgd") diff --git a/website/docs/features/r-interactive.md b/website/docs/features/r-interactive.md index ae983264a..e85510c58 100644 --- a/website/docs/features/r-interactive.md +++ b/website/docs/features/r-interactive.md @@ -17,7 +17,7 @@ The R host needs: - R. The bundled sess package is pure R and needs no compiler; its missing Imports are installed from the configured R repository. - The session agent automatically uses the extension host's bundled runtime: VS Code's Electron runtime in Node mode on desktop, or VS Code Server's Node runtime remotely. A separate Node.js installation is optional. - `tmux` is optional. On Linux, the default supervisor uses tmux when available and otherwise starts an independent detached process. `systemd --user` is another configurable option. -- R packages `processx`, `later`, `jsonlite`, and `rstudioapi`. Install `languageserver` for language features, `jgd` and `systemfonts` for jgd graphics, `svglite` for the static fallback, and `htmlwidgets`/`htmltools` for HTML output. +- R packages processx, later, jsonlite, and rstudioapi. Install languageserver for language features, jgd and systemfonts for jgd graphics, svglite for the static fallback, and htmlwidgets/htmltools for HTML output. - arf. Creating a new Interactive session requires an arf executable on the R host. Connecting to an already-running arf uses its socket and does not require arf on the extension host's PATH. The provider contract is tested with arf 0.5.3. For example, run in the R installation used on the server: diff --git a/website/docs/getting-started.md b/website/docs/getting-started.md index b6b63290f..a75728c88 100644 --- a/website/docs/getting-started.md +++ b/website/docs/getting-started.md @@ -48,8 +48,8 @@ tools you need: - [VSCode-R-Debugger](https://github.com/ManuelHentschel/VSCode-R-Debugger): A VS Code extension to support R debugging capabilities. -- [`jgd`](https://github.com/REditorSupport/jgd) or - [`httpgd`](https://github.com/nx10/httpgd) (optional): Interactive graphics +- [jgd](https://github.com/REditorSupport/jgd) or + [httpgd](https://github.com/nx10/httpgd) (optional): Interactive graphics devices used by the [plot viewer](./features/plot-viewer.md). The default `r.plot.backend` value, `auto`, tries jgd first, then httpgd, then From 53b66d89ad3002d8c29a7febcafba938bfd4cad1 Mon Sep 17 00:00:00 2001 From: eitsupi Date: Sun, 15 Nov 2026 04:52:40 +0000 Subject: [PATCH 08/10] docs: link R Interactive guide on the documentation site --- sess/README.md | 2 +- src/interactive/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sess/README.md b/sess/README.md index 441bbbb12..0ce1e2c9c 100644 --- a/sess/README.md +++ b/sess/README.md @@ -70,7 +70,7 @@ install.packages( ## Usage > [!NOTE] -> [R Interactive](https://github.com/REditorSupport/vscode-R/wiki/R-Interactive) +> [R Interactive](https://reditorsupport.github.io/vscode-R/features/r-interactive) > prepares its isolated runtime as part of starting an Interactive session; that > runtime follows its own lifecycle and does not change ordinary R libraries. > R Interactive requires [arf](https://github.com/eitsupi/arf) on the R host. diff --git a/src/interactive/README.md b/src/interactive/README.md index 290745047..286d1d4ea 100644 --- a/src/interactive/README.md +++ b/src/interactive/README.md @@ -1,6 +1,6 @@ # R Interactive architecture -R Interactive keeps R execution independent of the VS Code extension host. Each session has an agent, a runtime backend, a durable transcript, and retained assets. The editor reconnects to the agent instead of resubmitting code. See the [wiki user guide](https://github.com/REditorSupport/vscode-R/wiki/R-Interactive) for setup and behavior, and [CONTRIBUTING.md](../../CONTRIBUTING.md#testing-r-interactive) for validation commands. +R Interactive keeps R execution independent of the VS Code extension host. Each session has an agent, a runtime backend, a durable transcript, and retained assets. The editor reconnects to the agent instead of resubmitting code. See the [user guide](https://reditorsupport.github.io/vscode-R/features/r-interactive) for setup and behavior, and [CONTRIBUTING.md](../../CONTRIBUTING.md#testing-r-interactive) for validation commands. ## Component boundaries From 29b1311f9c3d133bb11cf79d6d1a80689165cb69 Mon Sep 17 00:00:00 2001 From: eitsupi Date: Sun, 15 Nov 2026 04:52:40 +0000 Subject: [PATCH 09/10] fix: open R Markdown templates documentation on the documentation site --- src/rmarkdown/draft.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rmarkdown/draft.ts b/src/rmarkdown/draft.ts index c9ea38144..f35d4a2cc 100644 --- a/src/rmarkdown/draft.ts +++ b/src/rmarkdown/draft.ts @@ -92,7 +92,7 @@ async function launchTemplatePicker(cwd: string): Promise Date: Sun, 15 Nov 2026 08:02:50 +0000 Subject: [PATCH 10/10] docs: note that sess Imports may need build tools when installed from source --- website/docs/features/r-interactive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/features/r-interactive.md b/website/docs/features/r-interactive.md index e85510c58..7fda3f803 100644 --- a/website/docs/features/r-interactive.md +++ b/website/docs/features/r-interactive.md @@ -14,7 +14,7 @@ For Remote SSH, install this extension **on the remote host**. R, its packages, The R host needs: -- R. The bundled sess package is pure R and needs no compiler; its missing Imports are installed from the configured R repository. +- R. The bundled sess package is pure R and needs no compiler; its missing Imports are installed from the configured R repository and may need build tools when installed from source. - The session agent automatically uses the extension host's bundled runtime: VS Code's Electron runtime in Node mode on desktop, or VS Code Server's Node runtime remotely. A separate Node.js installation is optional. - `tmux` is optional. On Linux, the default supervisor uses tmux when available and otherwise starts an independent detached process. `systemd --user` is another configurable option. - R packages processx, later, jsonlite, and rstudioapi. Install languageserver for language features, jgd and systemfonts for jgd graphics, svglite for the static fallback, and htmlwidgets/htmltools for HTML output.