-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Export custom comm message types and structure in Positron API #265
Comments
We currently have some infrastructure that does code (and type) generation for Positron global events (see As we've added and refined comms over the last couple of months, enough patterns have emerged that I think we could codify them effectively in YAML. Each comm has:
From the YAML we could generate the typings in |
We could probably do this for Python |
#1942 laid out the ground work for this formalisation. |
Merge pull request #265 from posit-dev/prefer-namespace-completions Prefer namespace completions -------------------- Commit message for posit-dev/positron-python@8359792: test that namespace completions are preferred -------------------- Commit message for posit-dev/positron-python@1d3855a: prefer completions using the user's namespace over static analysis Relates to #601. Authored-by: Wasim Lorgat <[email protected]> Signed-off-by: Wasim Lorgat <[email protected]>
Merge pull request #265 from posit-dev/prefer-namespace-completions Prefer namespace completions -------------------- Commit message for posit-dev/positron-python@8359792: test that namespace completions are preferred -------------------- Commit message for posit-dev/positron-python@1d3855a: prefer completions using the user's namespace over static analysis Relates to #601. Authored-by: Wasim Lorgat <[email protected]> Signed-off-by: Wasim Lorgat <[email protected]>
One way to do this would be to factor the implementation of the comms so that the actual RPCs are not part of the Positron API, and only the API surface is. This approach is detailed in #4997. |
Positron contains a number of custom communication channels, each of which defines its own protocol for frontend/backend communication. These generally represent UI elements, such as the Environment pane, a plot, a data viewer instance, etc.
For example, Environment pane exchanges messages with its back-end counterpart using strongly typed data structures, which currently live here:
https://github.com/rstudio/positron/blob/main/src/vs/workbench/services/languageRuntime/common/languageRuntimeEnvironmentClient.ts
While this is an appropriate source of truth for the data structures while they are evolving rapidly, at some point we need to define the protocol for each comm such that third parties can implement their own backends for these UI elements. That probably means that they need to be represented in
positron.d.ts
in some way.The text was updated successfully, but these errors were encountered: