unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: master 17a950c: Fix comment end delimiter fontification in OPascal mode
       [not found] ` <20210511135238.D80A321128@vcs0.savannah.gnu.org>
@ 2021-05-11 16:02   ` Stefan Monnier
  2021-05-11 16:32     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2021-05-11 16:02 UTC (permalink / raw)
  To: emacs-devel; +Cc: Lars Ingebrigtsen

> @@ -1766,6 +1766,7 @@ Coloring:
>    (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\\|\\*)\\|}\\)"))
>  

That can't be right, right?
OPascal supports many different kinds of comment syntaxes, but //...} is
not one of them, AFAIK.


        Stefan




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: master 17a950c: Fix comment end delimiter fontification in OPascal mode
  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
  0 siblings, 1 reply; 5+ messages in thread
From: Lars Ingebrigtsen @ 2021-05-11 16:32 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 277 bytes --]

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:


[-- Attachment #2: Type: image/png, Size: 7327 bytes --]

[-- Attachment #3: Type: text/plain, Size: 132 bytes --]


Which seems correct to me?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: master 17a950c: Fix comment end delimiter fontification in OPascal mode
  2021-05-11 16:32     ` Lars Ingebrigtsen
@ 2021-05-11 17:20       ` Stefan Monnier
  2021-05-12 13:54         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2021-05-11 17:20 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

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\\|\\*)\\|}\\)"))
 




^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: master 17a950c: Fix comment end delimiter fontification in OPascal mode
  2021-05-11 17:20       ` Stefan Monnier
@ 2021-05-12 13:54         ` Lars Ingebrigtsen
  2021-05-12 14:07           ` Stefan Monnier
  0 siblings, 1 reply; 5+ messages in thread
From: Lars Ingebrigtsen @ 2021-05-12 13:54 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> 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.

Great!

Should something similar be done to pascal.el, which has:

  (setq-local comment-start "{")
  (setq-local comment-start-skip "(\\*+ *\\|{ *")
  (setq-local comment-end "}")


-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: master 17a950c: Fix comment end delimiter fontification in OPascal mode
  2021-05-12 13:54         ` Lars Ingebrigtsen
@ 2021-05-12 14:07           ` Stefan Monnier
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Monnier @ 2021-05-12 14:07 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

Lars Ingebrigtsen [2021-05-12 15:54:21] wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> 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.
>
> Great!
>
> Should something similar be done to pascal.el, which has:
>
>   (setq-local comment-start "{")
>   (setq-local comment-start-skip "(\\*+ *\\|{ *")
>   (setq-local comment-end "}")

It should probably set `comment-end-skip`, yes.


        Stefan




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-05-12 14:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [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
2021-05-12 13:54         ` Lars Ingebrigtsen
2021-05-12 14:07           ` Stefan Monnier

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).