David,
This looks like a convenient tool! How does it know when to add a dependency for you based on your source code? Does that work with Python or C++ or both (or other languages)?
It seems like some of these features would be good additions to catkin_lint, and some of the convenience could be captured with a `catkin_lint <package_name> --apply` or something like that.
You also mentioned checking launch files and adding missing dependencies based on that. Does that overlap with the cmake macro roslaunch provides?:
Maybe they could share logic, where the test (which is used for regression testing) and the tool use common logic to detect the problem, but the tool can additionally fix the issue (--apply/--fix semantic)?
I can sympathize with the parsing of CMake, I helped one of my coworkers at Willow with the parsing when we were writing the first version of the catkinize script (I don't think it is using this library anymore though):
I eventually had to fork it (I didn't have access to the pypi login and couldn't reach the previous maintainer), but maybe that library could help you with the parsing.
Also we've used this cmake-lint library which parses CMake as part of the linting, maybe it could also be an inspiration:
Thanks for sharing!