ansi-term 中的可点击叠加层

clickable overlay in ansi-term

我是 julia-repl package, which runs an inferior Julia REPL inside ansi-term 的作者。由于颜色和终端交互,一个完整的终端是必要的。我需要一些帮助来扩展它以创建错误位置 "clickable".

Julia 错误消息如下所示:

julia> Foo.foo()
ERROR: DomainError:
Stacktrace:
 [1] foo() at /tmp/Foo.jl:2

我想将 /tmp/Foo.jl:2 设置为 "clickable",这样用户单击鼠标即可转到 /tmp/Foo.jl 的第 2 行。

我开始阅读 the relevant section of the Emacs manual 但需要一些帮助来实现它。特别是,

  1. 使用正则表达式查找这些文本片段的最佳方法是什么?
  2. 每次缓冲区更改时如何运行?
  3. 我可以 运行 仅在新输出上这样做吗?
  4. 如何将文件的特定行指定为目标?

我很乐意阅读和研究现有示例,但不知道从哪里开始。一个最小的例子会有很大帮助。

理想情况下,您希望使用 compilation-shell-minor-mode 之类的东西。但我不确定 how/if 它是否可以在 ansi-term 缓冲区中工作。