This is an approach to split libTooling into two parts. This should not require any change to libTooling users.
Alternatively, we could move some of these to lib/Rewrite. However, that would mean, we should also change the namespace of clang::tooling::Replacement and that is something that is used frequently by libTooling users.
This restructuring cuts the remaining dependency on clang-format on lib/AST effectively cutting its binary size in half.
Once we settle on a structure, I'll also update the Makefiles.
Am I missing something or did you also cut the dependency on TextDiagnosticPrinter?