问题标签 [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 回答
348 浏览

emacs - 如何仅在注释之外的 AUCTeX 缓冲区中字体锁定美元符号(数学模式分隔符)?

我编写了以下代码以不同颜色突出显示 AUCTeX 缓冲区中的美元符号,但后来我发现它甚至在注释中突出显示美元符号,这是无意的,但我开始喜欢它。但现在只是出于好奇,我想知道这是否可以避免。

0 投票
1 回答
334 浏览

haskell - Haskell 风格注释的 ELisp 语法表注释

我正在尝试使用 ELisp Syntax-Table-Comments 设置 Haskell 样式的注释,但我不太明白。

在 Haskell 中,有 2 种基本类型的注释

--表示以\n

{-表示以 结尾的多行注释-}需要注意的是,这些可以嵌套

多行注释可以这样完成:

单行注释可以这样完成:

根据文档,我可以使用b. 但是,b适用于序列的第二个字符,在这两种情况下都是-. 因此,当我尝试使用替代方法将这些组合起来时,就不可能进行多行和单行注释。

我已经看到这样做了,所以我知道这是可能的。但是,我不知道该怎么做。任何帮助表示赞赏。

0 投票
2 回答
1228 浏览

regex - 如何测试 Emacs Lisp 代码的“font-lock-keywords”值

我提出这个问题是因为我认为这个问题和可能的答案都可能有助于 Emacs 用户编写 Lisp 代码来定义font-lock-keywords. 我提供了一个我认为有帮助的答案。我也对其他答案感兴趣。

该变量的值是一个表达式列表,每个表达式都可以指定一个或多个要匹配的模式或执行匹配的函数,以及一个或多个用于突出显示匹配文本的面孔。价值的可能性font-lock-keywords是无数和复杂的。(描述这个的文档是 Elisp 手册 node Search-based Fontification。)

在大多数情况下,列表包含多个元素,这意味着多个正则表达式模式。这些可以以不同的方式进行交互。有些可以阻止其他人生效,或者他们可以改变其他人的效果。例如,我的库Dired+font-lock-keywords在 Dired 模式下定义了 31 个条目(正则表达式),其中许多是交互的。

如何保持所有这些正常?在定义或修改此类列表时如何调试 ?您可以注释掉除一个列表项之外的所有项目,以便在单独时查看其效果。然后重复另一个。然后也许将几个加在一起,也许以不同的顺序。我想有各种可能性,但你是做什么的?

(好吧,我知道大多数 Elisp 编码人员不会编写超级复杂font-lock-keywords的定义。但即使对于简单的定义,这也会变得复杂。也许如果这个过程更容易,那么用户就不会不必要地将自己限制为一两个条目。)

0 投票
1 回答
120 浏览

emacs - bounds-of-thing-at-point 和 AUCTeX 字体锁定

我将 LaTeX 与 Emacs 一起使用,并希望能够将我写的内容传递给 shell 命令。(作为我使用的例子xargs echo。)

为此,我定义了一个交互式 elisp 函数:

这适用于大多数缓冲区,但不适用于使用 AUCTeX 字体锁定的 LaTeX 缓冲区。大多数单词都可以正常工作,但在单词边界处带有引号的单词却不行。

一个最小的例子:

首先,作为概念证明:如果点test在我的 LaTeX 缓冲区中并且我尝试我的命令 ( echo),我会test在 minibuffer 中得到结果。(正如预期的那样。)

现在的问题:如果 point 是 onTest而我使用我的命令 xargs 抱怨不匹配的双引号。

原因是 shell-command-on-region 不会传递Test给 shell 命令,而是Test"'. 我可以通过在我的 elisp 代码中使用来验证这一点xargs -0。然后我在 minibuffer 中得到结果:

问题来自 AUCTeXs 字体锁定。(我想使用它!)如果我设置font-latex-quotesnil,我的命令可以正常工作(它Test在迷你缓冲区中返回),但引用的内容当然不会被字体化......

有什么想法可以更改我的 elisp 代码以使其也与 AUCTeX 一起使用,或者自定义 AUCTeX 以使其字体化引用的内容但保留正确的单词边界?

0 投票
2 回答
1714 浏览

emacs - 如何设置emacs运算符颜色?

如何为操作员设置字体颜色?我正在用 C++ 编程,我希望像 '+'、'='、'!='、'<<' 之类的运算符按我的意愿着色。

我尝试将光标移动到运算符和“Mx customize-face”上,但默认情况下它会将我带到“所有面孔”。我应该编辑哪个?

0 投票
1 回答
61 浏览

emacs - 如何将参数的字体更改为 elisp / latex-mode 中的函数

我知道我可以在font-lock-modeusing中添加关键字font-lock-add-keywords

但是,我想将参数的字体颜色更改为乳胶函数。

在乳胶模式下,如果我写:

然后Somebody1999将在 中突出显示font-lock-constant-face

但是,如果我写:

然后citeasnoun正确着色为font-lock-keyword-face,但Somebody1999着色为“默认”。大概该模式识别出反斜杠使其成为函数,但它不识别citeasnoun为关键字。

我尝试添加citeasnoun到 的列表中font-lock-keyword-face,但这没有效果。

0 投票
1 回答
185 浏览

emacs - haskell-mode 中的 font-lock-mode 似乎破坏了 emacs 中单个空格的宽度

我发现font-lock-mode无论我使用什么等宽字体,单个空格的宽度都有问题。

以下是一些截图:

  • 使用DejaVu Sans Mono

    font-lock-mode上:

    djv1

    font-lock-mode离开:

    djv2

  • 使用Luculent

    font-lock-mode上:

    lu1

    font-lock-mode离开:

    lu2

我的 emacs 初始化文件中的相关(可能)行:

编辑:感谢@Boojum 的帮助,我做C-u C-x =了 3 种不同风格的角色。 这就是结果。我想问题是SPC没有“面子”属性。

另外,我也尝试切换到其他主要模式,发现这个问题只发生在haskell-mode.

0 投票
2 回答
298 浏览

emacs - 如何在 Emacs 中突出显示来自特定项目的文件的制表符

我有这段代码来突出显示制表符并希望使用项目特定宏禁用它们:

并且project-specifics是一个定义 add find-file-hookand dired-after-readin-hookfrom this question的宏

我想要做的是禁用项目/测试中文件的红色标签(我想要它们,因为在大多数项目中我只想要空格,并且想要查看标签),但我有一个问题,因为font-lock-mode-hook之前执行的代码project-specifics(查找- file-hook),并且 prevent-highlight-tabs 在 font-lock-mode-hook 中始终为零。为什么会这样,以及如何解决?

0 投票
2 回答
624 浏览

emacs - 为什么 font-lock-keyword-face 在 Emacs 中突出显示双引号内的文本?

我正在尝试在 Emacs 中设置一个主要模式,我想在其中突出显示某些关键字。使用此页面中的模板:http: //ergoemacs.org/emacs/elisp_syntax_coloring.html我试过:

如果我在一个简单的测试文件上使用这种模式,并且键入"hello"的文本hello用不同的颜色标记。也就是说,双引号内的任何文本都会突出显示。为什么会这样?

我认为这与变量有关font-lock-keyword-face。但是,如果我输入C-h vfont-lock-keyword-face显示:

更新

似乎它与font-lock-keyword-face无论如何都无关,因为定义testing-font-lock-keywords如下:

给出相同的行为。

0 投票
1 回答
203 浏览

vim - 是否可以将单词的显示更改为 Vim 中的符号?

我最近在 Jay Fields 的博客上看到一篇文章,其中 Jay 使用 emacs 的字体锁定模式将单词的显示更改为符号。

前 后

在 Vim 中有没有办法做到这一点?