用于Haskell样式注释的ELisp语法表注释

时间:2013-12-22 16:48:55

标签: haskell emacs elisp font-lock haskell-mode

我正在尝试使用ELisp Syntax-Table-Comments设置Haskell样式注释,但我无法理解它。

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

--表示以\n

结尾的单行评论

{-表示以-}结尾的多行注释应注意这些注释可以嵌套

多行评论可以这样做:

(defvar my-syntax-table
  (let ((st (make-syntax-table)))
    (modify-syntax-entry ?{ ". 1n" st)
    (modify-syntax-entry ?- ". 23n" st)
    (modify-syntax-entry ?} ". 4n" st)
   st))

单行评论可以这样做:

(defvar my-syntax-table
  (let ((st (make-syntax-table)))
    (modify-syntax-entry ?- ". 12" st)
    (modify-syntax-entry ?\n ">" st)
   st))

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

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

1 个答案:

答案 0 :(得分:1)

Haskell模式使用

       (modify-syntax-entry ?\{  "(}1nb" table)
       (modify-syntax-entry ?\}  "){4nb" table)
       (modify-syntax-entry ?-  "_ 123" table)))
       (modify-syntax-entry ?\n ">" table)