Войти на сайт

Авторизация, ждите ...
×
  • Страница:
  • 1
  • 2

ТЕМА: JS. Где пишите?

JS. Где пишите? 6 года 1 мес. назад #102249

  • KageDesu
  • KageDesu аватар
  • Вне сайта
  • Мастер
  • Сообщений: 101
  • Спасибо получено: 346
Хотелось узнать у немногочисленных пользователей, которые пишут плагины для MV, кто в каких программах работает?

Была ли проблема, что код одного плагина занимает уж очень много строк и работать с одним .js файлом становится неудобно, как решали?

Какие программы можете посоветовать для работы с JavaScript кодом?

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, yuryol, NeKotZima

JS. Где пишите? 6 года 1 мес. назад #102250

  • Amphilohiy
  • Amphilohiy аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 547
  • Спасибо получено: 666
  • Оратор2 место ГотвПобедитель Сбитой кодировкиПрограммист RubyУчитель
Я практически плагины не писал, кроме одного конкурсного случая. Но тогда это была связка coffeescript + gulp. Тогда я для этого случая поставил intellij webstorm. Но в большинстве участники нашего форума сторонятся coffee и даже отказываются поставить gulp.
Что касается слишком больших файлов - gulp все же посоветую, или же поискать чего-то подобное из сборки веб ассетов. На том же gulp я умудрился даже вытащить справку в отдельные txt файлы и лепить лицензию до скрипта, прежде чем все остальное он перегонит из coffee в js и расположит в нужном мне порядке. В конечном итоге можно настроить задачу в webstorm, подключить вотчеры (делает пересборку если файлы обновились) к gulp и обработку ошибок, чтобы вылазило оконное уведомление под звуки ржача коня.
Не знаю, мне тогда понравилось, но повозиться немного придется. Особенно учитывая, что я где-то штук 15 плагинов к gulp присобачил.
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, DK, KageDesu, Doctor_Bug

JS. Где пишите? 6 года 1 мес. назад #102253

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • Проект месяца 3 местоОраторУчительПроект месяца 2 местоПрограммист JavaScript ВетеранПроект месяца 1 место2 место РазработчикПрограммист Ruby
Все плагины пишу в IDE Webstorm. Другие IDE не пробовал и не хочу, потому что:
1. Webstorm имеет приятный интерфейс, настраиваемый
2. Встроенная отладка с дебагером (могу подсказать, как настроить на мейкер)
3. Живые шаблоны (пользовательские куски кода), которые ооочень облегчают (ускоряют) написание кода. То есть например я набираю на клавиатуре "fe", нажимаю таб и мне IDE вставляет forEach цикл и это только малая часть, что умеют эти шаблоны. Как раз те сниппеты, о которых ты написал. + Есть такая дополнительная штука, как postfix completion. Например, ты пишешь названиеПеременной после нее ставишь точку и пишешь if, нажимаешь таб, и эта строка трансформируется в if выражение, условием которого является твоя переменная. Опять же удобно и ускоряет код.
4. Отличное автозавершение кода для JS, я считаю, то есть методы сопоставляет с классами по большей части.
5. Я сейчас медленно работаю над документацией стандартных классов мейкера в формате dts (type script definition), который поддерживается этой и не только этой IDE, чтобы автозавершать код стандартных классов мейкера. То есть достаточно подключить эти файлы и при использовании стандартных классов будут всплывать подсказки аргументов функций, их типов и все такое. Могу поделиться, если надо.
P.S. IDE платная сама по себе, если что.

DKTools сейчас занимает больше 20к строк, но я писал все в одном файле (я сумасшедишй, хотя никогда не ощущал как-либо проблем). Сейчас я собираюсь выносить каждый класс в отдельный файл и при релизе "склеивать" все в один файл, как это делают разработчики мейкера: github.com/rpgtkoolmv/corescript
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, Amphilohiy, KageDesu, Mur, NeKotZima

JS. Где пишите? 6 года 1 мес. назад #102256

  • ZX_Lost_Soul
  • ZX_Lost_Soul аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 546
  • Спасибо получено: 945
  • ОраторУчительПобедитель Сбитой кодировкиПроект месяца 1 местоПроект месяца 2 местоПобедитель конкурсаДаритель СтимкеяВетеранРазработчикПроект месяца 3 место
KageDesu, в javascript не так давно (с поддержкой стандартов es6) появился import/export, т.е. можно разбивать код на любое количество файлов и потом их экспортировать. Этот метод удобен тем, что не нужно ничего конвертировать, а можно сразу же тестить в nwjs или современном браузере.

