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