![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
Добрый день.
Есть ли какие-то утилиты, которые могут выполнять рефакторинг автоматически? Нужно в куче исходников вызов одной функции заменить вызовом другой функции... Хотелось бы чтобы эта утилита не требовала создание проекта и не зависела от МС Студии... Так же я в Эклипсе присмотрел учень удобную фичу -- автоматическое форматирование кода. Хотелось бы и такое заиметь. -- Нужно чтобы между именем функции и скобкой в definition-е гарантированно был пробел. И чтобы его гарантированно небыло в reference-е... С уважением.. -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
virtual09 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 3.10.2007 Репутация: нет Всего: нет |
![]() _hunter, почему у вас Регистрация: 1.8.2007, а репутации есть и в 2006 |
|||
|
||||
dumb |
|
||||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 8 Всего: 158 |
sourcestyler?
![]() |
||||
|
|||||
virtual09 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 3.10.2007 Репутация: нет Всего: нет |
может это глюк на vingrad'e нет, извиняюсь, если администрация прочитала мои посты, то можете их удалить Это сообщение отредактировал(а) virtual09 - 12.11.2007, 13:14 |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
проблема в том, что некоторые имена содержатся в других. т.е. нужно заменить open не заменяя fopen...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
DjoNIK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 28.9.2006 Где: Питер/Георгиевск Репутация: 4 Всего: 5 |
А замена слова целиком (Match whole word)? Это сообщение отредактировал(а) DjoNIK - 12.11.2007, 15:10 -------------------- - Плесни-ка мне холодного кипятку. - Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды? - Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку. (разговор петербуржца и москвича) |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
хм... пришло в голову: изменяем имя функции как-нибудь (например open -> open1)
компилируем используем список ошибок компиляции для нахождения строк, в которых надо сделать замену только может плохо сработать, если в одной строке есть вызовы одноимённых функций от разных объектов (типа file.open, box.open), тогда надо будет что-то более интеллектуальное придумывать ![]() -------------------- qqq |
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
Можно заменить, используя Perl, к примеру (выражение \<open\> не пропустит fopen)
P.S. Если используемый диалект Perl не поддерживает \< и \>, то можно вот так вот: \bopen\b P.P.S. Word Boundaries Это сообщение отредактировал(а) SergeCpp - 12.11.2007, 17:09 |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
не, без анализа семантики нормально не получится из-за ситуаций типа file.open и box.open
-------------------- qqq |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
решил поробовать рег-экспы -- почти все хорошо, но есть один момент: хотелось бы заменять только вызовы функций. т.е. заменять "open(" и не заменять "open". Но тут появляется одна проблема: в исходниках я встречал пару мест, где вместо пробела стоял таб и одно место new line.
Как бы эти случаи учесть? maxim1000, тут мне повезло (хотя это как посмотреть) -- проект чисто С-шный... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 8 Всего: 158 |
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |