问题标签 [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.
emacs - 添加新关键字后字体锁定无颜色
我正在尝试为基于 ctags 文件的 C/C++ 项目提供更好的突出显示。所以我创建了这个:
但是在我执行这段代码之后,我根本没有高亮显示。
有人知道上面代码中的错误在哪里吗?
emacs - Emacs 指定字体锁定规则
我正在将我正在学习的解析技术付诸实践。我正在尝试在 Emacs 中编写一种编程模式,因此我可以利用语法高亮等。不幸的是,字体锁定不起作用。在谷歌上搜索并按照教程发现那里没有产生任何结果。下面是我的代码。任何建议表示赞赏。
emacs - emacs派生模式中“特殊”注释的不同字体锁定方案
我通过从 prog-mode 派生来定义 Emacs 主要模式。字体锁定工作除了一件事:
我想强调一种特殊的注释类型,它包含特殊的链接器指令,使用与常规注释不同的字体。常规注释以“;”开头 而链接器指令的格式为“;<...directive...>”。当然,字符串中的文本不应被误认为是注释。
到目前为止,我所拥有的是:
问题在于,使用语法表条目,此机制将对所有以 ; 开头的内容进行分类。作为评论。因此,链接器指令正则表达式不再有效。
我怎样才能实现所需的行为?看来我需要一种允许检查后面的字符的模式。但是使用语法表进行评论检测看起来不错,因为它可以正确处理字符串。
更一般地说,我对解释 emacs/elisp 的“架构”的文档感兴趣(例如,模式和哪些操作序列适用于字体锁定。缓冲区交互也是如此)。我有很棒的 elisp 参考手册,但我错过了对这些主题的概念介绍。我已经阅读了 emacs elisp 介绍,但不喜欢它,因为我发现它太“教程式”,非常冗长和重复,并且缺少系统的覆盖。例如,没有关于反引号的句子。它似乎也适用于编程经验为零的人 - 但是会从 elisp 开始吗?
javascript - JavaScript 的 emacs 字体锁定模式:想像“this”一样突出显示“self”
因为我经常不得不避免this
在闭包中被覆盖,所以我喜欢做:var self = this;
在我的构造函数的顶部。我想随后self
准确this
强调当前突出显示的方式和时间。但是,在研究了此处的 emacs 文档、网站和示例并调整了示例之后,它无法正常工作。我正在评估这个表达式:
在我的.emacs
文件和 javascript 缓冲区中,以及切换font-lock-mode
以强制刷新。我已经尝试过使用令人困惑的"\\<self\\>"
语法的变体,但我显然在投掷飞镖,因为这也失败了。我看到了许多变体,font-lock-add-keywords
但只是 Emacs 高级用户而不是开发人员,这似乎是拜占庭式的。
作为上下文,这是作为本机 Mac OS X 10.11.5 应用程序运行的 GNU Emacs 24.5.1,而不是在终端中。
elisp - 如何为评论面添加额外的字体锁定
我想区分评论。string
在elisp 模式下,我想;;! string
突出显示。
但是,它并不有效。
emacs - font-lock 不适用于类型
我希望每个带_st
后缀的关键字都以不同的颜色突出显示。
我试过了prepend
,同样的结果。
emacs - 派生模式 sh-mode 类似宏变量
我正在为我在工作中经常使用的一些文件创建一个主要模式,并且在以不同颜色显示宏时遇到了一些问题。问题是宏出现在字符串中,即使我将 $ 字符设置为表达式字符,它们也会突出显示为字符串。即 "$(macro1)" 像字符串一样突出显示,而不是像宏
在这里,我尝试将 $ 字符设置为表达式的语法,并且还整理了注释语法:
在这里我设置了语法表和亮点:
变化:
emacs - emacs define-generic-mode 为什么不能使用 regexp-opt?
我正在尝试使用define-generic-mode
. 我找到
不管用。但是,如果我将regexp-opt
call 替换为其手动计算的结果,那么一切都按预期工作:
那么,为什么我不能只regexp-opt
在模式定义中加入 call 呢?
编辑
从 Lindidancer 的回答中对引用列表中的项目进行强制评估的提示:
没有帮助:模式激活没有错误,但也没有突出显示
list
关于使用函数形成列表的第二个提示:
激活模式出错:(invalid-function (regexp-opt (quote ("int" "string" "bool"))))
尝试评估时出现同样的错误:
在暂存缓冲区中。
编辑 1
也无济于事 - 没有错误,没有突出显示。
编辑 2
我所做的步骤是:
define-generic-mode
在*Scratch*
缓冲区中执行调用- 使用一些正在测试的关键字切换到缓冲区
M-x mytest-mode
emacs - 在 emacs 中,如何根据列中的值对 CSV 中的行进行着色?
我为 emacs 创建了一个主要模式,用于数据分析。这种模式对我来说很有效,但它很单调,而且我没有以我应该的方式利用颜色。正在分析的数据采用 CSV 格式,我想根据列中的值对其中的行进行着色。
假设我有以下 CSV 格式的文件:
此 CSV 中的行应根据第 4 列中的值用红色着色,并且红色的强度应随着相同的值增加。所以在这种情况下,最后一列应该是最强烈的红色,第一列应该是最不红色的。
我已经阅读了基于搜索的字体,对于如何编写正确设置 facespec 的 (matcher . facespec) 有点困惑。facespec 是一个表达式,计算结果为
但是如何使这取决于我的 CSV 第四列中的值?我猜第四列中的值是匹配的,但我如何将用于匹配的值的大小联系起来?我想我需要根据匹配的值动态生成一张脸,但不知道该怎么做。
有任何想法吗?一个简单的例子是最好的。
emacs - 覆盖 emacs org-mode faces
我正在尝试覆盖org-mode
和org-agenda-mode
缓冲区中的默认语法突出显示。
为了澄清我的意图:我目前这样做的原因是根据标签突出显示标题(或标题的一部分)。内置变量org-tag-faces
只允许自定义标签本身,而不是包含标签的标题。
参考以下相关问题:
在线程 2 中,接受的答案是为此目的使用 font-lock。
在线程 3 中,我试图实现与海报完全相反的效果。Jordon Biondo的最后一条评论说:
从关键字中取出 t , t 指定的是 font-lock 应该覆盖已经着色的东西。
因为我想覆盖已经着色的东西,所以我在 t 中添加了,但据我所知,org-mode
突出显示仍然覆盖了我的自定义面孔。在org-mode
缓冲区中,这表现为标题文本的主体被更改,但任何其他项目(例如待办事项状态、日期、标签等)都保留了现有的面孔。在org-agenda-mode
缓冲区中,它完全无法修改匹配行的任何方面。
通过一个简单的例子,这里有一些代码我试图用来将包含 :TT: 的任何行设置为org-mode
缓冲区中的红色: