Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #111 (permalink)  
Старый 08.11.2011, 13:14
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от x-yuri
Например, если я захочу переименовать компонент, оно же за меня это не сделает?
Сделает, она же с кодом работает, а не с текстом. Текстовый редактор не сможет переименовать переменную, а IDE сможет. Другое дело, что в JavaScript-е всё достаточно плохо с глобальными переменными и со свойствами, поэтому их крайне аккуратно надо переименовывать, но с локальными переменными проблем нет.

Сообщение от x-yuri
А если в процессе рефакторинга (поиска) я наткнусь еще на какую-то проблему и решу сделать еще один поиск, я же не смогу отложить результаты этого поиска в phpstorm, чтобы потом к ним вернуться?
Процесс рефакторинга автоматический, там не надо всё просматривать, иначе это replace, а не рефакторинг.
Ответить с цитированием
  #112 (permalink)  
Старый 08.11.2011, 19:11
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от Kolyaj
Сделает, она же с кодом работает, а не с текстом. Текстовый редактор не сможет переименовать переменную, а IDE сможет.
вообще я имел в виду переименовать название класса и css-селекторы исправить. С первым наверное проблем быть не должно. А со вторым? Или например, переименовать поле БД, которое в частности передается на клиент js-коду.

Сообщение от Kolyaj
Другое дело, что в JavaScript-е всё достаточно плохо с глобальными переменными и со свойствами, поэтому их крайне аккуратно надо переименовывать, но с локальными переменными проблем нет.
думаю, в любом языке, где есть eval. Но что значит "крайне аккуратно"? Поиск/замена? А локальную переменную и в текстовом редакторе легко изменить.
Ответить с цитированием
  #113 (permalink)  
Старый 08.11.2011, 22:02
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от x-yuri
css-селекторы исправить
При правильной настройке IDEA подсветит неизвестные классы (может и переименует, не пробовал) и предложит их создать, с выбором файла. Это конечно если файл стилей будет подключен не через жопушаблонизатор или ещё как.

Не стоит забывать, что все IDE выполняют только статический анализ кода, отсюда много ограничений. Ну и ещё ограничения накладываются языком, о чем писали выше. Но это не значит, что ЯП должен создаваться под IDE (один из плюсов Dart-а). Под кодера - да.
В любом случае это лучше, чем работать с текстом
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #114 (permalink)  
Старый 08.11.2011, 22:10
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 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 совсем плохо.
Ответить с цитированием
  #115 (permalink)  
Старый 09.11.2011, 01:25
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 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.
Ответить с цитированием
  #116 (permalink)  
Старый 09.11.2011, 08:40
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 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.
Ответить с цитированием
  #117 (permalink)  
Старый 09.11.2011, 09:14
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 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-файлах сами поменяются.
Ответить с цитированием
  #118 (permalink)  
Старый 09.11.2011, 09:16
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от monolithed
К примеру, в файле, я могу что-то править, но сохранять не буду (помню что не нажимал Ctrl+S), потом без всякой мысли переношу этот файл в другом редакторе (например в FAR), на сервер по SSH, а там сохранено, то что я не планировал сохранять.
Это вообще что-то странное: что-то писал, но сохранять не собирался.

Сообщение от monolithed
Kolyaj, а как сделать refresh path, т.е. пересканирование файлов в одной из директорий проекта?
Ctrl+Alt+Y пересканирует обычно, но он это всегда по тихому делает, так что и непонятно, делает ли.
Ответить с цитированием
  #119 (permalink)  
Старый 09.11.2011, 09:31
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Kolyaj
Это вообще что-то странное: что-то писал, но сохранять не собирался.
Ну бывает так особенно под конец рабочего дня)
Сообщение от Kolyaj
Ctrl+Alt+Y пересканирует обычно
Спс, поиск в настройках это действительно круто, нигде такого не видел!
Сообщение от Kolyaj
но он это всегда по тихому делает, так что и непонятно, делает ли.
Ну не сразу это точно)
Ответить с цитированием
  #120 (permalink)  
Старый 09.11.2011, 10:25
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

monolithed,
Галка:
Сохраняем на сервер автоматически: Deployment>Options>Upload changed files automatically to ...
Галки: General>Synchronization
Синхронизайя файлов при активации фрейма и сохранение файла при деактивации фрейма
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт не работает в FF и опера, но работает в IE(в чем дело???) Cepera Firefox/Mozilla 1 24.08.2012 16:46
НА чем сделан этот форум? sergiocharm Оффтопик 3 13.08.2011 19:49
Непойму в чем разница в коде NT Man Internet Explorer 12 06.10.2009 13:56
[новичек] в чем ошибка? Gloft Events/DOM/Window 2 10.05.2009 23:11
Одиночки. В чем разница? Snipe Общие вопросы Javascript 49 07.06.2008 15:58