I have emacs 23.3.1, running on windows.
php-mode 1.5 from http://php-mode.sourceforge.net/, Modified: 2008-11-04
I think this used to work, but now, when I try to comment out a block of code, using comment-region, which is an interactive compiled Lisp function in `newcomment.el', I get poor results.
Example:
before:
after:
You can see that each line in the commented block has the single-line comment start sequence //
, and the multi-line comment-end sequence */
.
This is not a huge problem, though it is ugly. The problem comes in when I try to uncomment the block. I get an error, "Can't find comment end". In other words, comment-region
is not reversible with C-u comment-region
.
I'll see if I can figure this out, but is there a setting I am missing in php-mode?
Anyone know?
MORE
I didn't put anything in my php-mode-hook function to change the comment-start
and comment-end
variables. When I debug comment-region
I can see they get set to the mismatched pair of //
and */
somehow. That explains the weird results of comment-region. I don't believe it's my code that does sets those variables like that.
I tried setting them explicitly in my hook to //
and (empty string). In that case, the comment-region
looks prettier but it still does not uncomment. I also tried the matched pair of /*
and */
, but that gave the same results. Uncomment does not succeed; the error is can't find comment end.
.
MORE2
I think my syntax table is correct. It shows this:
...which seems right to me.
This solved it for me:
I put that in my php-mode hook.
Not sure if this was necessary, but I als included statements to modify the syntax table. The entire hook looks like this:
The help statement for
comment-use-syntax
says that major modes should set it. In the php buffer I was editing, the variable was set to nil. I'm guessing it was set by php-mode; in any case it was not set by me. Setting this tot
and insuring that the syntax table had the appropriate values did the trick.I should say that I only use C-style comments in php; I don't use the
#
.