【问题标题】:Colorized output in the swipl-win (SWI-Prolog) windowswipl-win (SWI-Prolog) 窗口中的彩色输出
【发布时间】:2013-06-29 16:55:47
【问题描述】:

我在做什么

我目前正在创建一个向 swipl-win 窗口添加制表符完成功能的 SWI-Prolog 模块。到目前为止,我实际上已经将它带到了一次读取单个字符的位置,而无需停止/返回任何内容,直到键入制表符为止。我还编写了一个谓词,通过在当前术语列表上使用子字符串匹配(通过current_functor/2current_arithmetic_function/1current_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


    【解决方案1】:

    AFAIU 你必须处理的问题是避免像普通缓冲区那样每秒钟调用一次 fontify 函数。 IE。仅在输出到达时调用一次,并将字体化限制为缓冲区中的前一个提示。

    【讨论】:

    • 感谢您的回答(到目前为止还没有其他人)....但我不是在谈论 Emacs :) 我知道我确实在一句话中提到了 PCE-Emacs,但即使是在问题中标题我希望我足够清楚:“彩色输出在 swipl-win 窗口中”....在 swipl-win 窗口中是否有我不知道的字体化功能? (当然没有缓冲区。)
    • @AsianSquirrel 啊,好的。顺便说一句,Emacs 与窗口和缓冲区存在一定的混淆。还有很多模式……前段时间在 Emacs 中玩过 swi-prolog,太棒了。
    • 是的,SWIPL 文档中推荐了许多 Emacs 的 Prolog 模式......不幸的是,其中许多现在似乎已经过时(在许多情况下,甚至不再可用)。那里可能有新的/更好的东西,但我不知道它们,我猜......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多