Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Synс Edit в VS2008, Режим синхронного редактирования 
:(
    Опции темы
amarenkov
Дата 24.12.2008, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



Добрый день.

Прошу прощение за вопрос немного не в тему, но не нашел, куда еще его задать.

Есть ли в VS2008 режим редактирования наподобии Synс Edit в BDS2006 и старше? 

Это выглядит так: вы выделяете кусок кода. Включаете этот режим. Теперь, когда вы редактируете имя какой-либо переменной, имя переменной меняется везде в выделенном фрагменте. Чем-то похоже на Рефакторинг, но не он smile.

Заранее спасибо.
PM MAIL ICQ   Вверх
Bishop
Дата 24.12.2008, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 3.6.2005
Где: Минск, Беларусь

Репутация: 6
Всего: 16



amarenkov, 
ничего отдельно включать не надо. При переименовании объявления переменной возле неё появится смарт-тег с нужными командами:
user posted image
PM WWW ICQ   Вверх
archeg
Дата 24.12.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 11
Всего: 27



Только работает это не всегда хорошо. 
Качай Resharper - поможет в этом нелегком деле....  smile 


--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
amarenkov
Дата 25.12.2008, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



Нет, это не то. Пусть будет такой код:

Код

df = 0;
df++;
if (df == 12) df--;


df нигде не объявлено. В BDS можно было это выделить и исправть все df на summ, например. А VS так как-то можно?

PM MAIL ICQ   Вверх
archeg
Дата 25.12.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 11
Всего: 27



Цитата(amarenkov @ 25.12.2008,  12:28)
Нет, это не то. Пусть будет такой код:

Код

df = 0;
df++;
if (df == 12) df--;


df нигде не объявлено. В BDS можно было это выделить и исправть все df на summ, например. А VS так как-то можно?

А как это df нигде не объявлено? оО 

Юзай тогда найти и заменить. Только тогда студия не отличаеться от простого и тупого блокнота


--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
amarenkov
Дата 25.12.2008, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



Цитата(archeg @  25.12.2008,  15:58 Найти цитируемый пост)
Юзай тогда найти и заменить. Только тогда студия не отличаеться от простого и тупого блокнота 


Это все понятно. Но найти и заменить не настолько удобно. BDS подсвечивала то, что она считала одинаковыми переменными в выделенном участке и позволяля менять их одновременно.
PM MAIL ICQ   Вверх
archeg
Дата 25.12.2008, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 11
Всего: 27



Цитата(amarenkov @ 25.12.2008,  16:49)
Цитата(archeg @  25.12.2008,  15:58 Найти цитируемый пост)
Юзай тогда найти и заменить. Только тогда студия не отличаеться от простого и тупого блокнота 


Это все понятно. Но найти и заменить не настолько удобно. BDS подсвечивала то, что она считала одинаковыми переменными в выделенном участке и позволяля менять их одновременно.

Понимаешь, переменная - эта такая штука которая всегда имеет объявление. И тогда в руки рефакторинг - в два щелчка. Если ты хочешь массово менять код без определения - то логично предположить, что ты хочешь менять код в коментах (а что еще?) и тогда толку от подсветки никакой нет. (решарпер умеет менять имена переменных даже в комментах)


--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
amarenkov
Дата 26.12.2008, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



Цитата(archeg @  25.12.2008,  19:24 Найти цитируемый пост)
Понимаешь, переменная - эта такая штука которая всегда имеет объявление.

Даже и не догадывался об этом....

Цитата(amarenkov @  25.12.2008,  16:49 Найти цитируемый пост)
BDS подсвечивала то, что она считала одинаковыми переменными в выделенном участке и позволяля менять их одновременно. 

Чисто по синтаксису всегда можно выделить то, что является переменной. Даже без объявления.

Нет, не комментарии мне нужны. Пример. Пусть у меня есть 20 строчек кода, где используется одна переменная. Потом вдруг я решил, что в первых 10 должна использовать одна, а во вторых 10 - другая. И как же мне тут рефакторинг поможет? Еще пример. Переношу кусок кода из другой программы, из документации и т.п. У меня все те же переменные определены, но под другими названиями. И что делать? Определять с новыми, потом рефакторить?
PM MAIL ICQ   Вверх
archeg
Дата 26.12.2008, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 11
Всего: 27



Цитата(amarenkov @ 26.12.2008,  09:15)
Цитата(archeg @  25.12.2008,  19:24 Найти цитируемый пост)
Понимаешь, переменная - эта такая штука которая всегда имеет объявление.

Даже и не догадывался об этом....

Цитата(amarenkov @  25.12.2008,  16:49 Найти цитируемый пост)
BDS подсвечивала то, что она считала одинаковыми переменными в выделенном участке и позволяля менять их одновременно. 

Чисто по синтаксису всегда можно выделить то, что является переменной. Даже без объявления.

Нет, не комментарии мне нужны. Пример. Пусть у меня есть 20 строчек кода, где используется одна переменная. Потом вдруг я решил, что в первых 10 должна использовать одна, а во вторых 10 - другая. И как же мне тут рефакторинг поможет? Еще пример. Переношу кусок кода из другой программы, из документации и т.п. У меня все те же переменные определены, но под другими названиями. И что делать? Определять с новыми, потом рефакторить?

Ты как-то неправильно к рефакторингу подходишь. Что это вообще за стиль программирования такой? Почитай книгу Фаулера о рефакторинге.

Первый пример - какой толк использовать две разные переменные, если они содержат одно и то же значение? Сейчас ты скажешь что хочешь иметь на объект две ссылки или что-то подобное. В общем пример надуман из потолка и не соответсвует действительности.
Если тебе нужно просто поменять значение (например детализировать переменную) - у решарпера есть такая магическая комбинация как Ctrl+Alt+V.
Второе - еще бредовей. Часто ты переносишь такие куски? ) Если и переносишь раз в год, то использовать Search & Replace думаю не проблема.
Вот можешь подсчитать, сколько ты раз сталкивался с такими примерами в жизни?  smile

