Цитата:
не делать командную строку, делать командный мемо
Ну это я считаю как бы само собой разумеющееся (возможность многострочного ввода). ZUI пока считаю лишним, в будущем, возможно развитие в этом направлении, но сейчас мне хочется реализовать максимально простую оболочку (см. парой абзацев ниже).
Цитата:
tab - как по мне удобнее. Одна клавиша вместо двух. Вывод списка там тоже есть, если двойной tab(быстрое нажатие) нажать или напротив долго держать.
Так то одна клавиша удобней чем две, но можно ли в этом списке курсорными клавишами выбрать вариант?
Цитата:
Вы видите оболочку как консоль или как редактор или как что?
Ну мне самому до конца непонятно, иначе нечего было бы обсуждать. Скорее как что: как текстовый документ (массив строк) с полем ввода в конце. "Протокол отображения" без окон. Что значит "с goto или без" не понял. Если предположить работу через UART например, то в одну сторону пойдут пакеты с устройств ввода, а в обратную сторону - обновления буфера в виде (x, y, w, h, data).
Цитата:
Что касается оболочки(shell), то она может быть разной но надо учитывать особенности разной аппаратуры.
Какие например особенности аппаратуры надо учитывать?
Цитата:
То что интерпретирует команды.
Как я уже говорил, сама интерпретация команд будет реализована простейшим способом - отделение первого слова, поиск по нему адреса функции и вызов её с аргументом - введённой строкой команды. Такой подход позволит не городить огород из парсеров и в случае необходимости подставить любой другой интерпретирующий движок. Также подразумевается, что оболочка не будет выполнять функцию интерпретатора скриптов, а лишь будет служить рабочей средой для оператора (т.е. реализация всяких конструкций типа FOR, IF и т.п. отбрасывается). Поэтому внутреннее устройство меня не сильно волнует. Хотя идеи по поводу движка готов выслушать.
Ещё один мелкий вопрос:
Имеет ли смысл держаться за подход read-write + ццикл интерпретатора, или можно уйти на событийно-ориентированную модель (грубо говоря, 2 memo + обработка onKeyPress для командного memo). Что из этого предпочтительнее и почему?
Цитата:
Вам надо взять memo или браузер.
Проблема только в том, что ни того ни другого под рукой готового нет. Есть только голый текстовый буфер и очередь сигналов от устройств ввода. Или подразумевается "взять и скомпилировать"? Откуда взять и чего они потянут вместе с собой в качестве зависимостей?