这实际上是两个问题:
有人知道一个emacs功能可以隐藏(并且可能表明它已经这样做了)在lisp代码中选择的表单吗?我编写了一些面向性能的常见lisp,并且关键函数确实包含许多混乱代码的(declare (type ...))
形式。
如果没有,是否有人建议在哪里激发/窃取可以让我自己写的东西?
干杯谢谢!
答案 0 :(得分:2)
编写一个函数,查找要隐藏的文本的开始和结束位置。然后使用(put-text-property START END 'invisible t)
使文本不可见。
对于快速而肮脏的示例,请使用(search-forward "(declare (type " nil t)
。 (match-beginning 0)
是该性别的起始位置,因此(goto-char (match-beginning 0))
,然后(forward-sexp 1)
到达其最终位置。然后使用上面的put-text-property
隐藏文本,从declare
sexp的开头直到结束。这样做是为了隐藏所有这些性别。
为了更加小心,你可以使用一个允许变量空格(包括换行符)的正则表达式等等。但是上面的内容应该让你开始。
(要使隐身文字再次显示,只需使用(put-text-property START END 'invisible nil)
。)