问题标签 [font-lock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
154 浏览

regex - Emacs php-mode font-lock 属性不适用于某些字符

例如可变美元符号。

php-mode.el 第 1087 行:

如果我没记错的话,正则表达式应该匹配 $variable 包括美元符号。现在,我试图弄清楚为什么 font-lock 属性也没有应用于美元符号。在语法表中,$ 被视为一个单词,就像 Az 一样。

所以我想我想问的是:有没有人遇到过同样的问题并且他/她找到了解决方案?

0 投票
1 回答
450 浏览

php - Emacs 正则表达式和语法高亮

我想突出显示一些单词(例如“true”、“false”),但前提是它们位于标签<?=?>.

在下面的示例中,我只想突出显示第二个“true”关键字:

这种情况有什么特殊的字体锁定模式吗?

0 投票
1 回答
619 浏览

emacs - Emacs:font-lock-fontify-region 和多行

我正在为 php/html 文件编写一个次要模式。我使用一个函数(cf. font-lock-keywords)来字体化块<?php ?>

为了字体化多行块,我需要设置font-lock-multiline为 t。

一切都运行得很好。在这种情况下,它们只是一个问题:当我有一个多行块并删除结束标记 ( ?>) 时,该块是非字体化的。当我放回标签时,该块不再字体化。

我有三个问题:

1/ 这个问题有简单的解决方案吗

如果不是 2/font-lock-fontify-buffer每次我输入这两个字符时有什么方法可以触发:'?''>'

3/更好,有没有办法触发这种功能:当我输入时,?>我找到开始标签<?php并在这个块上强制 a font-lock-fontify-region

0 投票
2 回答
637 浏览

emacs - 在 Emacs 中的双引号之间更改纯文本的外观

我正在寻找一种方法来突出显示或使用纯文本中引用文本的不同面。似乎应该有一个复杂/增强的文本模式,但我找不到它。

如果没有简单的解决方案,您能告诉我应该从哪里开始编写函数吗?

非常感谢你!

从 19.xx 开始使用 Emacs 的菜鸟

0 投票
1 回答
886 浏览

emacs - 有没有办法防止字体锁定改变字体系列(并且只改变颜色)?

诚然,这是第一个世界问题,但我对显示器的外观有点挑剔,当某些模式设置新的字体大小、系列、粗体/斜体等时,我发现它真的很烦人。想要做的是将(set-frame-font "Menlo-10")我的 .emacs 放在顶部附近,然后强制 emacs 永远不要更改该默认字体的任何方面,除了颜色。

我可以通过执行以下操作来获得我想要的效果:

但这只有在我加载了一个创建了要更改的字体锁定面的新缓冲区之后才有效,无论如何这都是一个可怕的黑客攻击。我怀疑字体锁定并没有真正用于忽略模式请求的某些部分,但我想我会问。

此外,AUCTeX 是迄今为止最严重的违规者,因此如果在某处交替设置 AUCTeX 以防止它首先请求更改家庭、大小等,那至少会使问题不那么烦人。

我目前正在使用从 HEAD 中提取的最新 Emacs 24。

0 投票
1 回答
670 浏览

emacs - 使用 font-lock-add-keywords 定义新关键字会中断/覆盖变量名着色 (emacs)

我试图让 emacs 为 C 中的一些其他关键字着色。特别是,我添加了 RESTRICT。我做了:

但是,这(不出所料)只会导致 emacs 使用关键字面孔为“RESTRICT”实例着色。

“restrict”(小写)已经是 emacs 了解 C 关键字的一部分。所以,如果我声明:

“int”用 type-face 着色,“restrict”用关键字 face 着色,“foo”用 variable-name-face 着色。但是用我的新 RESTRICT 词,如果我声明:

"int" 像以前一样着色,而 RESTRICT 用关键字面着色。但是“bar”对它没有影响。如果没有我的规则,“RESTRICT”将被着色为变量名面,而“bar”将不会被修改,这是正确的。

无论如何,问题是:如何使用变量名称面在第二个代码块中制作 emacs 颜色“条”?我希望emacs实际上将“RESTRICT”视为语言中的关键字(以便变量名被着色),而不仅仅是以某种方式为“RESTRICT”的实例着色。

0 投票
1 回答
1570 浏览

emacs - 在 emacs 的字符串中突出显示“”

我有点像 emacs 菜鸟,但不太确定如何找到它。我使用日晒浅色主题,这是一个低对比度的主题,带有智能口音以保持可读性。他们在 vim 版本中所做的一件事是突出显示字符串分隔符(在某些语言中表示双引号和单引号),然后以不同的方式突出显示字符串的其余部分,以使它们更加突出。

主题的 emacs 端口没有这个,但是我看到字体锁定机制发生了一些非常疯狂的事情(比如这个http://www.emacswiki.org/emacs/HexColour),所以我认为这是可能的。

那么是否可以突出显示字符串分隔符?如果是这样,我应该在哪里查找有关如何操作的更多信息?

编辑:

试图让 Jon O. 的答案起作用。首先我试过

试图将它添加到每个模式(没有工作)

所以然后我尝试用

为了让事情正常工作,同样的事情(没有工作)

0 投票
1 回答
2426 浏览

emacs - 在所有编程模式下突出显示 TODO

我需要挂钩以突出显示 Ruby、Lisp 和 C 类语言中的 TODO 的根模式是什么。我尝试了以下方法,但它没有突出显示 Ruby 或 Lisp 中的 TODO:

0 投票
0 回答
251 浏览

c - 在 emacs c-mode 中配置 javadoc 字体

我无法让 emacs 将 C 文件中的块注释识别为 javadoc(用于 Doxygen 样式的注释):

  • emacs -q

  • M-x emacs-version是2011-12-21 的24.0.92.1(i686-pc-linux-gnu,GTK+ 版本 2.24.7)

  • 将以下内容添加到 c 模式缓冲区。

  • 在第一个块注释C-u, C-x,=中获取样式 ( font-lock-comment-face)。

  • 在第二块注释C-u, C-x,=中获取样式 ( font-lock-doc-face)。

所以问题是,如何让第一个块注释被识别为 javadoc,以便应用正确的面孔?

0 投票
3 回答
2569 浏览

emacs - emacs:有没有明确的多行字体锁定示例?

一些背景知识,我对 Emacs Lisp 很满意,并且已经写了很多行。但是我从来没有写过一个主要的模式,所以我对字体锁定机制的工作方式还很陌生。

对于我当前的项目,我想在html-mode. 目前,我使用 MMM 模式执行此操作,但它很笨重而且我不使用它的其他功能,所以我只想制作一个小模式,甚至只是一个我可以添加到的 hacksgml-mode-hook来做突出显示。

我找到了手册的这一部分,它非常缺乏一个例子,以及这个 emacswiki页面的损坏代码。

有人可以向我展示如何做到这一点的明确示例吗?

编辑:我应该澄清一下,我不想在 javascript/css 块中看到特定于模式的字体锁定。唯一的要求是我能够通过对它们应用不同的面来查看这些块。