Any hints on what is coming with upcoming IDE changes?

There is lots I would like to see with the IDE, but I don’t expect it to be the be-all-end-all place for doing things any time soon. Would love to hear what the upcoming changes to the IDE will have.

That being said, here are some things I sort of wish were better sooner rather then later:

  • When you bring up the find panel and paste into it, if there is already something in there, you end up with “foobar”, rathe then just “bar”, it should be highlighted, or not keep the original text every time the panel comes up.

  • Function popups or something would be nice. As the code gets bigger, it is hard to work through. Code folding has been a big help, actually.

  • It would be sort of neat if we could (easily) split our project into multiple files (maybe they just get cat-ed together), so we could have “libraries” that we share amongst projects.

  • Some sort of auto completion on squirrel keywords and maybe defined variables (although that may be tricky)

  • Simulator/Debugger

    • Ok, I don’t expect this in the next release, but being a squirrel newbie, which I assume almost everyone is, I like to experiment and try things out. I do that with a local copy of a squirrel interpreter. It would be really cool if there was one on the server and I could “simulate” my code as if it was running on the imp. Today, at the top of my code, I have imp and server implemented with enough of the things I need to simulate some of my code flow. No debugger, but I can at least make sure the code will work properly.

    • Stepping through the code (even if only while simulating) would be awesome. It would be really cool if we could save off sample i/o samples (maybe from real hardware) that we could playback and step through to understand what is going on. If we can’t step through code on the real hardware, simulating with sort of real data is the next best thing (I understand that is only feasible in the simplest of cases, but would be really cool).

    • Even if this is just a live squirrel interpreter that we can play with, it would be useful. I am ok with using squirrel locally, but that may not be obvious to most people playing with the imp at first.

Thanks for the suggestions; many are in the editor and we may be able to reconfigure behavior appropriately.

Libraries are something that has been asked for many times, but we’re rather wary of this given how it could possibly affect development flow - eg if you changed the code in a library for one project, and this affected another live project that included the same lib… do we rebuild and push to that one? If not, how do we indicate that the other dependent project is now out of date? There’s definitely some UI complexity there, and as the new IDE brings simple revision control to the party, this gets even more complex.

As for the simulator/debugger, single-stepping on the hardware is possible but may be a little way off. Agents are squirrel running in the service, so you could use an agent to debug basic program flow (if you stubbed out the hardware functions as you’ve done with your local interpreter) - but it doesn’t really gain you anything over doing it on the device itself in terms of extra debuggability.

As for libraries I would suggest something along the lines of a NPM manifest. That way I could specify if I wanted a specific version of a library, a library greater to or equal to a specific version, or just the latest version.

So if you modify the library you would, in effect, create a branch of it with a unique name/id

edit nm