I'm sure a lot of you will have things to say :). I've only just started using Particle DEV and there are a lot of good things about it as compared to the Web IDE.
However here are a few observations and things I don't like or things I was expecting.
The way compile errors are displayed is very cumbersome
If one wants to navigate from error to error, there are just too many clicks. For example in Visual Studio (and Visual Studio code) one can simply hit the F8 key to go from compile error to error.
Can't copy the error messages
Compile errors lines are not highlighted in the code editor
When I do click on an error in the popup dialog, it's difficult to see where the cursor is exactly. The line that you were navigated to is not highlighted and the error is not selected or anything except for the gutter highlight.
Keyboard Shortcuts for Compile/Build and Upload
These shortcuts don't work from the code editor. They only work if the focus is on the Tree View. So currently, that means one first has to do Atl + \``` and then Ctrl + RorCtrl + U` as the case may be.
Can't copy from the Serial Monitor
Particle Dev forgets the last Selected Device. Unlike the Web IDE. Not sure what the reasoning behind this is.
Now my Questions:
Is there are way to compile and Flash locally? Say if my Photon is in listen mode, rather then use the CLI to flash the Photon, I'd like to be able to Flash the Photon using Particle DEV. I have a lot of Photons that are not connected to the Particle site
How about just Flash locally?
Is there a way to specify the name of the bin file rather than some random file name that changes each time? Maybe it should use the name of the project by default?
Can I Flash multiple Photons simiultaneously using Particle Dev?
I like DEV personally even though it’s not perfect.
You can compile locally easily if you add an Atom add on that adds a command line window to Atom so you can just use DEV to create and compile your code and then use the command line window to use the CLI to flash locally. That way it feels like everything is right there in the same program.
@ScruffR directed me to a popular command line window for Atom, it’s on this forum but I have not dug it up yet.
I wish DEV had the Signal feature like the Build IDE does so you can be sure which device your flashing.
DEV normally still compiles in the cloud, so it isn't exactly a 'local compile'. Having it flash locally is something I've been pushing for lately, so I'm hoping that'll become possible some time soon no guarantees though.
Thank you for this feedback! We're aware of some of the things you mentioned and will try to fix them soon! Answering some of your questions:
The reason here is to make development on multiple devices running different firmware slightly easier. In Web IDE opening a second window and changing the default device will affect the first window as well. In the Local IDE we wanted to allow having multiple windows targeting different devices. With introduction of project.properties metadata file we wanted to add more information there like which device this project should target. This way you wouldn't need to select the device manually.
We have an experimental particle-dev-local-compiler package which uses the same components our cloud compiler does but it's not guaranteed to work in all cases.
@suda,
Thank you for your extensive reply. Much appreciated.
I’ll post the missing improvements to the GitHub repo you mentioned.
On a slightly different note…
Have you all looked at using Visual Studio Code and plugging into it instead of the (raw) Atom. VS code is built on Atom, so you get all of the goodness of Atom (cross platform, plug-ins etc.). VS code, however supported compiling and debugging (with break points, locals, call stack, and a whole host more) C++ code. I think they’re using LLVM as well. It might be simpler to plug in to VS Code where you’ll get all of the VS Code goodness for free.
I'm not sure how important this is. I'm sure it is for some since it's on your list of TODOs. However, there are same basic things I feel are missing in the "IDE" (if we can call it that, since there is no debugger).
Code Completion
Parameter Completion
Highlighting of Compiler error line(s) - Even the Arduino IDE does this
Clang-tidy and Clang format
Of course Debugging support over almost everything else would be huge.
I believe they also use Electron as runtime but it isn't based on Atom itself. After all Atom's community seems to be more vibrant and the existence of things like Platform IO opens the doors for mutual compatibility.
As a side note: I’ve been using po-util by @nrobinson2000 for local development of a recent Electron project. It’s kinda awesome.
I grew really tired of Particle DEV’s bugs and library management after a while. I do my editing in Atom and VS and debugging and flashing with Po in bash. If you use linux or mac, definitely worth checking out. Obviously this is not solving the true IDE experience that Particle DEV is meant to deliver…