Rename
Renaming a symbol (textDocument/rename, F2 in VS Code) changes every place that names it across the project, from the project index and the files open in the editor. clice refactor rename runs the same engine from the command line; its page details what a rename follows and what it refuses.
Edits
A rename edits the declarations, the definition and every use of the symbol, and renames the symbols that must keep its name.
Rename across files
Renaming a function edits its declaration, its definition and every call in the project; a spelling inside a macro is left alone and named in a message
What a rename follows
Renaming a class renames its constructors and destructor, a template its specializations, a virtual function its overrides
Rename a macro
Renaming a macro edits its #define in each branch of the #if it is defined in, the #ifndef guarding a default, and every use, written as another macro's argument or in another macro's body; a use pasted together with ## is left alone and named in a message
Rename a template's dependent name
In a template, a call depending on a template parameter is renamed where the indexed instantiations resolve it to the renamed method; one another instantiation resolves to another method of the same name stops the rename, and one no instantiation resolves is left alone and named in a message
Objective-C names
Renaming an Objective-C class, protocol, category or instance variable changes every place that writes it
Refused Renames
A symbol that cannot be renamed, or a new name that does not fit, is refused with the reason.
Names a rename refuses
Pressing rename on an operator, a symbol or a macro of the system headers, a macro the compile command defines, a name its instantiations resolve to several symbols or the parenthesis of a constructor call says why it cannot be renamed; off any name, nothing happens
New names refused
A new name that is no identifier, a keyword, taken in the same scope or a macro is refused with the reason; overloading a function or taking a reserved name is done with a warning, and a member may take the name of a sibling class's member
New macro names refused
A macro has no scope: a new name some symbol, macro or #ifdef of the project already spells is refused, as is defined; a reserved name is done with a warning
Objective-C methods and properties
Renaming an Objective-C method or property is refused, with the reason
A method's selector names every method its messages may reach, and a property its accessors and the instance variable it synthesizes; an instance variable a property synthesizes has no declaration to rename.