А чтобы потом собрать это безобразие в один файл (для удобства распостранения) и заодно конвертировать в es5 (чтобы все браузеры поддерживали) можно использовать гугловский Closure Compiler.

Плагины для MV я, правда, не пробовал писать таким образом, возможно для разработки понадобится сделать плагин-подгрузчик, т.к. подобные скрипты нужно подключать с типом "module"
<script type="module" src="./something.js"></script>
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, KageDesu

JS. Где пишите? 6 года 1 мес. назад #102257

  • KageDesu
  • KageDesu аватар
  • Вне сайта
  • Мастер
  • Сообщений: 101
  • Спасибо получено: 346
Amphilohiy, спасибо, гляну gulp. Так как я использую Coffee, думаю будет полезно.

ZX_Lost_Soul, спасибо за Closure Compiler, посмотрю.
2. Встроенная отладка с дебагером (могу подсказать, как настроить на мейкер)
DK, подскажи. Попробую WebStorm. У них есть пробная версия, 30 дней хватит чтобы посмотреть что к чему.
5. Я сейчас медленно работаю над документацией стандартных классов мейкера в формате dts (type script definition), который поддерживается этой и не только этой IDE, чтобы автозавершать код стандартных классов мейкера. То есть достаточно подключить эти файлы и при использовании стандартных классов будут всплывать подсказки аргументов функций, их типов и все такое. Могу поделиться, если надо.
Я как-то думал сам написать что-то подобное к стандартным классам, чтобы было автозавешнеие, но пока руки не дошли. Будет здорово, если поделишься.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

JS. Где пишите? 6 года 1 мес. назад #102258

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 574
  • Спасибо получено: 1448
  • УчительДаритель СтимкеяПрограммист JavaScript Организатор конкурсовОратор2 место
DK пишет:
Все плагины пишу в IDE Webstorm.

Мдя,… :ohmy:

По сравнению с ним, Brackets это какой-то блокнот что-ли,… :unsure:

KageDesu пишет:
У них есть пробная версия, 30 дней хватит чтобы посмотреть что к чему.

Ээээ,… серьёзно? :blink: шел 2018 год, а они ещё всё продают? :blink:
Последнее редактирование: 6 года 1 мес. назад от Mur.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

