Обновить

Комментарии 12

XEH — редактор

Это как НЕХ, только наоборот?

Верно, из стэка данные выпрыгивают в обратном порядке. HЁХ редактор, тоже подходящая отсылочка.

Это как ХАМ, только наоборот)) Как 3-ри поросёнка: hex-hex, hack-hack и crack-crack. Третий, судя по акценту, похоже, оказался приёмный.

Извините, с языка сорвалось, больше не буду. Автору - на самом деле респект за продуманность системы. Идей в общем у всех - навалом. Но продумать и дожать до состояния, когда кто-то ещё сможет этими наработками пользоваться - где-то 1:10, если не хуже.

Офигенно! Захотелось что‑то подобное с интерактивной отладкой прикрутить в своём поделии (тоже эксперимент :)), но боюсь тут работы будет на полгода, и оно точно превратится в IDE.

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

Насколько я понял, весь эксперимент как раз и является сам по себе переосмыслением классического подхода не то что к отладке, а вообще к процессу разработки.

Имхо: все‑не все, но многие из классических функций сюда впихнуть можно без сваливания в «обычный IDE», просто нужно будет продолжать всё переосмысливать, и думать над каждой фичей отдельно и на свежую голову. Вполне вероятно, что некоторые функции просто отвалятся за ненадобностью, а другие сольются в одну.

Может быть здесь не будет лишним какой‑нибудь сопровождающий отладку AI‑ассистент. Он может быть даже невидимым, то есть это не тупо какой‑то очередной чат, а просто повышенная «умность» среды, когда она сама понимает, на что обратить внимание и какие значения куда вывести, какие действия ненавязчиво предложить в конкретно этой ситуации.

AI для отладки не пробовал применять, интересно что получиться. Заставлял его код писть, новые языки он не умеет учить, а общие указания или Forth, вполне хорошо выдает.

Как-то неочевидно происходит запуск. Я думал зелёное поле это типа индикатор FPS или что-то в этом роде, а оказалось это поле ввода. Примеры, которые его используют, не подставляю туда свои значения. И канвас по-умоланию маловат. Кажется для наглядности стоило бы автоматом процентов 200 ставить для них.

Попытки набирать текст в этом поле тригеррят какие-то глобальные хуки:

с - ставит фокус в поле редактора

o -триггерит открытие файла

m - вкл/выкл окна канваса

и так далее.

А почему не сделать как у других инструментов типа Strudel - закончил изменение, ctrl+enter автоматически триггерит Snapshot + Run и если что-то не скомпилировалось пишет куда-нибудь ошибку и возвращает последний снапшот.

В браузере нельзя использовать мета хоткеи ctrl/alt, поэтому режим сделан как в vim, сначала снимается фокус с окна (Esc), а за тем вводится команда. Проверьте, что у вас фокус на редактор кода установлен. В десктопной версии запускается по ctrl+enter.

Hotkeys
Open binary file...(Esc, O)
Program - Run(Esc, R) or (Cmd+Enter) or (Ctrl+Enter)
Program - Snapshot(Esc, S)
Program - Rollback(Esc, L)
Debugger - Next(Esc, B)
Debugger - Reverse Next(Esc, N)
Debugger - Enable Reverse Next(Esc, Y)
Hex - Scroll Up(Esc, Arrow Up)
Hex - Scroll Down(Esc, Arrow Down)
Hex - Go To...(Esc, G)
Focus on Code(Esc, E)
Canvas - Show(Esc, M)
Help - Show(Esc, H)
Mouse
Open binary file with Drag and Drop

Проблема 1. Коли у вас VIM mode то было бы неплохо отображать режим.

Проблема 2: Режимы не должны мешать вводу в поля. Попробуйте самостоятельно напечатать ручками хотя бы тот же думовский update_fire в ваш Interval. Не скопировать, а именно напечатать.

Проблема 3: не очень вимовские байндинги. Ну и стоит отметить что N и n обычно означают Shift+N и просто N.

Проблема 4. Ctrl + Enter работает не самым очевидным образом. Он взводит Freeze, о чём свидетельствует только активация кнопки Unfreeze и при этом становится доступно какой-то соседний буффер для ввода.

Проблема 1-3

Это не vim режим, это костыль xD. По Esc снимается фокус ввода и можно какой-то хоткей вызвать.
Ctrl+r,Сtrl+s,F1-F12 и многие другие браузер перехватывает.
Назначил запуск на Ctrl+Enter, вроде, не конфликтует. Остальные хоткеи отключил. Согласен, они криво работают, лучше их спрятать в web версии.

Проблема 4. Ctrl + Enter работает не самым очевидным образом. Он взводит Freeze, о чём свидетельствует только активация кнопки Unfreeze и при этом становится доступно какой-то соседний буффер для ввода.

Код который заморозился окрашивается в желтый цвет и наверх уезжает, его нельзя редактировать. Это как в REPL нажать Enter, буфер в историю перемещается. Поле ввода очищается и можно новый код писать.

В режиме TRIAL(чекбокс в меню), программа компилируется и запускается прямо во время набора кода. Ошибки отображаются в статусной строке, красным цветом. Код без ошибок печатает статус OK.
Если что-то не нравиться, достаточно отредактировать код или стереть. Программма откатиться к посленему удачному запуску Run.
Если результат подходит, то его надо зафиксировать кнопкой Run.

С выключеной опицией TRIAL, редактирование будет как в классическом REPL. Во время набора текста ничего не происходит. Результат или ошибку отображает только после запуска. Снимки прораммы создаются вручную, кнопками Snapshot/Rollback.

Мммм… так это наши ребята сделали?

Ага, может еще чего сделаю, коплю ману.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации