A couple more things I would like to see...

Sorry to disagree, but folks asking for completion seem to be assuming that users of Arduino IDE also use stuff with word completion.

I don't assume this, but I do think in this day and age, if you have a programming IDE of some sort, it should have auto-completion available for it. This isn't the 1980's anymore...

That is not my experience, and the ones who do, most don't expect it in other programs. As long as it is off by default, I'm okay.

Whether it should be on or off by default, I can't say - I can see an argument from both sides that is equally valid. I do think it should be customizeable whether you want it (as well as to allow further extension for user-created or third-party libraries).

I believe it is still true that the majority of the worlds population don't use computers. I'd suspect that a large fraction of those who do use computers, don't use Word, or a programming environment. Arduino may be the first programming experience for a most of the folks. I know that is true for many of the groups I work with.

If it confuses these people, then it should be turned off by default; if not, and they find it useful (and understand how to use it - ie; knowing that it can't suggest things based on context of the rest of the program, that it isn't magic or artificially intelligent), then turn it on by default. User feedback on the functionality (all of it, actually - not just this new proposed feature) is important.

I'd still encourage completion-aficionados package the Arduino toolchain as a plugin for Eclipse so that you get all of the other features you like.

At some point, I do intend to check out this idea; I know others have detailed getting things working under Eclipse for the Arduino. As long as it doesn't feel top heavy and provides me with a simple experience like the Arduino IDE does, then I am for it. But if it gets in my way or feels clunky, or if it feels overwhelming in the number of features, then it isn't worth it to me.

I want a simple, but complete interface for Arduino, with a few more advanced features to simplify things for people like me. I want to be able to see a function or method call I am trying to write, with all of its parameters (and types!), without needing to wade through online/offline help and/or header files. It should be right there, as I type the code.

Regarding things like the documentation functionality; this (and other tools) could be implemented best as macro commands to external scripts for processing. I created a fairly nice working interface to the Parallax Basic Stamp tokenizer library for Linux in a similar manner for a particular text editor in KDE, before I moved to a 64-bit system (where the tokenized no longer worked, which caused me to move to the Arduino). I could write my code in the editor, click on a "tokenize and upload" selection in the menu, and it would tokenize and upload the code to the Stamp via the serial port, giving feedback along the way.

Such user extensions could be nice if they could also be included as part of a library (for instance, if you had a 8x8 led matrix library, maybe you could have a macro auto-loaded on use of the library that would add the ability to run an 8x8 animation editor that could encode the frames as arrays to be auto-included with the code at the cursor where you invoked the macro).

Please write down the stories, or use cases, and actors which benefit by completion. Then identify the actors or use cases which are not addressed by Eclipse-for-Arduino.

Now who's overcomplicating things?

I think all of this would be addressed by Eclipse; but then, I bet there are things missing in Eclipse that would have to be added in some manner that are currently in the Arduino IDE.

You seem to be fairly concerned with newcomers and how they'll react to the IDE as such. I am not suggesting that a full blow-out of the IDE is needed or wanted, but a few changes that would greatly speed development are not out of order here.

My biggest gripe (which is why I was championing the code completion idea) is the fact that in order to figure out a particular function or method call, I have to wade through a lot of documentation, some of it incomplete, most of it not even listing the argument types being passed, or the return types. For this, I have to then go to the header files. Now, what was thinking when I got to this point...? I don't remember...

That's the problem - having this information at your fingertips, inline - personally I would think would be helpful to both experienced users and newcomers alike (provided that the newcomers understand what is being shown and why, and how to use the feature). There would have to be education on these concepts to new users; but that should be a part of the documentation for the Arduino IDE and the Arduino itself.

:slight_smile: