Emacs 尝试在语法表中为SPS定义注释
我正试图修改spss.el,以便为spss评论提供准确的字体。以下是SPSS语法如何突出显示和处理注释的摘要:Emacs 尝试在语法表中为SPS定义注释,emacs,spss,Emacs,Spss,我正试图修改spss.el,以便为spss评论提供准确的字体。以下是SPSS语法如何突出显示和处理注释的摘要: *=星号在行首开始逗号 \n\n=两行新的结束注释 \n=句点+换行符也结束注释 /*=斜杠和星形开始注释,并以一行新行结束 */仅当与注释在同一行时结束注释/* 到目前为止,我的语法表如下所示: (let ((spss-mode-syntax-table (make-syntax-table))) (modify-syntax-entry ?* "<" spss-mode-
*
=星号在行首开始逗号
\n\n
=两行新的结束注释
\n
=句点+换行符也结束注释
/*
=斜杠和星形开始注释,并以一行新行结束
*/
仅当与注释在同一行时结束注释/*
到目前为止,我的语法表如下所示:
(let ((spss-mode-syntax-table (make-syntax-table)))
(modify-syntax-entry ?* "<" spss-mode-syntax-table)
(modify-syntax-entry ?. ". 3" spss-mode-syntax-table)
(modify-syntax-entry ?\n "- 34" spss-mode-syntax-table)
(modify-syntax-entry ?' "\"" spss-mode-syntax-table)
(modify-syntax-entry ?\\ "@ " spss-mode-syntax-table)
spss-mode-syntax-table)
(let((spss模式语法表(生成语法表)))
(修改语法条目?*”对于/*…*/部件,您可以使用
(modify-syntax-entry ?/ ". 14" st)
(modify-syntax-entry ?* ". 23" st)
(modify-syntax-entry ?\n ">" st)
但是对于*..\n\n,您需要一个不同的注释样式,因为它与其他注释样式重复使用相同的字符*和\n,您不能使用简单的语法表设置向Emacs解释它。相反,您需要使用一个语法属性化函数
,它将放置一个“
行首a*
上的语法和>b的\n
上的\n
语法。例如
(set (make-local-variable 'syntax-propertize-function)
(syntax-propertize-rules
("^\\(\\*\\)" (1 "< b"))
("\n\\(\n\\)" (1 "> b"))
("\\(\\.\\)\n" (1 "> b"))))
(设置(使局部变量的语法属性化函数)
(语法属性化规则)
(“^\\(\\*\\)”(1“b”))
(“\\(\\.\\)\n”(1“>b”))
您好,我正在阅读和回复(另一个Stefan?)提到如果使用字体锁定可能不起作用。我尝试复制粘贴您的代码段,但没有效果,然后发现该模式使用字体锁定。感谢您的帮助!不,字体锁定与语法属性配合使用效果很好。但可能您的Emacs太老了,没有语法属性。另外,复制粘贴还不够,因为您使用的是different var名称和set
操作需要在正确的上下文中应用。