16.12.2009, 12:22
|
|
Администратор
|
|
Регистрация: 25.05.2007
Сообщений: 1,221
|
|
Мой javascript-редактор
Опишите, пожалуйста, свой javascript-редактор/IDE для разработки. Пусть читатели этой темы знают, какой редактор на что способен и смогут выбрать подходящий для себя.
Для описания предлагается такая схема (по мотивам топика "что для вас важно в 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/шаблонами
3) Есть проверка синтаксиса
--- быстрота ---
Уровень оценивается субъективно, оценкой от 1(медленнее некуда) до 10 (летает).
1) Скорость запуска
2) Дальнейшая работа
--- структура кода ---
Уровни поддержки:
1) Возможность перейти к определению переменной/функции(go to definition)
2) Возможность переименовать везде (рефакторинг)
3) Возможность просмотра и навигации по коду, используя структуру (outline)
--- сниппеты ---
Уровни поддержки:
1) Вставка куска кода по хоткею
2) Вставка сниппета на основе выделенного блока кода.
Например: обрамление комментариями, окружение if, try..catch
3) Вставка сниппетов по шаблону, например: f( разворачивается в function()
--- кастомизация ---
Уровни поддержки:
1) Можно добавить (заскриптовать) какие-то действия с выделенным кодом,
более умные, чем шаблон, например, с использованием внешних программ
--- отладка ---
Уровни поддержки:
1) Есть некий отладчик (подробнее?)
2) Интеграция с браузерами (Firefox, Internet Explorer)
--- операционные системы ---
Windows, Linux, Mac support ?
--- стоимость ---
Сколько стоит?
Пожалуйста, указывайте не только что возможность есть, но и КАК ее задействовать. Многие пользуются редакторами и IDE, не зная всех их возможностей.
Спасибо!
Последний раз редактировалось Илья Кантор, 17.12.2009 в 14:36.
|
|
16.12.2009, 17:12
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
EmEditor.
Всё, что я описывал:
* подстветка (с возможностью своих конфигов);
* автокомплит (с возможностью своих конфигов + текущие слова в документе);
* сниппеты;
* прямоугольные выделения;
* обрамление текста (коммент, блоки);
* передача выделения внешней программе;
* макросы (фактически, любая дополнительная автоматизация);
* легковестный;
* хорошо работает с большими файлами;
* фолдинг/outline (не пользуюсь);
Price: $39.99.
Последний раз редактировалось Dmitry A. Soshnikov, 16.12.2009 в 17:24.
|
|
16.12.2009, 17:24
|
|
Администратор
|
|
Регистрация: 25.05.2007
Сообщений: 1,221
|
|
Редактор WebIDE (Intellij IDEA)
--- автокомплит ---
Уровни поддержки:
1) по символам в файле
да
2) учет прототипа/структуры объекта
да
3) учет других javascript-файлов проекта
да
4) получение информации о типе из специальных
комментариев (ScriptDoc, Intellisense и т.п.))
да, jsdoc
5) поддержка основных javascript-фреймворков
Да, для тех, у которых есть jsdoc.
Например, для jquery - нужно скачать jsdoc: http://code.google.com/p/jquery-jsdoc/downloads/list .
--- фолдинг(сворачивание участков кода) ---
Уровни поддержки:
1) на уровне функций
2) ур. 1 + на уровне блоков
3) ур. 2 + на уровне комментариев
Да, ур. 3
--- подсветка и анализ синтаксического дерева --
Уровни поддержки:
1) Есть в файлах .js + проверка синтаксиса
2) Правильно интегрировано с HTML/шаблонами, учтена проверка синтаксиса
Да
--- быстрота ---
Уровень оценивается субъективно, оценкой от 1 до 10
1) Скорость запуска 3
2) Дальнейшая работа 7
--- структура кода ---
Уровни поддержки:
1) Возможность перейти к определению переменной/функции(go to definition)
да, ctrl+b
2) Возможность переименовать везде (рефакторинг)
да, shift+f6 на названии
3) Возможность просмотра и навигации по коду, используя структуру (outline)
да, режим проекта Structure
--- сниппеты ---
Уровни поддержки:
1) Вставка куска кода по хоткею
2) Вставка сниппета на основе выделенного блока кода.
Например: обрамление комментариями, окружение if, try..catch
3) Вставка сниппетов по шаблону, например: f( разворачивается в function()
1,2,3) да
Для сниппетов - live templates
--- кастомизация ---
Уровни поддержки:
1) Можно добавить (заскриптовать) какие-то действия с выделенным кодом,
в том числе с использованием внешних программ
Не знаю, как это сделать. Плагин?
--- отладка ---
Уровни поддержки:
1) Есть некий отладчик (подробнее?)
2) Интеграция с браузерами (Firefox, Internet Explorer)
Да, Run Configuration->Javascript debugging, ставит расширение для Firefox
--- операционные системы ---
Кроссплатформенный, Java
--- стоимость ---
WebIDE пока что в pre-alpha, но люди его используют.
Intellij IDEA платная, 599$
Последний раз редактировалось Илья Кантор, 16.12.2009 в 18:07.
|
|
16.12.2009, 17:27
|
|
Администратор
|
|
Регистрация: 25.05.2007
Сообщений: 1,221
|
|
Dmitry A. Soshnikov,
можно попросить переделать пост под структуру? Я из этого таблицу сделаю потом..
|
|
16.12.2009, 17:45
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Илья Кантор,
я вчера еще обнаружил, что WebIDE умеет синтаксическое дерево показывать.
|
|
16.12.2009, 21:08
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Сообщение от Илья Кантор
|
Dmitry A. Soshnikov,
можно попросить переделать пост под структуру? Я из этого таблицу сделаю потом..
|
Редактор EmEditor (Emurasoft)
http://emeditor.com
--- автокомплит ---
Уровни поддержки:
1) по символам в файле
да
2) учет прототипа/структуры объекта
да (просто в автокомплите выводит все символы в файле, включая свойство из прототипа)
3) учет других javascript-файлов проекта
нет
4) получение информации о типе из специальных
комментариев (ScriptDoc, Intellisense и т.п.))
нет/не знаю
5) поддержка основных javascript-фреймворков
по дефолту - нет (редактор общего пользования), кастом - да (можно добавить любые свои конфигурации автокомплита, слов подсветки, сниппетов по фреймворку и т.д.)
--- фолдинг(сворачивание участков кода) ---
Уровни поддержки:
1) на уровне функций
2) ур. 1 + на уровне блоков
3) ур. 2 + на уровне комментариев
Да, ур. 3
--- подсветка и анализ синтаксического дерева --
Уровни поддержки:
1) Есть в файлах .js + проверка синтаксиса
2) Правильно интегрировано с HTML/шаблонами, учтена проверка синтаксиса
Да (подсветка, правильно интегрированная с HTML; проверки синтаксиса нет, возможно, дополнительными плагинами - не знаю)
--- быстрота ---
Уровень оценивается субъективно, оценкой от 1 до 10
1) Скорость запуска 1
2) Дальнейшая работа 1
Очень легковесный, большие файлы открывает тоже быстро.
--- структура кода ---
Уровни поддержки:
1) Возможность перейти к определению переменной/функции(go to definition)
да (при использовании проекта и его таблицы символов, либо при включённом outline-е и его таблицы; отдельно, либо по shorcut-у - нет, хотя, возможно, легко скриптуется макросами).
2) Возможность переименовать везде (рефакторинг)
нет (не выделено специальной функции, но - Ctrl-H, "заменить всё" + "заменить всё во всех файлах")
3) Возможность просмотра и навигации по коду, используя структуру (outline)
да
--- сниппеты ---
Уровни поддержки:
1) Вставка куска кода по хоткею
2) Вставка сниппета на основе выделенного блока кода.
Например: обрамление комментариями, окружение if, try..catch
3) Вставка сниппетов по шаблону, например: f( разворачивается в function()
1,2,3) да
--- кастомизация ---
Уровни поддержки:
1) Можно добавить (заскриптовать) какие-то действия с выделенным кодом,
в том числе с использованием внешних программ
Да (хорошая поддержка макросов: скриптуется либо JS, либо VB + автоматическая генерация кода по записи действий). Кастомные сниппеты/макросы, скриптование выделенного текста (например, обрамление, сортировка и т.д.), передача его внешней программе.
--- отладка ---
Уровни поддержки:
1) Есть некий отладчик (подробнее?)
2) Интеграция с браузерами (Firefox, Internet Explorer)
Нет (возможно, дополнительным плагином). Есть встроенный браузер (Web Preview - панель в которой можно смотреть результат; не пользуюсь).
--- операционные системы ---
Windows
--- стоимость ---
$39.99
Также (не пользуюсь этим):
* понимает CSV, TSV, User defined DSV;
* линейка есть
* Web Preview
* HTML Bar (теги, формы, таблицы, выбор цвета и т.д.);
* Diff
* Explorer файлов
* Расширенный search bar
* Word Count
* External Tools (IE, CMD, любая другая)
* Вывод во встроенную консоль результатов внешней программы.
Последний раз редактировалось Dmitry A. Soshnikov, 16.12.2009 в 21:26.
|
|
16.12.2009, 22:28
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Komodo IDE
--- автокомплит ---
Уровни поддержки:
1) по символам в файле
Да
2) учет прототипа/структуры объекта
Да
3) учет других javascript-файлов проекта
Да
4) получение информации о типе из специальных комментариев (ScriptDoc, Intellisense и т.п.))
Да, но не знаю как заюзать, точнее как написать свое.
5) поддержка основных javascript-фреймворков
Да
--- фолдинг(сворачивание участков кода) ---
Уровни поддержки:
1) на уровне функций
Да
2) ур. 1 + на уровне блоков
Да
3) ур. 2 + на уровне комментариев
Нет
--- подсветка и анализ синтаксического дерева --
Уровни поддержки:
1) Есть в файлах .js + проверка синтаксиса
Да, причем даже строгая, типа функция не возвращает данные.
2) Правильно интегрировано с HTML/шаблонами, учтена проверка синтаксиса
Да
--- быстрота ---
Уровень оценивается субъективно, оценкой от 1(медленнее некуда) до 10 (летает).
1) Скорость запуска
3 5-10 сек. Nuspere PHP гдето 3-6сек
2) Дальнейшая работа
5
--- структура кода ---
Уровни поддержки:
1) Возможность перейти к определению переменной/функции(go to definition)
Да, ctrl+click
2) Возможность переименовать везде (рефакторинг)
Быстрого способа нет, поиск по файлам.
3) Возможность просмотра и навигации по коду, используя структуру (outline)
Да, структура, DOM
--- сниппеты ---
Уровни поддержки:
1) Вставка куска кода по хоткею
2) Вставка сниппета на основе выделенного блока кода.
Например: обрамление комментариями, окружение if, try..catch
3) Вставка сниппетов по шаблону, например: f( разворачивается в function()
Есть
--- кастомизация ---
Уровни поддержки:
1) Можно добавить (заскриптовать) какие-то действия с выделенным кодом,
более умные, чем шаблон, например, с использованием внешних программ
Незнаю
--- отладка ---
Уровни поддержки:
1) Есть некий отладчик (подробнее?)
2) Интеграция с браузерами (Firefox, Internet Explorer)
Вроде есть, но я не пользуюсь
--- операционные системы ---
Windows, Linux, Mac support ?
Все перечисленные
--- стоимость ---
Komodo IDE is $295 USD for all the languages, platforms, and systems you use. Licenses include all point release updates (such as from Komodo IDE 5.2 to 5.3).
Komodo IDE team pricing: Get 5 licenses for the price of 4 when you buy a 5-pack for $1180 USD.
Но это все фигня =)
Последний раз редактировалось PeaceCoder, 17.12.2009 в 00:44.
|
|
16.12.2009, 23:07
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Сообщение от PeaceCoder
|
1) Есть в файлах .js + проверка синтаксиса
Да, причем даже строгая, типа функция не возвращает данные.
|
Я, вот когда говорил в соседней теме, что некоторые редакторы иногда не понимают, что они проверяют, как раз имел в виду Komodo. Коллеги на работе используют Komodo, и этот редактор ругался на мой код: было два return-a:
if (!условие) {
return;
}
// обработка
return какойТоОбъект;
Так вот Komodo у коллег ругался на первый return, говоря, что он, якобы, не возвращает значение (ну, правильно, Komodo же (а вернее, тот, кто писал алгоритм этой проверки) не знал, что функция в JS всегда возвращает значение, даже если вообще нет return-a, либо же, ему невдомёк, что возвращается дефолтное undefined). В общем, коллегам не нравилась красная подчёркивающая линия, сигнализирующая об ошибке и решили поставить return null; И невдомёк Komodo, что этот return - это просто "выход из анализа", т.е. значение вообще не интересует: код в самом начале не прошёл проверку - выходим, нет смысла анализировать дальше.
Сообщение от PeaceCoder
|
--- сниппеты ---
Уровни поддержки:
1) Вставка куска кода по хоткею
2) Вставка сниппета на основе выделенного блока кода.
Например: обрамление комментариями, окружение if, try..catch
3) Вставка сниппетов по шаблону, например: f( разворачивается в function()
Всего вроде нет, я не нашел
|
Ctrl+T
В JS, например, набери func и нажми Ctrl+T.
Вообще, Komodo - хороший редактор/IDE (UI написан на XUL-e, легко писать плагины, макросы скриптуются JS или Python-ом), но, по сравнению с EmEditor - тормозной.
Последний раз редактировалось Dmitry A. Soshnikov, 16.12.2009 в 23:37.
|
|
16.12.2009, 23:21
|
|
Администратор
|
|
Регистрация: 25.05.2007
Сообщений: 1,221
|
|
Еще по Komodo: у меня он не умеет автокомплит с учетом структуры, смотрите например пример
function MyClass() {
this.method = function() {}
}
MyClass.prototype.protoMethod = function() {}
function blabla() {}
myVar = new MyClass()
myVar.... автокомплит
он, случаем, не предлагает blabla как вариант?
|
|
16.12.2009, 23:36
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от Dmitry A. Soshnikov
|
то некоторые редакторы иногда не понимают, что они проверяют
|
это отключается.
Выдает протометод а вот метод не видит =( эт его недостаток. он видит ток прямые прототипы функций-переменных как я понял
А что у вас видит другие при такой раскладке?
F = function(){
this.c=1;
}
F.prototype.a = function(){}
F.prototype.b = function(){}
FF = function(){return new F();}
FF... автокоплит что выдает? в комодо все a,b,c
П.С. EmEditor не поддерживает проекты, а это никуда не годится. Ну хоть файловая система есть. Для меня это как блокнот не больше.
Последний раз редактировалось PeaceCoder, 16.12.2009 в 23:48.
|
|
|
|