Skip to content

Next plugin version - #94

Merged
Rider-Linden merged 11 commits into
developfrom
rider/web-view
Aug 13, 2026
Merged

Next plugin version#94
Rider-Linden merged 11 commits into
developfrom
rider/web-view

Conversation

@Rider-Linden

@Rider-Linden Rider-Linden commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator
  • Replacing the file tree with a webview control,
  • pin/restore for exported object.
  • better permission icons, run control, etc.
  • extensible command interface across rpc.
  • use pregenerated definitions.
  • Temporary fix for runtime debug messages.

Fixes #80, #91, #93, #95, #96, #99

This is the other half of secondlife/viewer#6104

@Rider-Linden
Rider-Linden marked this pull request as ready for review August 12, 2026 23:15
Copilot AI lite review requested due to automatic review settings August 12, 2026 23:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR advances the extension to the next plugin version by replacing the inworld object explorer TreeDataProvider with a custom webview-based explorer UI, adding workspace-local pin/restore for published objects, and introducing a generalized RPC command interface plus staged (pre-generated) language definition artifacts.

Changes:

  • Replaced the inworld explorer tree view with a custom webview UI (filtering, context menus, inline create/rename, run/stop, permission icons, pin/unpin, offline pinned view).
  • Added workspace-local pinned-object persistence and reconnect restoration, plus “save back to contents” support via viewer commands.
  • Switched language definition consumption toward staged artifacts + autobuild-based syncing/validation, and introduced a generic command.execute / command.list RPC surface.

Reviewed changes

Copilot reviewed 34 out of 41 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tsconfig.webview.json Adds a dedicated TS build for webview sources.
tsconfig.json Excludes webview TS from the main extension compile.
src/webview/explorer/explorer.ts Implements the webview-side inworld explorer UI logic.
src/webview/explorer/explorer.css Styles the explorer webview (rows, icons, menus, focus).
src/vscode/objectpinstore.ts Persists pinned objects in .vscode/sl-object-pins.json.
src/vscode/objectexplorerwebview.ts WebviewViewProvider wiring + command handling for explorer.
src/vscode/objectcontentservice.ts Adds VM-change events and local VM state mutation.
src/vscode/objectcontentprovider.ts Saves content on VM changes to keep viewer compile target consistent.
src/vscode/objectcontentinterfaces.ts Adds can_save_back + VM-related type definitions.
src/viewereditwsclient.ts Adds command RPC types + executeCommand / listCommands.
src/test/suite/selene-config.test.ts Removes tests tied to the removed legacy generators.
src/synchservice.ts Keeps viewer session alive for explorer; adds command negotiation + pinned restore.
src/shared/seleneyamlgenerator.ts Removes legacy Selene YAML generator implementation.
src/shared/luadefsinterface.ts Removes legacy Luau defs interface model.
src/shared/luadefsgenerator.ts Removes legacy Luau defs generator implementation.
src/shared/lslkeywords.ts Removes legacy keyword interface definitions.
src/shared/languagetransformer.ts Removes legacy definitions transformer path.
src/shared/languageservice.ts Uses staged artifacts and viewer cache retrieval directly (drops repository indirection).
src/shared/languagerepository.ts Removes legacy repository/caching layer for syntax defs.
src/shared/docsjsongenerator.ts Removes legacy docs generator implementation.
src/scriptsync.ts Updates virtual subscription to seed line mappings from loaded content.
src/pluginsupport.ts Removes generator-based plugin configuration paths (uses staged/viewer-cache content).
src/extension.ts Registers the explorer as a webview view provider instead of a tree view.
src/commandregistry.ts Adds a simple registry for extension-side commands callable over RPC.
scripts/definitions-validate.js Validates required staged definition artifacts exist and parse.
scripts/definitions-stage.js Stages required definition artifacts from autobuild packages into data/.
scripts/copy-webview-assets.js Copies non-TS webview assets to out/webview.
README.md Documents pinned object explorer behavior.
package.json Adds definition sync/validate scripts; adds webview build step; adds codicons dependency.
package-lock.json Locks @vscode/codicons dependency.
eslint.config.mjs Splits lint config for webview TS with its own project config.
doc/Message_Interfaces.md Documents new command RPC interfaces + can_save_back.
autobuild.xml Adds autobuild config for fetching lsl_definitions artifacts.
.vscodeignore Excludes .autobuild/** from the extension package.
.gitignore Ignores autobuild output and staged definition artifacts.
.github/workflows/release.yml Ensures autobuild + definitions sync runs in release pipeline.
.github/workflows/ci.yml Ensures autobuild + definitions sync runs in CI.
Suppressed comments (2)

src/webview/explorer/explorer.ts:554

  • Unescaped linked-prim metadata is inserted into the title attribute. Because this is HTML built via innerHTML, a linked prim name/description containing quotes can inject markup into the webview. Escape the title string first.
    src/webview/explorer/explorer.ts:585
  • Unescaped item metadata is embedded into the title attribute (label/description). Since the tree is rendered via innerHTML, a malicious description containing quotes/markup could lead to webview XSS. Escape the computed title string.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/webview/explorer/explorer.ts Outdated
Comment thread src/webview/explorer/explorer.ts
Comment thread src/vscode/objectexplorerwebview.ts
Comment thread src/vscode/objectcontentservice.ts
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@Rider-Linden
Rider-Linden merged commit 70045d3 into develop Aug 13, 2026
3 checks passed
@Rider-Linden
Rider-Linden deleted the rider/web-view branch August 13, 2026 16:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Better tree view for explorer

2 participants