noir-lang / vscode-noir

Apache License 2.0
6 stars 7 forks source link

Support VS Code for the Web #37

Closed Savio-Sou closed 8 months ago

Savio-Sou commented 1 year ago

Problem

When a user opens a GitHub repository through https://github.dev/ and attempts to install the Noir Language Support extension in it, he/she would be prompted with:

The 'Noir Language Support' extension is not available in Visual Studio Code for the Web.

Happy Case

As a Noir developer, I want to use the extension in the manner of:

  1. Visit a Noir project on GitHub (e.g. noir-starter)
  2. Hit "."
  3. Install Noir Language Support extension from the extension panel on the left
  4. Navigate to my Noir program (e.g. noir-starter/next-hardhat/circuits/src/main.nr)
  5. Enjoy the same set of features offered by the extension in local VS Code (e.g. syntax highlighting, warning / error indicators on save, code snippets)

so that I can easily view, write and debug Noir programs in web browsers.

Alternatives Considered

As an MVP, we could support a subset (instead of full set) of features in step (5) above.

Additional Context

VS Code for the Web

Would you like to submit a PR for this Issue?

No

Support Needs

No response

Savio-Sou commented 9 months ago

@kobyhallx brought up the point that this could require either:

To discuss further on how to approach the problem. cc @kevaundray

kobyhallx commented 9 months ago

To clarify

Refactoring of the entire LSP codebase

we would refactor LSP parts, server interactions etc, while still relying on wasm module bringing in functionality developed so far in Rust related to compilation process.

kevaundray commented 9 months ago

@Savio-Sou The usecase for this was so that developers did not need to set up their environment at in-person workshops/events. Dev containers are easier to implement so we are going with that and putting this low on the priority list. (It's still unclear if we ever need to implement this)

The priority right now is to implement the features needed in the LSP -- I've already CC'd with @kobyhallx earlier this week regarding implementing go to definition.

kobyhallx commented 9 months ago

Also, the point of this was to do this in js so we enable better contracts for js based tooling. Doing this with the browser's first mindset was rather a bonus rather than a goal by itself.

kevaundray commented 8 months ago

Closing this as its no longer relevant, given we have codespaces