You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Book of Shaders has some very cool widgets for picking scalars and vectors:
These are great because they colocate the interaction with the source of truth for that quantity in the code itself. I propose that the VS Code extension API support such widgets, similar to the builtin color picker widget VS Code already has.
This proposal is a more concrete version of #66493, which was closed as a duplicate of #3220. I am opening this new issue because I do not believe that the original was actually a duplicate: a hover popup is fundamentally different from an inline peek widget, as (unless I am mistaken) there can only be one hover popup visible at a time.
Specifically, I would like to add a new extension API that combines the webview API with the hover API (and possibly the decoration API) to allow extensions to render custom interactive HTML content in popups, similar to the builtin color picker. At a high level, this should look the same as it currently does to provide a webview, except that the webview will be in a popup element floating above an existing editor, instead of in a separate pane.
I understand that the webview API docs mention that they are "resource heavy" and "should be used sparingly", which is why I believe the popup context is appropriate: since there can only be one at a time, this API should allow only a single webview to be created per extension, with that webview being shown on hover and hidden when the hover focus is lost, re-rendering with different content when hover focus reappears on a different item. Thus the resource costs of this proposal should be similar to those of existing webviews.
The text was updated successfully, but these errors were encountered:
This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
🙂 This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our documentation.
The Book of Shaders has some very cool widgets for picking scalars and vectors:
These are great because they colocate the interaction with the source of truth for that quantity in the code itself. I propose that the VS Code extension API support such widgets, similar to the builtin color picker widget VS Code already has.
This proposal is a more concrete version of #66493, which was closed as a duplicate of #3220. I am opening this new issue because I do not believe that the original was actually a duplicate: a hover popup is fundamentally different from an inline peek widget, as (unless I am mistaken) there can only be one hover popup visible at a time.
Specifically, I would like to add a new extension API that combines the webview API with the hover API (and possibly the decoration API) to allow extensions to render custom interactive HTML content in popups, similar to the builtin color picker. At a high level, this should look the same as it currently does to provide a webview, except that the webview will be in a popup element floating above an existing editor, instead of in a separate pane.
I understand that the webview API docs mention that they are "resource heavy" and "should be used sparingly", which is why I believe the popup context is appropriate: since there can only be one at a time, this API should allow only a single webview to be created per extension, with that webview being shown on hover and hidden when the hover focus is lost, re-rendering with different content when hover focus reappears on a different item. Thus the resource costs of this proposal should be similar to those of existing webviews.
The text was updated successfully, but these errors were encountered: