08.11.2011, 13:14
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от x-yuri
|
Например, если я захочу переименовать компонент, оно же за меня это не сделает?
|
Сделает, она же с кодом работает, а не с текстом. Текстовый редактор не сможет переименовать переменную, а IDE сможет. Другое дело, что в JavaScript-е всё достаточно плохо с глобальными переменными и со свойствами, поэтому их крайне аккуратно надо переименовывать, но с локальными переменными проблем нет.
Сообщение от x-yuri
|
А если в процессе рефакторинга (поиска) я наткнусь еще на какую-то проблему и решу сделать еще один поиск, я же не смогу отложить результаты этого поиска в phpstorm, чтобы потом к ним вернуться?
|
Процесс рефакторинга автоматический, там не надо всё просматривать, иначе это replace, а не рефакторинг.
|
|
08.11.2011, 19:11
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от Kolyaj
|
Сделает, она же с кодом работает, а не с текстом. Текстовый редактор не сможет переименовать переменную, а IDE сможет.
|
вообще я имел в виду переименовать название класса и css-селекторы исправить. С первым наверное проблем быть не должно. А со вторым? Или например, переименовать поле БД, которое в частности передается на клиент js-коду.
Сообщение от Kolyaj
|
Другое дело, что в JavaScript-е всё достаточно плохо с глобальными переменными и со свойствами, поэтому их крайне аккуратно надо переименовывать, но с локальными переменными проблем нет.
|
думаю, в любом языке, где есть eval. Но что значит "крайне аккуратно"? Поиск/замена? А локальную переменную и в текстовом редакторе легко изменить.
|
|
08.11.2011, 22:02
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от x-yuri
|
css-селекторы исправить
|
При правильной настройке IDEA подсветит неизвестные классы (может и переименует, не пробовал) и предложит их создать, с выбором файла. Это конечно если файл стилей будет подключен не через жопушаблонизатор или ещё как.
Не стоит забывать, что все IDE выполняют только статический анализ кода, отсюда много ограничений. Ну и ещё ограничения накладываются языком, о чем писали выше. Но это не значит, что ЯП должен создаваться под IDE (один из плюсов Dart-а). Под кодера - да.
В любом случае это лучше, чем работать с текстом
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
08.11.2011, 22:10
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от x-yuri
|
вообще я имел в виду переименовать название класса и css-селекторы исправить. С первым наверное проблем быть не должно. А со вторым? Или например, переименовать поле БД, которое в частности передается на клиент js-коду.
|
Если переименовать CSS-класс, селекторы должны поправиться, о связке CSS-HTML IDE знает. А вот о том, как ты связываешь поля БД с js-кодом IDE знать не может. Разумеется, если у тебя есть чёткая идеология, можно плагин соответствующий написать.
Сообщение от x-yuri
|
Но что значит "крайне аккуратно"? Поиск/замена?
|
Например, есть у тебя два файла, которые никогда не подключаются вместе на одну страницу. В каждом файле есть переменная varName. Получается, что это две разных переменных, но они обе глобальные, поэтому переименовывая одну, переименуешь другую. Хотя в целом в WebStorm это всё нормально работает, я просто не доверяю ей до конца.
Сообщение от x-yuri
|
А локальную переменную и в текстовом редакторе легко изменить.
|
Поиск/замена? Давай представим переменную i, которую нужно переименовать. И функция всего на 50 строк. В результате всё равно будешь выискивать глазами её. И хорошо если все использования найдёшь, текстовый редактор тебе не покажет переменную, у которой не было var, в отличие от IDE.
А без таких функций, как go to declaration и find usages совсем плохо.
|
|
09.11.2011, 01:25
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от B~Vladi
|
При правильной настройке IDEA подсветит неизвестные классы (может и переименует, не пробовал) и предложит их создать, с выбором файла.
|
в смысле?
Сообщение от B~Vladi
|
Но это не значит, что ЯП должен создаваться под IDE (один из плюсов Dart-а).
|
не понял, в чем заключается плюс
Сообщение от Kolyaj
|
Давай представим переменную i, которую нужно переименовать. И функция всего на 50 строк. В результате всё равно будешь выискивать глазами её. И хорошо если все использования найдёшь, текстовый редактор тебе не покажет переменную, у которой не было var, в отличие от IDE.
|
в текстовом редакторе это просто будет немного сложнее, хотя от редактора зависит. Например, в vim заменить эту переменную на j можно так: *Nsjn.n.n.n. При этом будет подсветка найденных строк. Использования найду все. Про не было var не понял, мы же про локальную переменную говорим. А собственно, можешь сказать, какой именно рефакторинг возможен/можно доверять в phpstorm?
Сообщение от Kolyaj
|
Процесс рефакторинга автоматический, там не надо всё просматривать, иначе это replace, а не рефакторинг.
|
рефакторинг, только в простейших случаях можно автоматизировать, особенно в динамических языках. И возможность посмотреть, что будет после рефакторинга в phpstorm есть, насколько я помню.
Сообщение от Kolyaj
|
А без таких функций, как go to declaration и find usages совсем плохо.
|
go to declaration... вряд ли, разве что для чужого кода. find usages... может быть. Но это уже что-то близкое к поиску с семантикой и это бы не помешало. Все время забываю попробовать рефакторинг и поиск в phpstorm для каких-то более менее сложных задач...
вообще, понять что важно, а что просто приятно, можно перестав этим пользоваться на значительное время. Cемантика при поиске по проекту - это важно
Последний раз редактировалось x-yuri, 09.11.2011 в 03:59.
|
|
09.11.2011, 08:40
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от Kolyaj
|
Автосохранение это идеология.
|
Возможн это дело привычки, нр все же возможность отключения должна быть.
К примеру, в файле, я могу что-то править, но сохранять не буду (помню что не нажимал Ctrl+S), потом без всякой мысли переношу этот файл в другом редакторе (например в FAR), на сервер по SSH, а там сохранено, то что я не планировал сохранять.
Конечно можно из WebStorm по SFTP загружать файлы, но мне пока удобней раздельно это делать, т.к. есть есть файлы (например С++), с которыми я работаю в другом редакторе. Может кагда-нибудь все автоматизирую))
Я бы понял если бы после закрытия проекта, команды Ctrl+Z/Ctrl+Y(Ctrl+Shift+Z) работали как в Mac, но тут то не так, нужно лезть в историю проекта или же коммитить каждую мелочь.
Kolyaj, а как сделать refresh path, т.е. пересканирование файлов в одной из директорий проекта?
Последний раз редактировалось monolithed, 09.11.2011 в 09:05.
|
|
09.11.2011, 09:14
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от x-yuri
|
Например, в vim заменить эту переменную на j можно так: *Nsjn.n.n.n.
|
Я не понял, что это значит Это решит проблему, что вокруг полно букв i, которые не относятся к этой переменной?
Сообщение от x-yuri
|
Про не было var не понял, мы же про локальную переменную говорим.
|
Если мы локальную переменную i заменим на j, а в одном месте забудем переименовать, то в том месте образуется глобальная переменная i.
Ещё я очень часто вижу такое
var var1 = '',
var2 = '',
var3 = '';
Которое после нескольких добавлений/удалений переменных в каком-нибудь Notepad++ превращается в
var var1 = '',
var4 = '';
var5 = '';
Storm тут засветится всякими неприятными цветами, Notepad++ не поймёт, что здесь ошибка, и заметить её будет проблематично.
Сообщение от x-yuri
|
go to declaration... вряд ли, разве что для чужого кода.
|
Для чужого само собой. Но и в своём всегда приятней нажать на имя функции и перейти к её определению, чем сначала найти нужный файл, а потом найти нужное место в этом файле. А можно просто нажать на функции Ctrl+Shift+I и Storm покажет исходники функции, не переходя к ней.
Советую посмотреть файл Default keymap reference, там много интересных сочетаний клавиш есть.
Сообщение от x-yuri
|
А собственно, можешь сказать, какой именно рефакторинг возможен/можно доверять в phpstorm?
|
Что возможно -- можно посмотреть в меню Refactor. Я активно пользуюсь Rename variable, Inline variable и вроде всё из рефакторинга. Хотя если в Storm-е переименовать CSS-файл, например, то пути к нему в HTML-файлах сами поменяются.
|
|
09.11.2011, 09:16
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от monolithed
|
К примеру, в файле, я могу что-то править, но сохранять не буду (помню что не нажимал Ctrl+S), потом без всякой мысли переношу этот файл в другом редакторе (например в FAR), на сервер по SSH, а там сохранено, то что я не планировал сохранять.
|
Это вообще что-то странное: что-то писал, но сохранять не собирался.
Сообщение от monolithed
|
Kolyaj, а как сделать refresh path, т.е. пересканирование файлов в одной из директорий проекта?
|
Ctrl+Alt+Y пересканирует обычно, но он это всегда по тихому делает, так что и непонятно, делает ли.
|
|
09.11.2011, 09:31
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от Kolyaj
|
Это вообще что-то странное: что-то писал, но сохранять не собирался.
|
Ну бывает так особенно под конец рабочего дня)
Сообщение от Kolyaj
|
Ctrl+Alt+Y пересканирует обычно
|
Спс, поиск в настройках это действительно круто, нигде такого не видел!
Сообщение от Kolyaj
|
но он это всегда по тихому делает, так что и непонятно, делает ли.
|
Ну не сразу это точно)
|
|
09.11.2011, 10:25
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
monolithed,
Галка:
Сохраняем на сервер автоматически: Deployment>Options>Upload changed files automatically to ...
Галки: General>Synchronization
Синхронизайя файлов при активации фрейма и сохранение файла при деактивации фрейма
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
|
|