I’m writing an Emacs major mode for an APL dialect I use at work. I’ve gotten basic font locking to work, and after setting comment-start and comment-start-skip, comment/uncomment region and fill paragraph also work.
However, comment blocks often contain javadoc style comments and i would like fill-paragraph to avoid glueing together lines starting with such commands.
If I have this (\ instead of javadoc @):
# This is a comment that is long and should be wrapped. # \arg Description of argument # \ret Description of return value
M-q gives me:
# This is a comment that is long and # should be wrapped. \arg Description # of argument \ret Description of # return value
But I want:
# This is a comment that is long and # should be wrapped. # \arg Description of argument # \ret Description of return value
I’ve tried setting up paragraph-start and paragraph-separate to appropriate values, but fill-paragraph still doesn’t work inside a comment block. If I remove the comment markers, M-q works as I want to, so the regexp I use for paragraph-start seems to work.
Do I have to write a custom fill-paragraph for my major mode? cc-mode has one that handles cases like this, but it’s really complex, I’d like to avoid it if possible.
The problem was that the paragraph-start regexp has to match the entire line to work, including the actual comment character. The following elisp works for the example I gave:
Here a page that has an example regexp for php-mode that does this: http://barelyenough.org/blog/2006/10/nicer-phpdoc-comments/