Skip to content
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

Julia language as a native citizen? #3679

Open
e-kotov opened this issue Jun 28, 2024 · 5 comments
Open

Julia language as a native citizen? #3679

e-kotov opened this issue Jun 28, 2024 · 5 comments
Labels
area: kernels Issues related to Jupyter kernels and LSP servers enhancement New feature or request support
Milestone

Comments

@e-kotov
Copy link

e-kotov commented Jun 28, 2024

Since it is a data science IDE now, not just R, or Python. Any plans for Julia support?
Currently it is awkward that even though VSCode internals of Positron recognise Julia code and highlight it, but the choice of kernels is limited to R and Python (I have Julia installed).

Screenshot 2024-06-28 at 08 10 54
@e-kotov e-kotov added the enhancement New feature or request label Jun 28, 2024
@pat-alt
Copy link

pat-alt commented Jun 28, 2024

Just learned about this project and this was the first question that came to my mind. I'm generally quite happy with the Julia VSCode extension, but would love to test Positron for Julia.

@juliasilge juliasilge added the area: kernels Issues related to Jupyter kernels and LSP servers label Jun 28, 2024
@juliasilge
Copy link
Contributor

Thank you so much for your interest in Positron! 🙌 Positron is in fact built with the kind of extensibility that would allow us to add support for Julia, or other data science languages that become important in the future. Positron's API for extensions is not fully mature yet so supporting another language would be a bit further in the future than we are thinking right now.

@chlazaris
Copy link

It would be great indeed to offer native support for Julia and any other language important to Data Science. Thank you everyone and @juliasilge. Looking forward!

@wesm
Copy link
Contributor

wesm commented Jul 1, 2024

If anyone in the community is interested in looking at this -- aside from needing a Jupyter kernel (which Julia has: https://github.com/JuliaLang/IJulia.jl), a place to start would be to implement a code generator to create Julia RPC handlers for the custom messages described here

https://github.com/posit-dev/positron/tree/main/positron/comms

Code that uses these custom Jupyter comm handlers can be found in the positron_ipykernel for Python or the Ark R kernel

@juliasilge juliasilge added this to the Future milestone Jul 1, 2024
@seeM
Copy link
Contributor

seeM commented Jul 2, 2024

In addition to Wes's advice, it should also be possible to hook up any Jupyter kernel to Positron by creating an extension that calls positron.runtime.registerLanguageRuntimeManager and implements positron.LanguageRuntimeManager and positron.LanguageRuntimeSession as needed. The R extension would be a good reference: https://github.com/posit-dev/positron/tree/main/extensions/positron-r.

We would like to make the above easier for arbitrary Jupyter kernels in future (#3585).

You should be able to do that before even implementing the additional comms Wes mentioned, and you should then have basic access to at least the console pane. From there, you can implement the comms to get additional support for the rest (variables, plots, help, data explorer, etc).

Do note, however, that third-party language packs are still experimental:

  1. We have not yet tested this approach with external extensions (i.e. not bundled with Positron).
  2. We are likely to make breaking changes to the positron extension API at this stage.

If you try this and get stuck, please feel free to post here; I'm happy to give some guidance!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: kernels Issues related to Jupyter kernels and LSP servers enhancement New feature or request support
7 participants