gpt4 book ai didi

emacs - 如何仅针对 Emacs 中的特定模式或缓冲区过滤编译输出?

转载 作者:行者123 更新时间:2023-12-04 21:27:42 24 4
gpt4 key购买 nike

我有一个 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 的值。我不知道它是如何正常工作的。)
  • 另一个想法是只将我的过滤器函数挂接到 HTML 文件的缓冲区,但由于类似的原因,它无法工作,因为编译过程的输出进入单独的缓冲区。
  • 最佳答案

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

    现在唯一的问题是 sgml-validate不允许我设置 mode关于 compilation-start 的争论,但这是另一个问题。

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

    关于emacs - 如何仅针对 Emacs 中的特定模式或缓冲区过滤编译输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/857098/

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