gpt4 book ai didi

Erlang 和 Elixir 的多彩 REPL shell

转载 作者:行者123 更新时间:2023-12-01 10:38:07 24 4
gpt4 key购买 nike

怎么样Learn some ErlangIEx为 REPL shell 着色?是 kjell稳定的替代品?

最佳答案

在 LYSE 中完成此操作的方式是使用名为 highlight.js 的 javascript 插件,因此 LYSE 实际上并没有这样做,您的浏览器才是。大多数主流(ish)语言都有可用于 highlight.js 的插件/模式。如果您对网络感兴趣,这是一种方法(除非用户无法使用 JS 或已将其关闭)。

这实际上根本不是突出显示的 shell ,也不是浏览器之外的任何地方都有用。我一直在尝试一种更通用的方法,最初是通过在 HTML 和 XML 文档中插入静态格式(向它提供一个文档,并且它输出一个带有 Erlang 语法的文档,每当检测到/标记时以某种方式突出显示)。我还没有为此发布一个像样的项目(在我的优先级列表 atm 中非常低),但我可以为您指明一些可靠的灵感方向:wx:demo 的来源。

特别注意函数 demo:code_area/1 。在那里您将看到如何使用标记化例程为 wx:demo 应用程序中的源代码文本显示区域提供高亮提示。这可以为构建您自己的源代码突出显示/显示实用程序提供坚实的基础。 (我认为这不是不可能的,考虑到今天常用的每个终端都能正确响应 ANSI 颜色代码,向 shell 编写一个插件来直接突出显示终端输入——并不是说这个功能在片刻。)

编辑 (由神奇神奇狗弗雷德的评论提示)

关于 ANSI 颜色代码的主题,如果这就是您真正想要的,那么它们很容易实现为您在终端中返回的任何字符串值的前置。终端对它们进行转义,因此您不会看到字符,但会执行代码表示的任何操作。没有终止(它不像包含文本的标记标签)并且通常没有“返回到的默认颜色”的概念(尽管 telnet 和终端模式有 gajillion-jillion 扩展,可以启用各种废话,例如这个)。

基本着色的一个例子是 telcon:greet/0 的 v0.1 代码中的 telcon:sys_help/0 ErlMUD 函数(以及许多其他地方——游戏中的着色是一种东西)。您看到的是每种颜色都有一个预先构建的列表,但这可以用任何方式表示,只要能在字符串的前面获取这些值。 (我只是碰巧记得代码值序列,但不记得组成它们的字符;代码的下一个版本对此的表示方式有所不同。)这是 a list of ANSI color codesa discussion about colorizing the shell 的链接。玩转!它的 Nerd 乐趣,1980 年代的风格!

哦,我差点忘了......如果你真的想在没有像 ncurses 这样的傻 child 玩具帮助你的情况下进入兔子洞,看看 termcap

关于Erlang 和 Elixir 的多彩 REPL shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32400669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com