私の.emacs構成では、次のものがあります:
(defun fold-long-comment-lines ()
"This functions allows us to fold long comment lines
automatically in programming modes. Quite handy."
(auto-fill-mode 1)
(set (make-local-variable 'fill-no-break-predicate)
(lambda ()
(not (eq (get-text-property (point) 'face)
'font-lock-comment-face)))))
上記は「c-mode-common-hook」の一部として呼び出され、長いコメント行の折りたたみを自動的に正しく提供します。
ただし、構造体フィールドを記述するなどの単一行コメントを使用しているか、複雑なコードを記述している複数行コメントを使用しているかにかかわらず、上記のことは無差別に機能します。
基本的な質問は、複数行のコメントの場合にのみ、長いコメント行を自動的に折りたたむにはどうすればよいですか?
ありがとうアヌパム
edit-1: 複数行コメントの説明 「複数行コメント」と言うと、基本的には次のようなコメントを意味します。
/*
* this following piece of code does something totally funky with client
* state, but it is ok.
*/
code follows
それに応じて、1行のコメントは次のようになります
struct foo {
char buf_state : 3; // client protocol state
char buf_value : 5; // some value
}
上記の elisp コードは、これら両方のコメント行を忠実に折り畳んでいます。後者ではなく、前者のみを折りたいと思います。