Twigのマイナーモードを作成しようとしています。構文はdjangoに非常に似ており、コメントスタイルの値を変更して{#と#}を使用したいと思います。
私が行った場合
(setq comment-start "{#")
(setq comment-end "#}")
正しく実行されますが、lispモードに変更すると、コメントの終わりは「」ではなく「#}」のままになります
コードはこちら
ありがとう
buffer-local
これを追加して作成する必要があります。
(set (make-local-variable 'comment-start) "{#")
(set (make-local-variable 'comment-end) "#}")
体にdefine-minor-mode
。
マイナーモードに基づいてカーソルを変更する方法について、回答に沿って何かを行うことができます。
(defvar twig-mode-previous-comments nil
"Storage for comment start/end that was before twig mode was enabled")
(define-minor-mode twig-mode "twig" :lighter ""
(unless twig-mode-previous-comments
(set (make-local-variable 'twig-mode-previous-comments) (cons comment-start comment-end)))
(if twig-mode
(progn
(set (make-local-variable 'comment-start) "{#")
(set (make-local-variable 'comment-end) "#}"))
(setq comment-start (car twig-mode-previous-comments))
(setq comment-end (cdr twig-mode-previous-comments))))