Announcing the Redwood IDE (VSCode Extension)

Hello Everyone,

Redwood has a VSCode extension! :cowboy_hat_face:

Installation

  • Option 1: Install from the Visual Studio Marketplace
  • Option 2: Search for “Redwood IDE” in the extensions panel within VSCode
  • Option 3: Run this command locally: code --install-extension decoupled.redwoodjs-ide

WARNING: We’re sharing this early, so expect issues :). We appreciate your help with QA so we can get it in good shape for the Jamstack conference next week.
If you have a minute, please install it and try to use it against any recent (>0.17) Redwood project.
Report any issues on the redwoodjs/redwood repo. (please include Redwood version, Extension version, VSCode version and OS)

Features

  • Redwood Project Outline
  • Rich Diagnostics (errors, warnings, quick-fixes)
  • Interactive Generator (with prompts and selection menus) and CLI

You can find more details and screenshots in the extension’s page in the Visual Studio Marketplace

8 Likes

:rocket::rocket:

Super excited about this. Great work @aldonline! (And so. much. work. indeed.)

For anyone who has the time to test this extension, it would be incredibly helpful to Aldo to have feedback over the weekend. He’s attempting to identify any bugs needed to fix before making a bigger marketing push at the Jamstack Conf next Tuesday.

2 Likes

Looks exciting, I left a review

1 Like

Of all features, I know of Redwood, the IDE ranks on the top of my list, However, the existing documentation is insufficient (for me), and I would love to know a lot more (perhaps @aldonline could pass me some private document he might have).

A few more relevant thoughts:

  • it is nearly incomprehensible how this piece of software could be created by one person in such a short time. (I have not seen the user manual, so I might expect it to do more than it does)
  • This IDE is declared to be deprecated - very sad news unless there is a new one pending.
  • I several years working with Aurelia team on a likely similar concept, that did not materialize; I am left with many unfulfilled dreams :cry:

Are there some more details of what this deprecated tool is and what is expected to do?

Don’t worry, it has just been moved :slight_smile: New location is here https://marketplace.visualstudio.com/items?itemName=redwoodjs.redwood

Ohhhhhhh - sign of big relief

Explanation : if I understand the idea behind this idea correctly, it is my personal favorite from the time I helped the Aurelia project. My version failed for lack of resources.

I left a review as well. Not enough superlatives for how much I love Redwood IDE!

Something I was curious about during the install - I had a bunch of supporting extensions pop up and install, like Prisma. Is Redwood IDE specifying dependencies? I was wondering how a complete suite of supporting extensions got pulled and didn’t know you could do that w/VS Code 3rd-party extensions.

Hi @adriatic and @WebstackBuilder! You’re both correct – there’s a tremendous amount of code powering the IDE (90% thanks to @aldonline). I think it’s one of Redwood’s most powerful, under the radar components.

The Structure package consists of two parts:

  • a language server that powers the IDE (and could easily be used for other features)
  • an API to explore a Redwood Project as a graph (like an AST) :exploding_head:, which powers diagnostics and defines conventions

In an attempt to outdo himself, Aldo is currently rewriting the package. See PR #1660 and the IDE will be open-sourced. I say this to mention we’re looking for additional contributors who enjoy building tools and compilers who’d like to learn from Aldo and help advance the Structure package.

No pressure, but please spread the word :wink:

2 Likes

Hello, @thedavid, thanks for the additional “story” on the “IDE” (I use quotes to indicate a slight resistance to name this terrific VS Code Extension IDE when the VS Code itself is mostly described as an editor). Terminology aside, I am very interested in having a lot more detailed look at @aldonline’s tool and find out whether my (similar) ideas from the past can be of use to Aldo).

In order to become a factual helper (as different from a tire-kicker), I need to learn a lot more about Redwood, so this message is just my attempt to express my early interest)

@aldonline would you mind a direct message to explain what did I do recently in a different context (Aurelia)?

1 Like

Hi @adriatic,

Thanks for your kind words on the IDE.
I’m happy to connect! There is definitely room for feedback and ideas :slight_smile:
I understand you’ll be joining the contributor’s meetup this friday.

Some words on the Redwood IDE roadmap:

There is a lot more in the works but I’ve been holding back until post 1.0 because the IDE (and the structure package) contribute a fair amount of code. So at this point it could become more of an anchor and make releasing 1.0 harder. The structure package makes a considerable amount of assumptions (ex the way the routes are declared and nested, the directory structure, etc) that try to “duplicate” some of the runtime logic so it can be available at design time. This duplication is dangerous when both worlds diverge, which is why I’m looking forward to making “the big push” closer to 1.0, once things settle down.
This also means that this is the perfect time for feedback and ideas.

I’ve never used Aurelia for a real app but it has popped up a few times on my radar. It looks like a really well executed project. I just took a general look at the project and at the vscode extension (and codebase) and it looks like it is keeping up to speed with the new and shiny toys in the JS world :slight_smile:

Is there any video you’d recommend so I can get up to speed on Aurelia and its IDE?

Looking forward to meeting!
A

Hi Aldo

I do have the Aurelia IDE (I called it Visual CLI and it was designed to be a lot more general than to serve just Aurelia community). I worked on that pretty long time, until my partner decided to take the “academic” path and signed for M Sc and Ph D. So aside of some early prototypes (which were bound to 2 year old Aurelia API) I only have a few ideas on how to use this tool from the developers viewpoint. In other words, I am not interested in your “compiler hacking” tasks, but rather in defining how to use them.

The “console” CLI is really a huge step back as it limits the developer to very primitive conversation with the tool (line editor). The biggest sophistication is the support for arrow key up/down movement and selection via space bar. So, a Visual (GUI) CLI would be tremendous contribution to RW.

Regards

Nik

I am not sure whether all VS Code fans will see this link (Erich Gamma keynote speech on VS Code), please share where it might make sense.

It is a brilliant tool in my opinion, that still feels light-weight while implementing so many great services. A polar opposite of the Visual Studio.

Some impressions after listening to Erich Gamma’s keynote speech

There are several parallels between development principles used by VS Code and Redwood. However, being a Redwood beginner, I would rather state VS code principles and leave the readers to agree (or not) with me. Mr. Gamma called VS Code an overnight success which took 10 years to reach.

image

Probably the key parts of VS Code development process are

  • “insane” focus on performance
  • monthly releases
  • listen to the users very carefully
  • never forget the web roots (Electron based)
1 Like

Hello, @aldonline and @thedavid, please check the quick summary of my previous work on ideas for improving the user’s experience in the area of creating and managing application skeletons. This includes the use of VS Code as a hosting tool providing IntelliSense for many other Redwood concepts. I did not elaborate on any of the future ideas until the team does not get to see what I did before. I am also not suggesting any steps in time, as this could be a very large project.

P.S. I expect to be very busy learning RedwoodJS for real (so far I just touched a few details in order to determine whether I can offer any help)

1 Like

@aldonline is there a public repo for the Redwood IDE code?