Javascript-форум (https://javascript.ru/forum/)
-   Сайт Javascript.ru (https://javascript.ru/forum/site/)
-   -   Что для вас важно в javascript-редакторе (https://javascript.ru/forum/site/6645-chto-dlya-vas-vazhno-v-javascript-redaktore.html)

Илья Кантор 11.12.2009 16:00

Что для вас важно в javascript-редакторе
 
Для меня

+ автокомплит, в том числе с использованием моих файлов
+ поддержка моего javascript-фреймворка
+ фолдинг - на уровне функций, блоков, и комментариев
+ проверка синтаксиса
+ быстрота запуска
+ возможность редактировать какой-нибудь файл без надобности заводить его в проект

А для вас ?

Kolyaj 11.12.2009 16:15

+ подсветка с анализом синтаксического дерева
+ переход к определению переменной/свойства/функции
+ find usage переменной/свойства/функции
+ переименование переменной/свойства/функции
+ возможность открыть нужный файл по имени (без поиска его в папках)
+ выделение прямоугольных блоков текста
+ обертка выделенного блока операторами if, while, try/catch, ... и комментирование выделенного
+ получение списка определенных в файле объектов/переменных/свойств/методов для быстрого перехода к ним.

еще наверно немало чего есть. Это я перечислил, на самом деле, наиболее часто используемые мной функции WebIDE/IntellijIDEA.

Еще любую операцию чтобы можно было выполнить с клавиатуры без мыши.

Dmitry A. Soshnikov 11.12.2009 16:25

Очень удобно:

* подстветка (с возможностью своих конфигов);
* автокомплит (с возможностью своих конфигов + текущие слова в документе);
* сниппеты;
* прямоугольные выделения;
* обрамление текста (коммент, блоки).

Остальное: удобно.

Проверка синтаксиса в некоторых редакторах иногда даже мешает, т.к. не понимает, что она проверяет, и почему она так проверяет (вернее, не понимал человек, который писал алгоритм проверки синтаксиса).

Kolyaj 11.12.2009 16:26

Кстати да, еще парсинг JSDoc'ов с последующим выводом справки в месте вызова функции.

B~Vladi 11.12.2009 16:27

Нормальный дебагер. Юзал такие:
Aptana: постоянные конфликты с firebug, куча своих глюков.
WebIDE: так и не смог запустить. Наверно он там для красоты.
IntellijIDEA: работает только под мозиллой, а хотелось бы ещё, как минимум, ишака.

Вобщем нет нормальных дебагеров.

Ещё очень важна тонкая настройка подсветки и оформления кода как, например, в IntellijIDEA.

Ну и интерфейс. Всё таже IntellijIDEA сильно уступает в этом, но все её вкусности как-то это компенсируют:)

Kolyaj 11.12.2009 16:31

Цитата:

Сообщение от B~Vladi
Нормальный дебагер.

А я ими успешно не пользуюсь :)

Цитата:

Сообщение от B~Vladi
Ну и интерфейс.

Ну это сильно субъективно. Меня интерфейс идеи устраивает.

B~Vladi 11.12.2009 16:36

Цитата:

Сообщение от Kolyaj
А я ими успешно не пользуюсь

А намного удобнее фаербажного:)
Цитата:

Сообщение от Kolyaj
Ну это сильно субъективно. Меня интерфейс идеи устраивает.

Я не про картинки там всякие, оформление... а про настройку. По мне, так для DW (да и вообще во всех CS 3-4) юзабилист постарался хорошо.

А и ещё, чтоб с кодировкой умел работать... В идеи это отсутствует напроч - сонсоль даже юникод нормально показать не может:(

Kolyaj 11.12.2009 16:43

Цитата:

Сообщение от B~Vladi
А намного удобнее фаербажного

А я вообще дебагерами не пользуюсь :)

Цитата:

Сообщение от B~Vladi
а про настройку.

Про настройку чего именно? В идее в принципе достаточно помнить имена действий и Ctrl+Shift+A.

И с кодировками там вроде все нормально. Я по крайней мере с проблемами не сталкивался.

З.Ы. Юникод не кодировка :)

nemo 11.12.2009 16:53

+ Сохранение в утф8 без бум
+ Нечего лишнего , подсветки и другой пиписьки

B~Vladi 11.12.2009 16:54

Цитата:

