Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
коммандер vs консоль - вопросы эргономики https://zx.oberon.org/forum/viewtopic.php?f=2&t=409 |
Страница 1 из 1 |
Автор: | budden [ 30 сен 2018, 12:07 ] |
Заголовок сообщения: | коммандер vs консоль - вопросы эргономики |
Здесь будет обсуждаться идея консоли для BlackBoxComponentBuilder. Каков бы ни был консольный интерпретатор по семантике, у него есть и внешнее оформление. Культура даёт понятие о консоли (в видео ещё не упомянут psql из postgres, в нём тоже есть важные культурные элементы). Но у ББКБ - своя культура, у него есть коммандеры, которые похожи на "рабочие тетради" Mathematica с другой организацией функционала. Моя цель на данный момент - минимальными усилиями сделать всё это удобным (сейчас оно не удобно) и, по возможности, взять лучшее из обеих культур. Один очевидный вариант - такой (он обсуждался в теме про REPL). Цитата: некая горячая клавиша (допустим, Ctrl-m или Ctrl-j) вставляла бы значёк завершения коммандера и сразу выполняла последний коммандер (в интерпретаторе Евгения). А теперь хватит болтать - попробую реализовать. Единственное, что горячая клавиша после выполнения команды должна ещё вставлять новый коммандер в конец текста, так, чтобы вывод от команды Out шёл выше этого коммандера. Это, наверное, будет нелегко. |
Автор: | budden [ 30 сен 2018, 13:50 ] |
Заголовок сообщения: | Re: коммандер vs консоль - вопросы эргономики |
Нда, не особо пока продвинулся. Бесит всё же необходимость всё время выделять слово мышью. Нашёл HasSelection, GetSelection - оно во многих местах используется. Два вопроса к знатокам: - где находится обработчик двойного щелчка мышью, который выделяет слово? - где может находиться код, который при исчезновении выделения делает команду ГлавноеМеню/Инфо/Исходный текст невидимой? (Ответ: - это «сторож» - последний пункт в описании меню, в данном случае - TextCmds.SelectionGuard). |
Автор: | ivan_denisov [ 30 сен 2018, 16:22 ] |
Заголовок сообщения: | Re: коммандер vs консоль - вопросы эргономики |
Можно не делать выделение мышью, а считывать текст задом наперед от места где стоит каретка до первого отображения, которое попадется. И потом считать вперед до того места где была каретка и это отправить в интерпретатор. |
Автор: | budden [ 30 сен 2018, 16:39 ] |
Заголовок сообщения: | Re: коммандер vs консоль - вопросы эргономики |
А где можно позаимствовать код, который ищет отображение назад? Я пока нашёл StdCmds.SelectNextView, но оно не связано с текущей позицией в тексте. Двойной щелчок я искал, чтобы сделать возможность искать исходник без того, чтобы сначала выделять слово. Т.е. заменить GetSelection на какое-нибудь подлежащее написанию GetSelectionOrCurrentWord. |
Автор: | budden [ 30 сен 2018, 17:03 ] |
Заголовок сообщения: | Re: коммандер vs консоль - вопросы эргономики |
Пока с помощью «разврата мозга» нашёл такой фрагмент стека: Код: "OBERON"
Пока не очень понятно, где именно нужно ткнуть, чтобы отловить именно двойное нажатие мыши, но да ладно. GetThisChunk/GetWord содержат код для поиска текущего слова. |
Автор: | budden [ 30 сен 2018, 17:58 ] |
Заголовок сообщения: | Re: коммандер vs консоль - вопросы эргономики |
Пока ходил за водой, дошло, что сам коммандер-то ищет свой конец. Вижу такой стек: Код: "OBERON"
В HandleCtrlMsg есть modifiersSet - видимо, тут надо искать инфу о том, что это двойное или одинарное нажатие. Execute выкусывает команду (слишком долго сегодня над этим сижу, придётся прерваться, продолжение следует). |
Автор: | budden [ 01 окт 2018, 16:55 ] |
Заголовок сообщения: | Re: коммандер vs консоль - вопросы эргономики |
Есть проблемка. Смыслы текста в коммандере уже заняты. Если без кавычек - то это команда. Если поменять смысл, сломается совместимость. Вот и сижу, думаю, нормально ли будет так: - в двойных кавычках - всё по старому - без кавычек - всё по старому - > - точка входа в новый интерпретатор У Евгения Темиргалеева в начале каждой команды стоит ipuiK288.Exec, что несколько избыточно. |
Страница 1 из 1 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |