Bug 359948

Summary: Feature to rename preprocessor definitions
Product: [Applications] kdevelop Reporter: Alexander Potashev <aspotashev>
Component: Language Support: CPP (Clang-based)Assignee: kdevelop-bugs-null
Status: REOPENED ---    
Severity: wishlist    
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Alexander Potashev 2016-03-01 10:22:29 UTC
"Rename Declaration" does not work with preprocessor definitions like header guards.

Reproducible: Always
Comment 1 Kevin Funk 2016-09-08 19:51:43 UTC
Actually this works for me. Can you try again?

Code:
#define FOO
#ifndef FOO

#endif

I then renamed the first occurence of 'FOO' to 'FOO1' => both uses got renamed.
Comment 2 Alexander Potashev 2016-09-10 10:34:50 UTC
It depends on the order of #define and #ifndef.

1. I confirms it works in your scenario:
#define FOO
#ifndef FOO

2. When I first do #ifndef FOO and try to right-click on "#define FOO" to rename and perform the renaming, KDevelop renames only the identifier in the "#define FOO" line.

3. When I write the same code (#ifndef FOO, then #define FOO) and right-click on the #ifndef FOO line, there is not "Rename [...]" item in the context menu at all.