Сообщение от Kolyaj
Про настройку чего именно?

Вспомнить хотя бы отсутствие драг-дропа. Нельзя перенести панель на другую сторону.
Вобщем всё как-то неподвижно кажется, но настроиться всё-таки можно:)
Цитата:

Сообщение от Kolyaj
А я вообще дебагерами не пользуюсь

О, гуру, открой свою тайну!
Цитата:

Сообщение от Kolyaj
И с кодировками там вроде все нормально. Я по крайней мере с проблемами не сталкивался.
З.Ы. Юникод не кодировка

Знаю, что не кодировка. Проблемы там такие:
При просмотре какого-либо обьекта имеющего свойства с русским текстом - идея показывает что-то другое, вместо этого значения. При попытке вывести это на консоль - та же история. Напомню, всё работает в utf-8. Хотя сообщения из мозиловской консоли приходят на русском. Если кто знает. как это исправить - подскажите.

Kolyaj 11.12.2009 17:07

Цитата:

Сообщение от B~Vladi
О, гуру, открой свою тайну!

Логирование.

Dmitry A. Soshnikov 11.12.2009 18:37

Цитата:

Сообщение от Kolyaj
Логирование.

Логирование - это часть дебага. Оно, конечно, не лочит поток (что удобно, например, в асинхронных запросах), но лишь с помощью логирования нельзя полноценно дебажить - как то: в рантайме смотреть скоп-чейн, менять значения, добавлять новые, влияющие на результат, анализировать на разном наборе входных данных (без перезагрузок по F5 и дописывания нужных console.log-ов или alert-ов) и т.д. Т.е. дебаг - это не просто "посмотреть", но ещё и - "модифицировать в рантайме по нужным условиям" ;)

e1f 11.12.2009 19:05

То же, что и в Perl, и в PHP редакторе:
  • подсветка кода
  • поиск вхождений по документу/открытым документам
  • on-demand проверка синтаксиса на отсутствие ошибок и на option explicit
  • соответственно удобный переход по этим ошибкам
  • комментирование блоков кода, блочное выделение (вертикальное)
  • возможность передачи выделения пользовательским командам (к примеру, я могу выделить ключи хэша, вуаля -- и получить на месте их сорт по алфавиту)
  • форматирование выделенного кода (отступы и т.п.) -- необязательно, но приятно
  • автодополнение можно, но совсем не обязательно -- как-то привык без него, чаще даже мешает
  • список функций/методов -- опять же, необязательно, но как плюшка радует.
Для всего этого использую geany

Kolyaj 11.12.2009 19:14

Цитата:

Сообщение от Dmitry A. Soshnikov
Т.е. дебаг - это не просто "посмотреть", но ещё и - "модифицировать в рантайме по нужным условиям"

Дебаг -- это поиск ошибок. Мне для этого хватает логирования. Мне не нужно для поиска ошибки
Цитата:

Сообщение от Dmitry A. Soshnikov
в рантайме смотреть скоп-чейн, менять значения, добавлять новые, влияющие на результат, анализировать на разном наборе входных данных


B~Vladi 12.12.2009 02:05

Цитата:

Сообщение от Kolyaj
Мне не нужно для поиска ошибки

т.е. ошибок в твоём коде нет?;)

x-yuri 12.12.2009 06:23

· возможность открыть нужный файл по имени (без поиска его в папках)
· подсветка синтаксиса
· поиск в файлах, с помощью регулярных выражений, с отображением списка файлов и строк, в которых найдено вхождение. Например, как в Zend Studio
удобно:
· получение списка определенных в файле объектов/переменных/свойств/методов для быстрого перехода к ним
автокомплит, как ни странно, мне больше всего нравиться в far'е (EditCompletion) (: Предлагается наиболее подходящий вариант в пределах файла. Может быть, стандартный автокомплит удобен, когда работаешь с другими фреймворками, хотя не уверен

а это как?
Цитата:

Сообщение от Илья Кантор
+ автокомплит, в том числе с использованием моих файлов

Цитата:

Сообщение от Илья Кантор
+ поддержка моего javascript-фреймворка

Цитата:

Сообщение от Kolyaj
+ подсветка с анализом синтаксического дерева



Цитата:

Сообщение от e1f
возможность передачи выделения пользовательским командам (к примеру, я могу выделить ключи хэша, вуаля -- и получить на месте их сорт по алфавиту)

