Могу ли я с помощью emacs или IDE (MS/Mono/sun studio и т. д.) переименовать элемент структуры и все его использование (я имею в виду операторы -> или .) в файле? например у меня есть
struct foo { int a_1, int int b_2; //etc }
И я меняю структуру на что-то вроде этого:
struct foo { struct { int a_1, int b_2; } v; //etc }
И есть много f->a_1
или f.a_1
и f->b_2
или f.b_2
в исходном коде типа struct foo
или struct foo*
, которые теперь мне нужно заменить, чтобы компилятор нашел их в структуре v
: f.v->a_1
вместо. Как я мог это сделать?
Regexp - уродливое решение (которое я мог бы сделать, если бы другое решение делало это вручную), но невозможно, потому что оно также должно соответствовать типу структуры. Итак, это нужно выполнить в текстовом редакторе/IDE, который знает о типах C. Если вы не знаете, как это сделать с помощью emacs, но можете сделать это с помощью IDE, скажите мне, пожалуйста.
->a_1
на.v->a_1
и.a_1
на.v.a_1
? Звучит как буквальная замена строки, не так ли? - person Drew   schedule 12.01.2014semantic-mode
,Development->Navigate Tags->Find Tag References
. Найдите свой тег. Там открываетсяSymref
буфер. Там вы можете переименовать тег.Symref->Expand all entries
,Rename symbol in open hits
. - person Tobias   schedule 12.01.2014f->a_1
вf->v.a_1
вместоf.v->a_1
? - person jpkotta   schedule 13.01.2014