The pde/ino incompatibility is not as bad as you describe it. With my plugin there are 2 differences on behalf of ino files
Multiple ino files don't get packed in one ino file.
Ino files do not have the Arduino preprocessor adding the function descriptors.
The fact that Multiple ino files don't get packed in one ino file is a none issue in my eyes. Arduino needs to pack them to get the include folders for GCC. My plugin saves this information at import time.
I do not claim compatibility from Arduino to the plugin. I do claim that you can easily have compatibility from the plugin to Arduino.
Understandable to make something different to the Arduino IDE for real experts but why not make expert mode an option and default to compatibility with all the existing Arduino open source projects?
Because my plugin is made for people with a decent level of C/C++ knowledge only. My faq states:
What is the benefit of the Arduino IDE to the eclipse plugin
The Arduino IDE does a great job in introducing people to Arduino. This is so for hardware people writing their first C++ code and for software developers doing their first electronics experience. So if you are new to Arduino stop reading and learn to use the Arduino IDE....
In other words: "I have written this tool for myself (I'm an expert); I share it with the world but I can not support it like the Arduino is supported. As such some added C++ complexity is not a problem as C/C++ developers can deal with it."
This is very nicely demonstrated in this faq
What is this private library in the settings page
In the settings page a private library folder is requested. This setting should point to a location where you down loaded Arduino libraries.
If you haven't downloaded Arduino libraries yet do as follows
1) Consider using the Arduino IDE. (strongly advised)
2) Point it to a location where you can download Arduino libraries. (Strongly disadviced)
By not supporting multiple .ino files in the normal way this becomes less of an Arduino plugin and more of an AVR plugin? Useful but quite different to how Arduino works.
You do have a point in the sense that it is an AVR plugin. But why do you call it "quite different". I hardly see any difference than :
- Function declarations
- Using Include files
- The usage of extern
All of those are peanuts for experienced developers.
About winAVR my faq states the following:
I use WinAVR...
Great, excellent choice, a neat tool. This plugin uses WinAVR. The code from WinAVR has been forked and included in this plugin. .....
The Arduino layer I put on top of it is to have defaults for Arduino. So just like Arduino IDE is a layer on AVRDude and GCC My plugin is a layer on WinAVR. And as Arduino IDE proves: A good layer is worth a fortune.
There are some really brilliant and huge Arduino projects out there. ArduPilot, MultiWii being two. Both rely heavily on modular pde/ino files and libraries and will not compile with your IDE. If this is a decision that both of you have made for Eclipse and Linux then I respect that but it will reduce usability for the community.
I just checked ArduPilot, MultiWii as far as I can see none of them provide libraries. And yes they have all their files of the type pde; so yes there will be some work to get it working in my plugin. Though nothing more than 1 hour for someone who knows what (s)he is doing (in other words a experienced C/C++ programmer) and then it will work in both Arduino IDE and the plugin. But to be honest; Once you go eclipse (from Arduino) you never go back.
If they would rely on libraries (which do not support pde/ino) the libraries should work out of the box.
I don't understand why you think libraries will cause incompatibilities. Can you elaborate?