макросы что ли?

надо попробовать:
Цитата:

Сообщение от Kolyaj
+ переход к определению переменной/свойства/функции
+ find usage переменной/свойства/функции
+ переименование переменной/свойства/функции

не думал, что в отношении javascript такое где-то есть, именно поэтому у меня там пункт про поиск в файлах
Цитата:

Сообщение от Kolyaj
+ обертка выделенного блока операторами if, while, try/catch, ... и комментирование выделенного

Цитата:

Сообщение от Dmitry A. Soshnikov
* сниппеты;

Цитата:

Сообщение от Kolyaj
Кстати да, еще парсинг JSDoc'ов с последующим выводом справки в месте вызова функции.



Цитата:

Сообщение от Kolyaj
Дебаг -- это поиск ошибок. Мне для этого хватает логирования

+1, обычно пошаговая отладка нужна, когда работаешь с чужим кодом



Цитата:

Сообщение от Dmitry A. Soshnikov
Проверка синтаксиса в некоторых редакторах иногда даже мешает, т.к. не понимает, что она проверяет, и почему она так проверяет (вернее, не понимал человек, который писал алгоритм проверки синтаксиса).

+1, либо просто не учитывает (возможно нестандартные) варианты синтаксиса

Kolyaj 12.12.2009 09:13

Цитата:

Сообщение от B~Vladi
т.е. ошибок в твоём коде нет?

Даже из вырванной тобою из контекста фразы это не следует.

Цитата:

Сообщение от x-yuri
а это как?

Цитата:

Сообщение от Kolyaj
+ подсветка с анализом синтаксического дерева

Как в WebIDE (в IDEA похоже, но уже отличается): глобальные переменные жирные, в отличие от локальных, параметры функции подчеркнуты, неиспользуемые переменные/функции бледно-серые. Еще различные inspections, анализирующие код.

Цитата:

Сообщение от x-yuri
не думал, что в отношении javascript такое где-то есть, именно поэтому у меня там пункт про поиск в файлах

Я раньше тоже :) Хотя переименование делаю только в пределах одного файла, в нескольких не рискую.

Илья Кантор 12.12.2009 11:02

А кто-нибудь пользуется отладчиком в IDE ? В каких, насколько удобно?

Dmitry A. Soshnikov 12.12.2009 11:27

Цитата:

Сообщение от Kolyaj
Мне для этого хватает логирования.

Главное, чтобы "хватало". Кому-то и блокнота Window-овго хватает и не нужны никакие "автокомплиты" и прочая "лабуда". Если привык дебажить определённым образом, и это удобно - это главное.

С другой стороны, один брейкпоинт (и дело даже может быть не в построчной отладке, как отмечал x-yuri) заменяет "20 console.log-ов" или "alert-ов".

Я совмещаю при дебаге: логирование и в сложных случаях - дебаггер. Само же логирование может и не относится к дебагу.

e1f 12.12.2009 12:32

Цитата:

Сообщение от x-yuri (Сообщение 37774)
макросы что ли?

А черт его знает :) Я просто настраиваю передачу выделения пользовательской команде. То есть для сорта просто пайп на sort

Цитата:

Сообщение от Илья Кантор (Сообщение 37788)
А кто-нибудь пользуется отладчиком в IDE ? В каких, насколько удобно?

Если пользуюсь отладчиком, то уже встроенным в бровзер -- для ФФ ессно firebug, в ИЕ8 есть свой, для оперы все плохо :( Драгонфлай мне решительно не нравится...

Kolyaj 12.12.2009 13:10

Цитата:

Сообщение от Dmitry A. Soshnikov
Главное, чтобы "хватало". Кому-то и блокнота Window-овго хватает и не нужны никакие "автокомплиты" и прочая "лабуда". Если привык дебажить определённым образом, и это удобно - это главное.

Ну я ж никого и не призываю в свою церковь :)

Цитата:

Сообщение от Dmitry A. Soshnikov
Само же логирование может и не относится к дебагу.

Отличный пример того, как из-за мягкого знака в тся/ться меняется смысл предложения. Тут все правильно, или таки пропустил? :)


Кстати, раз уж пошел разговор об инструментах. Resig рассказывал про прикольную игрушку для IE: dynaTrace AJAX. Я её поковырял немножко, впечатлила, но подробно не смотрел пока. Кто-нибудь пробовал?

