1. Auto-complete with "smart" word list (functions, methods, etc); perhaps with tooltips or dialogs that can popup and show what each parameter is, with type, and comment (from doxygen comments, I suppose).
Looking to powerful environments like Eclipse for inspiration makes a lot of sense
Sorry to disagree, but folks asking for completion seem to be assuming that users of Arduino IDE also use stuff with word completion.
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.
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.
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.
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.
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).
this (and other tools) could be implemented best as macro commands to external scripts
QuotePlease 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?
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.
... 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. ...
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.