gopherdata / gophernotes

The Go kernel for Jupyter notebooks and nteract.
MIT License
3.86k stars 263 forks source link

Running in VSCode using jupyter #256

Closed JCzz closed 1 year ago

JCzz commented 1 year ago

Hi

Will it be possible to tun this in VSCode, using the following:

https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter

cosmos72 commented 1 year ago

It says "A Visual Studio Code extension that provides basic notebook support for language kernels that are supported in Jupyter Notebooks today" so yes, in theory it may work.

I think nobody tried gophernotes with it yet, so you're welcome to post here the results of any attempt you may want to do.

Igorgro commented 1 year ago

I have no problems doing this. After installing using instruction in README, the kernel just appeared in the vscode kernel selecton list image

The only problem is that despite the gopls LSP is starting, there still no autocomplete , but the kernel iteslf working well

Ale0x78 commented 1 year ago

I keep getting

The 'go' kernel is not available. Please pick another suitable kernel instead, or install that kernel. 

When inside VS-Code (no issues in JupyterLab though). Any chance anyone else has run into this issue? I tried adding it into trusted kernal's with

"jupyter.kernels.trusted": ["~/Library/Jupyter/kernels/gophernotes"]

But still no luck.

Ale0x78 commented 1 year ago

NVM looks like running a JupyterLab server via the terminal and then connecting to it works. Probably some kind of a config thing I am missing in VSCode.

Nigel2392 commented 1 year ago

To add to @Igorgro, for me it is working great. Except:

  1. There is no syntax highlighting.
  2. The VSCode Go to Definition functionality does not work (Among others functionality.)
joelschutz commented 1 year ago

I'd been the entire day trying to find a way to do it. It's not a Kernel issue, go-kernel has the same issue.

The main problem is in the VSCode LSP protocol itself, it sends a path to the server to analyze. On the vscode-python they created a hack in the extension to concat a file before sending it the language server. Captura de tela de 2023-02-09 21-32-08

I don't think it's worth it to create something like it for Go, that's why in trying jupyter now.

joelschutz commented 1 year ago

Following up on my previous comment:

  1. The hack is the only way to work with notebooks on most of the languages servers currently. And both VSCode and Jupyter use it in Python.
  2. LSP added support for notebook at version 3.17(latest). This mean that it could be possible to remove the hack.
  3. Both gopls and vscode-go are mantained by Google, and notebook support is not a priority.

Maybe it would be possible to use this to create a middleware to handle notebooks.