首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅针对Emacs中的特定模式或缓冲区筛选编译输出?

如何仅针对Emacs中的特定模式或缓冲区筛选编译输出?
EN

Stack Overflow用户
提问于 2009-05-13 10:00:30
回答 1查看 806关注 0票数 5

我有一个HTML页面,启用了html-mode。我调用函数sgml-validate来检查任何标记错误。它是基于compilation-mode的。我想从编译输出中删除一些警告,所以我编写了一个函数并将其连接到compilation-filter-hook (这个变量没有文档化,但是compilation-filter调用它)。一切都正常。我的问题是,如何确保我的过滤器函数只有在我在HTML页面上(通过sgml-validate)开始编译过程时才会被调用?

我看到了两种方法,但没有一种奏效:

  • 首先,我可以检查major-mode的值。但是它总是返回compilation-mode,因为这是在*compilation*缓冲区上启用的。(我在source code of grep+中找到了一个过滤器函数,他们确实检查了major-mode的值。我不知道它是如何工作的,correctly.)
  • The的另一个想法是只将我的过滤器函数挂接到HTML的缓冲区,但由于类似的原因,它无法工作,因为编译过程的输出到一个独立的缓冲区.
EN

回答 1

Stack Overflow用户

发布于 2009-05-13 11:10:41

同时,我发现compilation-start接受一个可选的参数mode,这将是编译缓冲区的主要模式。因此,我可以创建一个从compilation-mode派生的主要模式,并在那里定义我的过滤器函数,现在连接到适当的缓冲区。

唯一的问题是,现在sgml-validate不允许我在compilation-start上设置mode参数,但这是另一个问题。

(当然,我不认为这是最终的解决方案。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/857098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档