* 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 external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.