here is an idea as I run to the reference again, back when I participated in secondlife (3d social network thing) they had a "in world" scripting system
The in world editor was basic and focused, like the Arduino ide, but one very handy thing was if you typed in a function, lets say for arduino digitalWrite(), and forgot which argument came first, you could mouse over the function name and it would bring up a box containing a example argument and a 1 or 2 line description
That would be a very cool feature.
That's basically what I was proposing here:
...for items #1 and #2 - if done right, then not only would your code be self-documenting, it would be self-referential in that not only would the Arduino functions/methods have the pop-up documentation, but user's could as well (how many times have you forgotten what parameters a function you wrote used? Happens to me all the time, unless I document it, and then I still have to reference that).
If you added code-folding on top of that...
Now, don't anybody say "use Eclipse", I've heard the argument. I think it is a valid argument, but sometimes you just want something simpler, but not as simple as the Arduino IDE. I think these few extras that I've mentioned before would help both newbies and more experienced users alike; I do think they need to be disabled by default - in effect have the IDE start out as "simplified", and as a user's skillset broadens, they can turn on those options as needed in the preferences (or via the config file if you wanted).
I do think they need to be disabled by default - in effect have the IDE start out as "simplified", and as a user's skillset broadens, they can turn on those options as needed in the preferences (or via the config file if you wanted).
I can remember the arguments for digitalRead and digitalWrite The number of posts on the forum where newbies try to use digitalRead like digitalWrite (with 2 arguments) indicates that the newbies are the ones that need code completion, balloon help, etc.
I think that if these features were included, they should be on by default, and easy to turn off.
Newbies have enough trouble learning that making them hunt for things that make life easier seems counter-productive.
To be honest, this should be very trivial to implement.
Even if you show a bunch of ambiguous matches, it helps
A static list is trivial. It's just to loop through the list and rate each identifier with a probability score, and show them in order.
BUT when one wants a dynamic list, thigs get uglier. We already suffer from one sideeffect from the hazzle of determining wether a token is a function or not (namely the user-defined struct problem, where the arduino preprocessor won't generate function prototypes.), I do not think it should be thought of as a small and simple deal to implement a dropdown as seen in Visual Studio.
You need to parse all files, for all identifiers. And when this is done, you should remember what scope they're in, what arguments they take, if any. And the list continues on.
I'm not saying that this is impossible, but it's not easy either.
A dropdown for the core functions might be a compromise, but it will add another thing to the list of things to remember to modify between releases. Or, maybe we could use the identifers from the highlighting token list?