JS. Где пишите? 6 года 1 мес. назад #102260

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • Проект месяца 3 местоОраторУчительПроект месяца 2 местоПрограммист JavaScript ВетеранПроект месяца 1 место2 место РазработчикПрограммист Ruby
Да, думаю вполне хватит, чтобы ознакомиться.
Там также есть поддержка расширений, линтеров, сборщиков вроде webpack и все такое. Ну и еще есть возможность "делить" рабочую область на несколько частей. Например слева один файл, справа другой, снизу третий и т.д.
P.S. Если что есть и пиратская версия на просторах интернета и даже можно обновляться до последней версии (сейчас это 2017.3.4
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

JS. Где пишите? 6 года 1 мес. назад #102262

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 911
  • Спасибо получено: 565
  • ОраторВетеранПрограммист RubyПрограммист JavaScript Даритель Стимкея
Когда еще писал плагины для MV и в редких случайных необходимостях лезть в JS, использую Visual Studio Code.
Достоинства:
- Панель с деревом директорий слева (чего не хватало в Sublim'е)
- Крайне низкая задержка между нажатием клавиши и появлением символа (не то что, в этом вашем Web Storm, от которого после VSC кажется будто пишешь на оооочень слабом и лагающем компе)
- Панель с терминалом, позволяющая не уходя с окна редактора делать все и вроде можно создавать для нее макросы
- Возможность подключить дебаггер
- Куча плагинов и сниппеты
- Бесплатно :)

По большей части, привлекает благодаря крайне низкой задержке ввода. Не прерывает мысль ожиданием появления очередного фрагмента ввода.
Подобно тому, как ехать по идеально гладкой дороге или дороге с кучей ям и кочек, постоянно останавливаясь.

Насчет кучи дополнительных функций WebStorm, 90% из них совсем бесполезные или незначительные.
Еще 9% создающие некоторое удобство, но также незначительные и теряющие смысл из-за низкой скорости ввода и не стоят того, чтоб за них платить каждый год.

Ну и gulp используй или webpacker чтоб склеивать файлы по модулям.
Хотя с gulp вроде можно сделать любой скрипт для терминала.
Последнее редактирование: 6 года 1 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, DK, KageDesu

JS. Где пишите? 6 года 1 мес. назад #102263

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • Проект месяца 3 местоОраторУчительПроект месяца 2 местоПрограммист JavaScript ВетеранПроект месяца 1 место2 место РазработчикПрограммист Ruby
Частично соглашусь.
На слабом компе Webstorm противопоказан категорически.
У меня мощнный комп и никакой задержки ввода нет.
в Visual Code очень слабое автозавершение (на уровне notepad++) и сниппеты на порядок хуже, чем в WebStorm.
На счет бесполезности функций:
Кому-то они бесполезны, а кому-то будут очень даже кстати. Все относительно.
Панель с древом также имеется + возможность "отключить" файлы и директории.
Терминал тоже есть, дебагер есть (даже выводит значения переменных на текущей строке или можно посмотреть, наведя мышку)
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

JS. Где пишите? 6 года 1 мес. назад #102266

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 574
  • Спасибо получено: 1448
  • УчительДаритель СтимкеяПрограммист JavaScript Организатор конкурсовОратор2 место
Lekste пишет:
- Панель с деревом директорий слева (чего не хватало в Sublim'е)

Эээ,… это как? :ohmy:


st3.png



View → Side Bar → Show Side Bar
File → Open Folder

И сбоку дерево проекта :unsure:
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DK, Doctor_Bug, NeKotZima

JS. Где пишите? 6 года 1 мес. назад #102272

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2729
  • УчительОрганизатор конкурсовОратор1 место в Готв2 место 3 место ГотвПобедитель конкурсаКомпозитор
Мой набор, который, как мне кажется, будет полезен для новичков как я:

- редактор Brackets. На моем старом компе пробовал вебШторм, но комп не потянул, потом долго сидел на саблайме. На новом компе к саблайму не устанавливались расширения, мучаться не стал, поставил брэкет, разницы особо между ними не вижу. Порой не хватает четырех экранов как в саблайме (можно только два), но не критично. Если сильно будет нужно наверняка есть расширение для этого.

- Brackets Snippets. Позволяет довольно удобно создавать сниппеты и затем использовать их для быстрого написания кода. Например, вместо того, что писать
$gameParty.leader().equips()[].id
я ввожу
Alt+s, eq, enter, 1

- browsersync. Позволяет мгновенно после сохранения видеть на экране игры все изменения, сделанные и в редакторе мукера и непосредственно в коде. Не надо постоянно тыкать кнопку F5. Всем советую. Запилил туториал тык
Последнее редактирование: 6 года 1 мес. назад от yuryol.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, KageDesu

JS. Где пишите? 6 года 1 мес. назад #102273

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • Проект месяца 3 местоОраторУчительПроект месяца 2 местоПрограммист JavaScript ВетеранПроект месяца 1 место2 место РазработчикПрограммист Ruby
*встает на защиту WebStorm :)*

Например, я захотел создать новый плагин и мне нужно реализовать новую сцену.

В редакторе я пишу nscene и нажимаю таб, после чего вставляется следующий кусок кода:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Переменные, которые обернуты в $$ теги являются "указателями". То есть, после вставки этого фрагмента кода курсор устанавливается на позицию переменной. В данном случае курсор будет установлен на $NAME$. Этой переменной я пометил название сцены. После того, как вы ввели название сцены, вы можете нажать на таб снова, чтобы переключиться на следующую переменную (в данном случае $BODY$). Если переменных нет, то курсор переходит на зарезервированное слово $END$. Если и его нет, то курсор просто переходит на конец текста.

Еще один пример:
Но сначала важное уточнение: для данного примера сначала нужно скопировать название требуемой функции.
Допустим, я хочу сделать "алиас" на стандартную функцию мейкера, то есть доопределить ее под свои нужды.
В редакторе я пишу слово alias и жму таб.
Получаю следующий кусок кода:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

$PLUGIN$ - Автоматически сгенерированное имя (на основе названия файла, настраивается)
$CLASS$ - Название класса
$FUNC$ - Название функции
$CLIP$ - Автоматически вставляет системный буфер (скопированное название функции)
$PARAMETERS - Параметры функции
$END$ - перемещаем курсор, чтобы писать свой функционал
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

JS. Где пишите? 6 года 1 мес. назад #102274

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2729
  • УчительОрганизатор конкурсовОратор1 место в Готв2 место 3 место ГотвПобедитель конкурсаКомпозитор
DK пишет:
*встает на защиту WebStorm :)*

Например, я захотел создать новый плагин и мне нужно реализовать новую сцену.

В редакторе я пишу nscene и нажимаю таб, после чего вставляется следующий кусок кода:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Переменные, которые обернуты в $$ теги являются "указателями". То есть, после вставки этого фрагмента кода курсор устанавливается на позицию переменной. В данном случае курсор будет установлен на $NAME$. Этой переменной я пометил название сцены. После того, как вы ввели название сцены, вы можете нажать на таб снова, чтобы переключиться на следующую переменную (в данном случае $BODY$). Если переменных нет, то курсор переходит на зарезервированное слово $END$. Если и его нет, то курсор просто переходит на конец текста.

