我正在尝试创建一个控制台,它将作为自定义编程语言的 shell。它将非常类似于 pydev 交互式控制台。
目前,我的 RCP 使用基本的 TextConsole,并通过管道连接到 shell,因此它只显示 shell 显示的内容,如果用户在 RCP 控制台中输入任何内容,则会写入 shell 中。
我想能够做更多的事情,如移动插入符位置,添加向上和向下箭头键的事件等。我相信要做到这一点,我需要在控制台中添加 StyledText 小部件,这可以通过 ConsoleViewer 完成。
所以我的问题是,是否有任何方法可以覆盖 TextConsole 的 ConsoleViewer,或者如果我扩展 TextConsole 并创建自己的 ConsoleViewer,则如何将其与启动配置链接(连接 shell 通过管道)?
另外,要获取当前默认控制台,我使用 DebugUITools.getConsole(process)。
抱歉如果我没有提供所有必要的信息;解释有点困难。我很乐意添加更多信息。
一个想法...... 从我理解的来看,我可以使用 createPage(ConsoleView) 从 TextConsole 创建一个 TextConsolePage。一旦我拥有页面,我就可以通过 setViewer(viewer) 设置查看器。在这里,我认为如果我创建自己的查看器(将具有适当的样式小部件),那可能是一个线索。唯一的问题是查看器需要一个复合材料,我似乎无法弄清楚从哪里获取它。
目前,我的 RCP 使用基本的 TextConsole,并通过管道连接到 shell,因此它只显示 shell 显示的内容,如果用户在 RCP 控制台中输入任何内容,则会写入 shell 中。
我想能够做更多的事情,如移动插入符位置,添加向上和向下箭头键的事件等。我相信要做到这一点,我需要在控制台中添加 StyledText 小部件,这可以通过 ConsoleViewer 完成。
所以我的问题是,是否有任何方法可以覆盖 TextConsole 的 ConsoleViewer,或者如果我扩展 TextConsole 并创建自己的 ConsoleViewer,则如何将其与启动配置链接(连接 shell 通过管道)?
另外,要获取当前默认控制台,我使用 DebugUITools.getConsole(process)。
抱歉如果我没有提供所有必要的信息;解释有点困难。我很乐意添加更多信息。
一个想法...... 从我理解的来看,我可以使用 createPage(ConsoleView) 从 TextConsole 创建一个 TextConsolePage。一旦我拥有页面,我就可以通过 setViewer(viewer) 设置查看器。在这里,我认为如果我创建自己的查看器(将具有适当的样式小部件),那可能是一个线索。唯一的问题是查看器需要一个复合材料,我似乎无法弄清楚从哪里获取它。