Saturday, June 13, 2020

Arduino IDE and ctags

This took me a while to figure out -- suddenly, sketches that have been compiling and uploading stopped compiling. The error message was useless:

exit status 1
Error compiling for board WeMos D1 R1.


I've been using jEdit as my editor for Arduino, there is a setting in the Arduino IDE to use an external editor, and that's what I've been doing. Since *.ino files are essentially C or C++ files, I wanted to use the ctags sidekick in jEdit to see the various declarations. As *.ino is not a standard file name extension for ctags, I added it in my ~/.ctags file like this:

--langmap=C++:+.ino

It turns out that didn't work for jEdit, for some reason, the plugin doesn't pick up that setting. In the plugin options for the ctags sidekick, there is a place to enter ctags invocation options, so I entered the above line and now the sidekick properly parses *.ino files. Great!

Not so great. Now nothing will compile in Arduino IDE. It turns out the IDE also uses ctags, and that line in my ~/.ctags file caused the problem. Since I put the same line in jEdit, I didn't really need the .ctags file any more, so I deleted it and sketches compiled and uploaded again. Weird!

No comments: