I have checked out the source code from https://github.com/JetBrains/intellij-community.git and am sifting through the source code trying to determine how IntelliJ IDEA's refactoring engine works (my end goal is to make a plugin that applies custom code changes and refactorings).
I found some code for the rename refactoring, but it seems to be spread out throughout the project. For example, java/java-impl/src/com/intellij/refactoring/rename/RenameJavaVariableProcessor is used for a rename invoked through the GUI, while platform/lang-impl/src/com/intellij/refactoring/rename/inplace/VariableInplaceRenamer is used for an inplace rename. I feel like these two should call some common class or method, but I can't find any documentation on how the refactoring engine code is organized.
Could someone please point me in the right direction?