Dmitry A. Soshnikov 12.12.2009 13:46

Цитата:

Сообщение от Kolyaj
Отличный пример того, как из-за мягкого знака в тся/ться меняется смысл предложения. Тут все правильно, или таки пропустил?

Ага, пропустил, имел в виду "может и не относиться". Хотя, тут так, и так подходит ;)

Dmitry A. Soshnikov 12.12.2009 17:05

Цитата:

Сообщение от x-yuri
макросы что ли?

Кстати, да, ещё и макросы (с возможностью определения собственных) - очень удобно.

x-yuri 13.12.2009 14:56

Цитата:

Сообщение от e1f
А черт его знает Я просто настраиваю передачу выделения пользовательской команде. То есть для сорта просто пайп на sort

а, т.е. передача выделения внешней программе, а не макросы. А как это там делается?

Цитата:

Сообщение от Kolyaj
Кстати, раз уж пошел разговор об инструментах. Resig рассказывал про прикольную игрушку для IE: dynaTrace AJAX

"I don't want to seem too excited but I really am" (: пока даже не ковырял, только статью прочитал

e1f 13.12.2009 23:57

x-yuri, в наличии опция -- "передать выделение пользовательской команде", ну и возможность их добавления. Впоследствии по шорткату вызываем команду, ей передается выделенный текст, то, что команда выдает в stdout, заменяет выделение. Из действительно полезных вещей -- впихнуть туда "Форматированиие блока кода". Сейчас вот пробую повесить для этого GNU Indent -- вроде бы работает, правда он для C, так что есть баги с форматированием JS.

Kolyaj 14.12.2009 11:50

Цитата:

Сообщение от e1f
Из действительно полезных вещей -- впихнуть туда "Форматированиие блока кода".

Ага, это в ИДЕ тоже должно быть :)

e1f 14.12.2009 13:31

Kolyaj, разве что в ИДЕ, изначально заточенной под язык.

Kolyaj 14.12.2009 13:34

Цитата:

Сообщение от e1f
Kolyaj, разве что в ИДЕ, изначально заточенной под язык.

ИДЕ не может быть не заточена под язык, иначе это просто текстовый редактор с подсветкой.

B~Vladi 14.12.2009 13:39

Неужели Илья редактор взялся написать?:)

e1f 14.12.2009 14:48

Kolyaj, так я и пользуюсь текстовым редактором с подсветкой синтаксиса :) А что ИДЕ может такого, что не может редактор с подсветкой ( тут видимо надо читать "vim с плагинами" :) )?

Kolyaj 14.12.2009 14:51

Цитата:

Сообщение от e1f
так я и пользуюсь текстовым редактором с подсветкой синтаксиса

Ну я специально и выделил, что я ожидаю это видеть в ИДЕ, т.е. к твоему редактору это и не относилось.

Цитата:

Сообщение от e1f
А что ИДЕ может такого, что не может редактор с подсветкой

Тему перечитай чтоли :)

e1f 14.12.2009 15:02

Цитата:

Сообщение от Kolyaj (Сообщение 37916)
Тему перечитай чтоли :)

Цитата:

Что вас важно в javascript-редакторе
Где указано, что это должна быть "среда разработки"?
А для server-side тогда другую программу использовать, чтоли? Или какой-то комбайн специально для веб-разработки? Просто ввиду того, что мне надо работать с Perl, я не видел таких комбайнов, чтобы умели все вкусные плюшки для связки JS+Perl.
Ну и привык уже к своему редактору, несмотря на то, что он изначально *никсовый и под винду не имеет встроенного терминала ( что обидно :( ).

Kolyaj 14.12.2009 15:11

Цитата:

Сообщение от e1f
Где указано, что это должна быть "среда разработки"?

e1f,
я просто добавил ещё один пункт к тому, что для меня важно в ИДЕ. Я не пользуюсь текстовым редактором, я пользуюсь ИДЕ, поэтому я и пишу про ИДЕ. Тебя я процитировал только потому, что именно ты упомянул эту функциональность, не более.

e1f 14.12.2009 15:17

Kolyaj, а с чем еще WebIDE/IntellijIDEA умеет работать? Я мельком глянул -- "for HTML and PHP Developers".

x-yuri 14.12.2009 15:25

Цитата:

Сообщение от Kolyaj
ИДЕ не может быть не заточена под язык, иначе это просто текстовый редактор с подсветкой

почему? Я думал, что отличие IDE в том, что она IDE

Kolyaj 14.12.2009 15:25

IntellijIDEA заточена под Java, остальное решается различными плагинами.

WebIDE заточена под PHP-разработку (вся клиентская часть тоже поддерживается). Плагины заявлены от IDEA, но пока не ставятся, хотя были статьи, что можно поставить.

Поддержка JS в обоих отличная, верстаю и на PHP пишу редко, поэтому по достоинству оценить не могу.

Kolyaj 14.12.2009 15:30

Цитата:

Сообщение от x-yuri
Я думал, что отличие IDE в том, что она IDE

В первую очередь она все-таки среда разработки, а потом уже интегрированная :)

