首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在语法表中定义SPSS的注释

在语法表中定义SPSS的注释
EN

Stack Overflow用户
提问于 2014-03-20 17:55:34
回答 1查看 302关注 0票数 3

我试图修改spss.el,为SPSS的评论提供准确的字体。以下是SPSS语法如何突出和处理评论的总结:

* =一个星号在行的开头开始注释

\n\n =两个新行结束注释

.\n =句点+换行符也以注释结尾

/* =斜杠和星号启动注释,并以一个新行结束,只有在与/*同一行的情况下,*/才结束注释

到目前为止,我的语法表如下:

代码语言:javascript
复制
(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)

这在很大程度上是可行的,只是星号只有在行开头时才能充当注释分隔符。是否有方法表示星号仅在行开始处是注释分隔符?

感谢您的阅读!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-20 18:23:59

对于/* . */部分,您可以使用

代码语言:javascript
复制
(modify-syntax-entry ?/ ". 14" st)
(modify-syntax-entry ?* ". 23" st)
(modify-syntax-entry ?\n ">" st)

但是对于*. \n \n,您需要一个不同的注释样式,并且由于它重用了与其他注释样式相同的字符*和\n,所以不能使用简单的语法表设置来向Emacs解释它。相反,您需要使用一个syntax-propertize-function,它将在行的开头在*上放置一个"< b"语法,在\n of \n\n上放置一个"> b"语法。例如。

代码语言:javascript
复制
(set (make-local-variable 'syntax-propertize-function)
     (syntax-propertize-rules
       ("^\\(\\*\\)" (1 "< b"))
       ("\n\\(\n\\)" (1 "> b"))
       ("\\(\\.\\)\n" (1 "> b"))))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22541327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档