我有一个预处理器(xhp),允许我在php代码中编写不带引号的文本,例如:
<foo>
my enemies' base
</foo>
可能会出现在.php文件中,但只要emacs看到该单引号,它就会将该文件的其余部分视为字符串。
我最满意的最简单的解决方案就是假设字符串只是一行。
答案 0 :(得分:2)
我不知道你正在使用什么主模式,但一般来说,诀窍是用(modify-syntax-entry ?\' "." <syntaxtable>)
之类的东西来改变'字符的语法。当然,如果'角色有时可以划分字符串而有时不划分字符串,那么它会更棘手,你需要提出一个font-lock-syntactic-keywords
(或syntax-propertize-function
)规则来判断哪个用于任何给定点。
E.g。假设PHP从不将'视为字符串分隔符,以下内容可能会解决您的问题:
(add-hook 'php-mode-hook
(lambda () (modify-syntax-table ?\' ".")))