Вообще, использовать такие подходы не безопасно. Ты уверен что в другом файле не попадеться левой строки, с таким же содержанием как имя твоей переменной без объявления?  Если попадеться - кирдык. Решарпер же по объявлении может указать видимость. Если тебе нужно в конкретном файле Ctrl+Shift+F, вводишь слово для замены, и нажимаешь Alt+A. Первый раз еще нужно указать Look in : Current Document, - вот те и синхЕдит

Это сообщение отредактировал(а) archeg - 26.12.2008, 10:39


--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
amarenkov
Дата 29.12.2008, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



Цитата(archeg @  26.12.2008,  10:33 Найти цитируемый пост)
Ты как-то неправильно к рефакторингу подходишь. Что это вообще за стиль программирования такой? Почитай книгу Фаулера о рефакторинге.

К рефакторингу я вообще еще в этой теме подходить не начал.

Цитата(archeg @  26.12.2008,  10:33 Найти цитируемый пост)
Первый пример - какой толк использовать две разные переменные, если они содержат одно и то же значение? Сейчас ты скажешь что хочешь иметь на объект две ссылки или что-то подобное. В общем пример надуман из потолка и не соответсвует действительности.

Если уж совсем хочется реальный пример, пожалуйста:
Код

graphics.DrawLine(fobj_penBlack, 0, 0, 100, 100);
graphics.DrawLine(fobj_penBlack, 12, 0, 100, 440);
graphics.DrawLine(fobj_penBlack, 0, 13, 100, 100);
...
graphics.DrawLine(fobj_penBlack, 0, 0, 100, 100);
graphics.DrawLine(fobj_penBlack, 0, 0, 220, 100);
graphics.DrawLine(fobj_penBlack, 0, 120, 100, 100);

А теперь нужно последние -дцать команд отрисовки делать карандашом fobj_penRed. Карандаши fobj_penBlack и fobj_penRed - члены-переменные класса.

Цитата(archeg @  26.12.2008,  10:33 Найти цитируемый пост)
Второе - еще бредовей. Часто ты переносишь такие куски?

Бывает. Настолько часто, насколько пользуюсь help и прочими туториалами. Чего и тебе советую.

Цитата(archeg @  26.12.2008,  10:33 Найти цитируемый пост)
Вообще, использовать такие подходы не безопасно

Все обсолютно безопасно. Читай внимательнее, что я пишу.

Вообще, archeg прекращай меня учить. Я спросил про конкретную функцию среды.


PM MAIL ICQ   Вверх
Zakonnic
Дата 29.12.2008, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 25.4.2006

Репутация: 2
Всего: 6



Такой функции у VS 2008 нет. Но:
1. При рефакторинге есть дерево с чекбоксами, позволяющее выбрать куски кода для переименования переменных. Правда, в данном случае рефакторинг действительно не нужен.
2. Выделяете кусок кода и нажимаете Ctrl+H (тупой квик-реплейс). Там будет уже выставлена опция заменять только в выделенном. Ваш случай ;)
--------------------
...и никогда не пишите в комментариях правду
PM MAIL ICQ   Вверх
Любитель
Дата 29.12.2008, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



Я так и не понял - чем обычный replace по селекшену не подоходит?!


--------------------
PM MAIL ICQ Skype   Вверх
archeg
Дата 30.12.2008, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 11
Всего: 27



amarenkov, ок, ок - как хочешь. Молчу  smile  smile 
 smile 



--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
amarenkov
Дата 11.1.2009, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



Цитата(Zakonnic @  29.12.2008,  14:55 Найти цитируемый пост)
2. Выделяете кусок кода и нажимаете Ctrl+H (тупой квик-реплейс). Там будет уже выставлена опция заменять только в выделенном. Ваш случай ;) 

В принципе да, но не так удобно, как в BDS. Да и действий больше делать надо smile.

Цитата(Любитель @  29.12.2008,  22:15 Найти цитируемый пост)
Я так и не понял - чем обычный replace по селекшену не подоходит?! 

Не так удобно. Сложно объяснить. Надо BDS поставить и попробовать ;). Действительно удобная вещь у Борланда.

archeg  smile.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.