【发布时间】:2013-06-29 16:55:47
【问题描述】:
我在做什么
我目前正在创建一个向 swipl-win 窗口添加制表符完成功能的 SWI-Prolog 模块。到目前为止,我实际上已经将它带到了一次读取单个字符的位置,而无需停止/返回任何内容,直到键入制表符为止。我还编写了一个谓词,通过在当前术语列表上使用子字符串匹配(通过current_functor/2、current_arithmetic_function/1、current_predicate/2 等获得[所使用的谓词最终将基于上下文])。
如果您想查看我的代码,请联系here...请记住,我还不是 Prolog 大师(欢迎提供友好提示)。
我在想什么
我早就放弃了使用 XPCE 在 swipl-win 窗口中进行弹出下拉完成的任何努力(我最终会尝试将其放入 Pce-Emacs [它不会像 Visual Studio 那样完美--图片更像Python的IDLE],但我不知道这是否真的实用,因为我现在开始更多地使用实际的Emacs),但是有没有办法修改输出颜色在 swipl-win 窗口中? 我知道语法高亮已经在其他 Prolog 系统的命令提示符窗口中实现,但是 我真的只想拥有它,以便当 tabber.pl 建议完成时,它还以浅灰色显示了建议术语的数量(可能还有部分类型化的术语的其余部分)。 我知道系统已经有颜色输出(比如启动时),但我不知道如何连接输出内容来自己控制它。(显然,我可能会定义print/1 但是……)
我知道我可以编写自己的 SWI-Prolog 控制台,就像一个人用 C# 完成的那样,但我真的很想要它,这样人们(包括我)就可以在他们的配置文件中的某个地方加载 tabber 模块并继续使用 swipl-win 窗口,而不是让它成为一个完全不同的可执行文件......我是否必须使用某种 C API?
注意: 实际的实现可能会受到我对this question 的回答的影响,因为我的决定将基于此项目中字符串和/或原子的使用。
我在问什么
有没有办法或什么东西(即使它是非常低级的)我可以实现在 swipl-win 窗口中为输出着色?
【问题讨论】:
标签: syntax-highlighting swi-prolog tab-completion