Еще один пример:
Но сначала важное уточнение: для данного примера сначала нужно скопировать название требуемой функции.
Допустим, я хочу сделать "алиас" на стандартную функцию мейкера, то есть доопределить ее под свои нужды.
В редакторе я пишу слово alias и жму таб.
Получаю следующий кусок кода:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

$PLUGIN$ - Автоматически сгенерированное имя (на основе названия файла, настраивается)
$CLASS$ - Название класса
$FUNC$ - Название функции
$CLIP$ - Автоматически вставляет системный буфер (скопированное название функции)
$PARAMETERS - Параметры функции
$END$ - перемещаем курсор, чтобы писать свой функционал

То же самое можно сделать и в саблайме, и в брэкете установив расширения.
- для HTML и CSS - расширение Emmet,
- для js для первого пункта в брэкете например упоминаемый мной Brackets Snippets, в саблайме - стандартный редактор -
сниппетов.
- для второго пункта на брэкет еще не устанавливал, а в саблайме не помню название, но использовал
Последнее редактирование: 6 года 1 мес. назад от yuryol.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, DK, NeKotZima

JS. Где пишите? 6 года 1 мес. назад #102275

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • Проект месяца 3 местоОраторУчительПроект месяца 2 местоПрограммист JavaScript ВетеранПроект месяца 1 место2 место РазработчикПрограммист Ruby
Ну, собственно, теперь выбор у KageDesu есть. Ему решать, что ему больше подходит.
Я просто описываю, чем пользуюсь сам и привел примеры.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, yuryol

JS. Где пишите? 6 года 1 мес. назад #102278

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 911
  • Спасибо получено: 565
  • ОраторВетеранПрограммист RubyПрограммист JavaScript Даритель Стимкея
Хе, прикольно, Мур, не замечал. :)
Ну, я веб сторм запускал на довольно неслабом компе и все-равно эта тупая задержка при вводе и перед автодополнением.
Как по мне, с такой задержкой срабатывания автодополнения и т д, в нем толку особого нет, т.к. приходится останавливаться и забывать, что сделать хотел.

В VSC и ввод, и предложение вариантов происходит почти мгновенно и, использовав в файле слово раз, получаешь его в вариантах дополнения для того же файла в следующие разы.

Да и снипеты так же с маркерами и прочим.
Последнее редактирование: 6 года 1 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, DK

JS. Где пишите? 6 года 1 мес. назад #102281

  • KageDesu
  • KageDesu аватар
  • Вне сайта
  • Мастер
  • Сообщений: 101
  • Спасибо получено: 346
Всем спасибо кто ответил и кто ответит ещё. Узнал много нового и полезного.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, DK

JS. Где пишите? 6 года 1 мес. назад #102386

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 2 место Учитель3 место Готв
Странно, что никто не пишет в Notepad++, как я %)
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, AnnTenna

JS. Где пишите? 6 года 1 мес. назад #102387

  • AnnTenna
  • AnnTenna аватар
  • Вне сайта
  • Администратор
  • ловлю волны настроения
  • Сообщений: 4533
  • Спасибо получено: 4677
  • Проект месяца 3 местоОрганизатор конкурсов2 место Победитель конкурсаПроект года 2 местоПроект месяца 1 место3 местоПроект месяца 2 местоПобедитель Сбитой кодировкиКоммерсант
Кэт, я пишу! :laugh: Правда в основном совсем не код, а разные заметки, планы и замечания, использую как записную книжку его (ну вообще да порой и для редактирования кода тоже, но редко :blush: )

Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

JS. Где пишите? 6 года 1 мес. назад #102390

  • Демий
  • Демий аватар
  • Вне сайта
  • Модератор
  • Здесь могла быть ваша реклама
  • Сообщений: 1599
  • Спасибо получено: 1520
  • ВетеранРазработчикУчитель3 место1 место в ГотвТестерПисатель 2 место3 место Готв
Я в нотпаде пишу, но на рубях. :silly:
Администратор запретил публиковать записи гостям.

JS. Где пишите? 6 года 1 мес. назад #102394

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 911
  • Спасибо получено: 565
  • ОраторВетеранПрограммист RubyПрограммист JavaScript Даритель Стимкея
Зачем нужен notepad++, когда есть Sublime :)
Администратор запретил публиковать записи гостям.
  • Страница:
  • 1
  • 2
Модераторы: NeKotZima
Время создания страницы: 0.408 секунд