Add WebStorm support

Issue #65 resolved
Scott Wells repo owner created an issue

Eliran Yehezkel is a registered WebStorm user and would like to be able to use Illuminated Cloud from within that IDE. Investigate the work required to support WebStorm as well as IDEA.

Comments (19)

  1. Nathen Drees

    This would be nice for us as well. Webstorm is significantly cheaper than IDEA, and would give us the JS and CSS support we're looking for.

  2. Scott Wells reporter

    FYI, I took a quick look at what might be required for me to support WebStorm. I configured a plugin SDK based on the shared core of JetBrains' Open API and tried to compile Illuminated Cloud against it. Right now IC has a large number of dependencies on things outside of the Open API, and some of these are on exceptionally important features such as the Problems view for error reporting during deployment, new project wizard extension/customization, etc.

    I definitely see the value in having this plugin support other JetBrains products in general and WebStorm in particular with its lower price point and better support for Web development! However, I'm going to prioritize further investigation into this lower until I wrap up some of the other high-priority features on IC's back log such as code coverage integration (which also requires IDEA-specific plugins), anonymous Apex and query execution, etc.

    Anyway, I wanted to share preliminary findings with you guys...

  3. Zoran ┼Żunko

    Same here, and due to new Salesforce javascript switch it will be more and valuable mid to long term. (Especially if you use only CE where there's a lack of JS support)

  4. Michael Hoefer

    Makes sense. Sounds like WS is a long way off. Too bad, as WS + IC is really all you need for sfdc development.

  5. Scott Wells reporter

    Well, I'm also trying to approach it from a different angle and see if there might be some way to embed JetBrains' HTML/JS/CSS editor from WebStorm directly into IC for Visualforce and Lightning purposes at a reasonable price point. That, to me, would be a great option. I've already swapped a few notes with some folks at JetBrains on this topic. We'll see where that discussion leads...

  6. Scott Wells reporter

    FYI, I'm hoping to have something promising to share on this in the next few days. More info to come soon!

  7. Scott Wells reporter

    FYI, I'm still pursuing this and have a call on it tomorrow morning. Hopefully I'll have something to share sometime soon.

  8. Scott Wells reporter

    Just a quick update. I'm still in discussions around this and unfortunately still don't have anything concrete to report. I'll share what I can, though. When I've tried to build Illuminated Cloud with the WebStorm SDK, I've found a few gaps in WebStorm's more limited plugin SDK (vs. IntelliJ IDEA) around features that are currently used by IC. In particular the following are not available:

    1. Problems View - This is where Illuminated Cloud reports hyperlinked deployment errors. The current implementation is tightly coupled to Java language support. It would be pretty easy to add a dedicated Problems View to IC, though, so I've created issue #172 to track that work.
    2. Project/Module Creation Wizard - Technically the creation wizard exists in the WebStorm SDK, but it's not extensible in the same manner as in IntelliJ IDEA. I'm still looking for ways that I could automate metadata retrieval/deployment and OST generation as part of creation. I've gotten a lead from the WebStorm team that I plan to investigate, but worst case scenario I could make this an actionable inspection after project/module creation that prompts the user to perform these actions.
    3. Code Coverage - WebStorm currently has no notion of code coverage and doesn't include the coverage plugin. Obviously coverage is a major aspect of development since you can't package or deploy to production without adequate coverage. We're still discussing options for this one.

    I'll continue to update this issue with news as it occurs and is useful to share. Obviously with Lightning Components being the next big feature for Illuminated Cloud, I'm as interested in getting something worked out here as anyone!

  9. Justin Julicher

    Thanks for the update scott. It is much appreciated and can now definitely understand the difficulties in creating the webstorm plugin... it's a real shame that they don't have the code coverage available in webstorm even though I'm pretty sure Karma and other products produce code coverage results....

  10. Scott Wells reporter

    Yeah, I'm a bit surprised that some of these aren't part of the core SDK. I still haven't tried just dropping the code coverage plugin into WebStorm to see what might happen. I may try a test build soon against the WebStorm SDK + the Coverage plugin (with the problems view and creation wizard stuff disabled) to see if 1) it'll build; 2) it might actually work. I'll report findings back here if/when I do that.

  11. Brian Triplett

    Was there ever a resolution to this issue? What does the Webstorm support look like presently for IC?

  12. Scott Wells reporter

    Brian, while I wouldn't call it a "resolution", it looking less and less likely that I'll end up doing this. The aforementioned gaps in the WebStorm plugin SDK vs. the IntelliJ IDEA plugin SDK make it very difficult to bring Illuminated Cloud into WebStorm without crippling it significantly and/or creating very complicated internal branching logic to handle both IDEs.

    Instead I focused a bit on improving the JavaScript and CSS editor experience in IntelliJ IDEA Community Edition (syntax highlighting, simple completions and code formatting, parameter info, etc.) as part of the Lightning effort so that folks who want a very low price point still get a quite decent experience, and those who want the much more sophisticated editor can opt for IntelliJ IDEA Ultimate Edition. I won't even try to pretend that it's a replacement for JetBrains' amazing HTML5 editor, but it definitely helps make for a more comfortable development experience in the free version of IDEA.

    I understand that this isn't an ideal situation, but a number of times I've tried to get IC working even reasonably well with WebStorm, and every single time I've hit enough obstacles that I've eventually backed off and turned my focus back to Salesforce development features as part of IC.

    Like I said, it's a bit squishy as a stance. I haven't resolved this as "won't happen", but I will be honest and say that it's not on my active radar right now.

  13. Brian Triplett

    @RoseSilverSoftware I can appreciate the product focus on IntelliJ IDEA. Honestly handling two IDEs for development of the same product (IDEA for backend, Webstorm for frontend) might have added it's own awkwardness. It seems like IntelliJ with the right plugins might go a long way into a fairly decent frontend development experience.

  14. Scott Wells reporter

    Brian, that's it exactly. Illuminated Cloud was born as a personal side project to allow me to use my beloved IntelliJ IDEA for both back end Java/SQL dev and front end dev. Obviously at some point it grew beyond my original intentions. In my opinion IntelliJ IDEA Ultimate Edition which includes the same rich HTML5 editor as WebStorm is a GREAT option for end-to-end dev, particularly when the back end is in Java (but even if it's in Node.js or some other supported language). When the front end is based on Salesforce you add IC to the mix to handle those languages and deployment models. Because Ultimate Edition has a non-trivial cost, though, I've tried to make development in all Salesforce environments (Apex, Visualforce, and Lightning) as pleasant and useful as possible even in the free Community Edition.

    In a perfect world IC would work with all of JetBrains' IDEs that are based on their Open API plugin SDK. However, there's very much a least common denominator aspect to the plugin SDK across IDEs which precludes some critical features that are used pretty heavily by IC.

  15. Scott Wells reporter

    Unfortunately I'm resolving this. Trust me when I say that I'd love to be able to give a positive answer to this, but once again I tried to compile against the more limited WebStorm plugin SDK and once again I realized just how many things that are used by IC are missing there. The general problem will definitely continue to rattle around in my head for many years to come, but I just can't see a viable solution on the horizon.

  16. Scott Wells reporter
    • changed status to open

    I'm actually making really solid progress on WebStorm support and hope to include it in the initial release of IC 2.0 very shortly.

  17. Log in to comment