【问题标题】:How to highlight some attribute value of some XML tags in Emacs Web mode?如何在 Emacs Web 模式下突出显示某些 XML 标签的某些属性值?
【发布时间】:2018-03-14 20:52:46
【问题描述】:

我正在使用 Emacs 中出色的 Web 模式来编辑 XML 文件。

我想突出显示特定标签中的一些属性值。这怎么可能?

例如,在以下文件中:

<panel type="console" ds="DS_CONSOLE_EQ" layout="mainLayout">
    <title>Filter</title>
    <field table="eq" id="BL_ID"/>
    <field table="eq" name="fl_id"/>
    <field table="eq" name="rm_id"/>
    <field table="eq" name="eq_id"/>
</panel>

我想强调每个人的价值

  • panel 标签中的ds 属性,以及
  • id 来自 field 标记的属性。

在这种情况下,ds_console_eqbl_id 将被突出显示(有 2 个不同的面孔)。我已将它们放在大写字母中以显示结果。

【问题讨论】:

    标签: xml emacs highlight major-mode


    【解决方案1】:

    您可以使用 font-lock-mode 来做到这一点,只需将 font-lock-type-face 和 font-lock-keyword-face 更改为您想要的任何面孔

    (add-hook 'web-mode-hook
     (lambda ()
      (font-lock-add-keywords nil
       '(("\\<ds_console_eq\\>" . font-lock-type-face)
         ("\\<bl_id\\>" . font-lock-keyword-face)))))
    

    【讨论】:

    • 感谢您的尝试,但此处突出显示的值只是示例。问题是突出属性dsid 的值,无论它们是什么。
    • @user3341592 只需在代码中将\\&lt;ds_console_eq\\&gt;\\&lt;bl_id\\&gt; 更改为您想要的任何内容
    • 不,字符串不是静态的:它是两个给定属性后面的双引号中的任何内容;所以,不能像在代码中那样修改。代码必须能够找到这些字符串。
    猜你喜欢
    • 1970-01-01
    • 2013-04-20
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多