Help desired for a plugin I'm writing


(tiltowaitt) #1

I’m returning to a plugin I wrote a while back, ProperShifting. I am, unfortunately, having two issues with it, both of which I outlined in the issues tracker on the repo’s page. If someone could give some pointers, I’d be grateful.

Also, this plugin was written before the Great Monorepo-ing; has anything about the architecture/template changed since then?


(Gergely Nagy) #2

No, everything should be the way it was before the Great Monorepo-ing (I’m liking this phrase, thanks!).


(tiltowaitt) #3

No, everything should be the way it was before the Great Monorepo-ing (I’m liking this phrase, thanks!).

Out of curiosity, why is it designed that way? Why have a separate Kaleidoscope-Plugin.h that includes Plugin.h? And why does Plugin.cpp include Kaleidoscope-Plugin.h instead of Plugin.h?

Also, with your help, I was able to fix the issue with extraneous lowercase letters; however, I’ve hit a wall with the other issue. The good news is, I figured out how to reproduce it and where the problem generally lies. The bad news, I can’t figure out how to fix it. It’s a conflict with Qukeys.

Any advice?


(Gergely Nagy) #4

The Kaleidoscope-Plugin.h stuff are a left-over from the non-monorepo era, where they were required for the Arduino build system. Arduino finds libraries by looking at the included headers, so if you wanted to use a Kaleidoscope-Plugin library, you’d have to include Kaleidoscope-Plugin.h. At the same time, we didn’t want to clutter up the main namespace, so the Real Stuff was put into kaleidoscope/plugin/Plugin.h and kaleidoscope/plugin/Plugin.cpp, and the top-level header included the namespaced one. We could have used the Plugin.h include there, but for the sake of consistency, we used Kaleidoscope-Plugin.h, because that’s what the examples use too.