I gotta love how IDE doesn't know a .H file from hole in the ground.
Just bangin my head around trying to get a long code into and include and not ready to ask for help. Well, only on what editor to use, since IDE doesn't work with H or CPP unless you rename them, then it puts it in the same folder as filename, which doesn't work for H & CPP.
If it's fine, you just rename and move them. If not, you have to re-do that a bunch of times.
I have written a simple Python program to compile and upload using the command-line IDE. The Python program converts relative references to absolute references.
And, let's be realistic. The designers of the Arduino system have aimed their product (correctly in my view) at people who don't know that there is such a thing as a .h file.
There are plenty of better programming systems for more expert Arduinophiles
For anything but the most trivial project I use Atmel Studio + Visual Micro plug in. I’m addicted to Code Completion.
Not sure I can ever agree with the ‘dumb down’ argument. Beginners end up having to un-learn s when they progress. For those migrating from pure software development towards hardware / physical computing, the quirkyness can be infuriating.
mattlogue:
it puts it in the same folder as filename, which doesn't work for H & CPP.
Sure it does. Please provide details of the problem you had that made you think this.
FYI, it is possible to use the Arduino IDE to edit libraries:
Add a dummy .ino file to the folder containing the library files you want to edit with the Arduino IDE. The .ino filename must match the folder name. This allows the Arduino IDE to open the library source files as if they were a sketch. This file will not actually be compiled as part of the library. I use it as a place to store my "to do" list. You could also use it for a test sketch for the library, in this way you can actually compile the library right from the same IDE window where you are editing it instead of having a sketch open in a separate IDE window.
Add a file named .development to the root of the library folder. This is necessary because otherwise the Arduino IDE treats the contents of the library as read-only (to prevent people from accidentally modifying example sketches).
If it doesn't have one already, add a file named library.properties in the root of the library folder. You can find the specification of the format here: Arduino IDE 1.5: Library specification · arduino/Arduino Wiki · GitHub. This is required for the .development feature to work.
I love how many people come along, learn using Arduino, then get the big head once they know something that it doesn't do and act all indignant that the Arduino IDE is such a baby toy.
IT IS MEANT TO BE A BABY TOY. If you don't want to work with baby toys then go get some grown up toys. Just be ready to have to do some learning to figure out all that stuff that the baby toy was doing for you.
are you talking about .H and .CPP capitalized-extensions, specifically?
(IIRC, sometimes a capital .H extension is used for C++ includes, while lower-case is used for C. I don't think I've seen capital .CPP used for any special purposes.)
Note that Arduino runs on systems that lack case-sensitive filenames. (annoyingly, there are applications that are case sensitive, even when the filesystem isn't...)