Может я, конечно, и ошибаюсь в терминологии, но назвать средой разработки редактор, который работает с текстом программы, а не с её структурой, у меня язык не повернётся.

x-yuri 14.12.2009 17:28

Цитата:

I do, but it's more in the way you use them than a difference in the software itself. Some software is used as an IDE by some, but a mere text editor by others. Some software can only be a text editor, some is difficult to use as only a text editor, and some can be easily used as both.

I would say that such stalwarts as Vi(m) and Emacs are used by some as text editors and some as IDEs. Things like eclipse, visual studio, etc only really make sense as IDEs and things like notepad can hardly be anything but a text editor.

I would say if you stay in your text editor to do other things - compile, debug, etc - then you're using it more like an IDE. Quite where I'd draw the line, I'm not sure.
http://stackoverflow.com/questions/1...itors-and-ides

Илья Кантор 15.12.2009 22:08

Что важно в javascript-редакторе:

--- автокомплит ---
Уровни поддержки:
1) по символам в файле
2) учет прототипа/структуры объекта
3) учет других javascript-файлов проекта
4) получение информации о типе из специальных комментариев (ScriptDoc, Intellisense и т.п.))
5) поддержка основных javascript-фреймворков

Например:
function MyClass() {
this.method = function() {}
}
MyClass.prototype.protoMethod = function() {}

function blabla() {}

myVar = new MyClass()

myVar.... автокомплит
1) редактор предложит все символы из файла, включая blabla
2) редактор предложит method и protoMethod, но не blabla
3) редактор также рассмотрит другие файлы проекта
4,5) self-descriptive

Возможно несколько уровней, например: 2+3+4 (Intellij IDEA)

--- фолдинг(сворачивание участков кода) ---
Уровни поддержки:
1) на уровне функций
2) ур. 1 + на уровне блоков
3) ур. 2 + на уровне комментариев

--- подсветка и анализ синтаксического дерева --
Уровни поддержки:
1) Есть в файлах .js + проверка синтаксиса
2) Правильно интегрировано с HTML/шаблонами, учтена проверка синтаксиса

--- быстрота запуска ---
Уровень поддержки оценивается субъективно, оценкой от 1 до 10

--- структура кода ---
Уровни поддержки:
1) Возможность перейти к определению переменной/функции(go to definition)
2) Возможность переименовать везде (рефакторинг)
3) Возможность просмотра и навигации по коду, используя структуру (outline)

--- сниппеты ---
Уровни поддержки:
1) Вставка куска кода по хоткею
2) Вставка сниппета на основе выделенного блока кода.
Например: обрамление комментариями, окружение if, try..catch
3) Вставка сниппетов по шаблону, например: f( разворачивается в function()


--- кастомизация ---
Уровни поддержки:
1) Можно добавить (заскриптовать) какие-то действия с выделенным кодом,
в том числе с использованием внешних программ

--- отладка ---
Уровни поддержки:
1) Есть некий отладчик (подробнее?)
2) Интеграция с браузерами (Firefox, Internet Explorer)

Ничего не забыл?

Riim 16.12.2009 14:06

Еще можно про стабильность работы (глючность, бажность) что-нибудь придумать.

Цитата:

Сообщение от Илья Кантор
--- быстрота запуска ---
Уровень поддержки оценивается субъективно, оценкой от 1 до 10

можно разделить на 2:
1. первый запуск
2. дальнейшая работа


Часовой пояс GMT +3, время: 19:19.