【已解决】Major mode 中,如何定义这样的注释?

在Autolisp中,注释有两种:

; 单行注释

;|…|; 多行注释

我实现的代码如下:

(defvar AutoLisp-mode-syntax-table
  (let ((table (make-syntax-table(make-syntax-table))))
    (modify-syntax-entry ?\; ". 124b" table)
    (modify-syntax-entry ?\| ". 23" table)
    (modify-syntax-entry ?\n "> b" table)
    table)
  "Syntax table used in `AutoLisp-mode'.")

但是单行注释必须用两个以上的;无法实现单;来注释。

感觉它的注释挺复杂的: https://knowledge.autodesk.com/support/autocad-for-mac/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/AutoCAD-MAC-Core/files/GUID-186F0A5D-6A2D-44FD-BDD6-6731F017584D-htm.html

看着多,其实就是单行和多行两种,跟c差不多。比较讨厌的是用一个’;'表示单行,跟el一样,可是el没有多行撞车的问题,它的多行用的 ‘;| … |;’

如果一个分号可以算注释,你的第一个 (modify-syntax-entry ?\; ". 124b" table) 中应该用 < 替代 .。我没测试,不过这样改应该一个分号应该可以注释了吧。

试了一下,可以了,万分感谢:thumbsup: