From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: emacs-devel@gnu.org
Subject: Re: master 17a950c: Fix comment end delimiter fontification in OPascal mode
Date: Tue, 11 May 2021 13:20:30 -0400 [thread overview]
Message-ID: <jwveeednqy4.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87r1idkz83.fsf@gnus.org> (Lars Ingebrigtsen's message of "Tue, 11 May 2021 18:32:44 +0200")
Lars Ingebrigtsen [2021-05-11 18:32:44] wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> OPascal supports many different kinds of comment syntaxes, but //...} is
>> not one of them, AFAIK.
> The plethora of comment/start/end variables may be confusing me, but
> here's what we get in opascal-mode after that change:
But `M-;` won't behave correctly.
Also your change didn't fix the case of
(* other comment *)
I suspect you need to set `font-lock-comment-end-skip`, tho I think the
real problem is that `font-lock.el` should use `comment-end-skip` rather
than `comment-end` as a fallback for `font-lock-comment-end-skip`.
So I pushed the patch below.
Stefan
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 82915d8c8b0..4dc42d9cf6a 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -1604,18 +1604,15 @@ font-lock-comment-start-skip
"If non-nil, Font Lock mode uses this instead of `comment-start-skip'.")
(defvar font-lock-comment-end-skip nil
- "If non-nil, Font Lock mode uses this instead of `comment-end'.")
+ "If non-nil, Font Lock mode uses this instead of `comment-end-skip'.")
(defun font-lock-fontify-syntactically-region (start end &optional loudly)
"Put proper face on each string and comment between START and END.
START should be at the beginning of a line."
(syntax-propertize end) ; Apply any needed syntax-table properties.
(with-syntax-table (or syntax-ppss-table (syntax-table))
- (let ((comment-end-regexp
- (or font-lock-comment-end-skip
- (regexp-quote
- (replace-regexp-in-string "^ *" "" comment-end))))
- ;; Find the `start' state.
+ (when (and comment-start (not comment-end-skip)) (comment-normalize-vars))
+ (let (;; Find the `start' state.
(state (if (or syntax-ppss-table
(not font-lock--syntax-table-affects-ppss))
(syntax-ppss start)
@@ -1648,7 +1645,9 @@ font-lock-fontify-syntactically-region
comment-start-skip))
(put-text-property beg (match-end 0) 'face
font-lock-comment-delimiter-face)))
- (if (looking-back comment-end-regexp (point-at-bol) t)
+ (if (looking-back (or font-lock-comment-end-skip
+ comment-end-skip)
+ (point-at-bol) t)
(put-text-property (match-beginning 0) (point) 'face
font-lock-comment-delimiter-face))))
(< (point) end))
diff --git a/lisp/progmodes/opascal.el b/lisp/progmodes/opascal.el
index 686e72ce6dd..662d2b4b74f 100644
--- a/lisp/progmodes/opascal.el
+++ b/lisp/progmodes/opascal.el
@@ -1766,7 +1766,6 @@ opascal-mode
(setq-local syntax-propertize-function opascal--syntax-propertize)
(setq-local comment-start "// ")
- (setq-local comment-end "}")
(setq-local comment-start-skip "\\(?://\\|(\\*\\|{\\)[ \t]*")
(setq-local comment-end-skip "[ \t]*\\(?:\n\\|\\*)\\|}\\)"))
next prev parent reply other threads:[~2021-05-11 17:20 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20210511135237.14950.6701@vcs0.savannah.gnu.org>
[not found] ` <20210511135238.D80A321128@vcs0.savannah.gnu.org>
2021-05-11 16:02 ` master 17a950c: Fix comment end delimiter fontification in OPascal mode Stefan Monnier
2021-05-11 16:32 ` Lars Ingebrigtsen
2021-05-11 17:20 ` Stefan Monnier [this message]
2021-05-12 13:54 ` Lars Ingebrigtsen
2021-05-12 14:07 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwveeednqy4.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=emacs-devel@gnu.org \
--cc=larsi@gnus.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).