My list is mostly C++ focused, but the LLVM tooling for clang-tidy/clang-query is also worth a mention. There are a big set of refactors that you can apply across your codebase if you wanted to migrate to new C++ features for example. You can also write your own if you wanted to refactor to use the API of an updated dependency for example. It's a lower-level version of Javascript's "codemods" for C/C++.
There's some work being done to build some tooling around interactively creating AST matchers and applying refactors across an entire codebase. [0]
There's some work being done to build some tooling around interactively creating AST matchers and applying refactors across an entire codebase. [0]
[0] https://steveire.wordpress.com/2018/11/11/future-development...