Я пытаюсь создать консоль, которая работала бы как оболочка для пользовательского языка программирования. Это было бы очень похоже на интерактивную консоль pydev.
В настоящее время мой RCP использует базовую TextConsole и подключен к оболочке через каналы, поэтому он просто отображает то, что отображает оболочка, и если пользователь вводит что-либо в консоль RCP, то же самое записывается в оболочке.
Я хочу иметь возможность сделать немного больше, например, переместить позицию курсора, добавить события для клавиш со стрелками вверх и вниз и т. д. Я считаю, что для этого мне нужно добавить виджет StyledText в консоль, что делается через Консольный просмотрщик.
Итак, мой вопрос заключается в том, есть ли способ либо переопределить ConsoleViewer TextConsole, либо, если я должен расширить TextConsole и создать свой собственный, то как мне связать его с конфигурацией запуска (той, которая соединяет оболочку по трубам)?
Кроме того, чтобы получить текущую консоль по умолчанию, я использую DebugUITools.getConsole(process)
.
Извините, если я не указал всю необходимую информацию; это немного сложно объяснить. Я рад добавить больше информации.
Идея...
Насколько я понимаю, я могу создать TextConsolePage
из TextConsole
, используя createPage(ConsoleView)
. Когда у меня есть страница, я могу установить средство просмотра с помощью setViewer(viewer)
.Здесь я подумал, что если я создам свой собственный просмотрщик (который будет иметь соответствующий виджет стиля), то это может быть лидом. Единственная проблема в том, что зрителю нужен Composite, и я не могу понять, откуда его взять.