GNU bug report logs -
#78053
[PATCH] Support strings for electric-pairs.
Previous Next
Full log
Message #35 received at 78053 <at> debbugs.gnu.org (full text, mbox):
> Cc: 78053 <at> debbugs.gnu.org,
> João Távora <joaotavora <at> gmail.com>
> Date: Mon, 26 May 2025 12:03:00 -0400
> From: Stefan Monnier via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>
> >>> + ((if-let* ((str-pair
> >>> + (cl-loop for pairs in fallback
> >>> + do
> >>> + (if (and
> >>> + (stringp (car pairs))
> >>> + (looking-back
> >>> + (regexp-quote (car pairs))
> >>> + (- (point) (length (car pairs)))))
> >>> + (cl-return (cdr pairs))))))
> >>> + (list 'str str-pair nil nil))))))
> >>
> >> BTW, here you could use `compare-buffer-substrings`.
> >
> > Thanks, Can you explain how to use it in this case? AFAIK
> > `compare-buffer-substrings' needs 2 strings in the buffer for the
> > comparison.
>
> Duh, you're right, it can't be used here.
> We should probably extend `compare-strings` to accept buffer arguments
> and then obsolete `compare-buffer-substrings'.
>
> >>> (defun electric-pair--insert (char times)
> >>> (let ((last-command-event char)
> >>> @@ -591,6 +604,11 @@ electric-pair-post-self-insert-function
> >>> pos))
> >>> (forward-char num))
> >>> ;; Insert matching pair.
> >>> + ;; String pairs
> >>> + ((and (eq syntax 'str) (not overwrite-mode))
> >>> + (insert " ")
> >>> + (save-excursion (insert " " pair)))
> >>> + ;; Char pairs
> >>> ((and (memq syntax '(?\( ?\" ?\$))
> >>> (not overwrite-mode)
> >>> (or unconditional
> >>
> >> I can imagine some multi-char delimiters which don't call for spaces
> >> inside of them (e.g. LaTeX's ``...''), so maybe the entries in
> >> `electric-pair-pairs` should have some extra info about it.
> >> I suggest we replace the (STRING . STRING) format with
> >> (STRING STRING ...) so we can put extra info in the `...`.
> >
> > Are you sure it's good idea to replace the cons cell form with a list?
>
> We need to keep supporting the (CHAR . CHAR) form, of course, but yes,
> I think using (STRING STRING . PROPERTIES) is a better option than
> (STRING . STRING) and there is no backward compatibility need to
> support (STRING . STRING).
Is the last patch okay to install? If not, Elijah, would you please
submit an updated patch?
This bug report was last modified 25 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.