GNU bug report logs -
#78053
[PATCH] Support strings for electric-pairs.
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs <at> gnu.org> writes:
>> @@ -41,7 +41,9 @@ electric-pair-pairs
>> See also the variable `electric-pair-text-pairs'."
>> :version "24.1"
>> :group 'electricity
>> - :type '(repeat (cons character character)))
>> + :type '(repeat
>> + (choice (cons character character)
>> + (cons string string))))
>
> We want to do the same for `electric-pair-text-pairs`, no?
>
Yes, I forgot it.
>> @@ -258,7 +260,18 @@ electric-pair-syntax-info
>> (direct (if (eq (car direct) (cdr direct))
>> (list ?\" command-event t string-or-comment)
>> (list ?\( (cdr direct) t string-or-comment)))
>> - (reverse (list ?\) (car reverse) t string-or-comment)))))
>> + (reverse (list ?\) (car reverse) t string-or-comment))
>> + ;; The if-let here is for avoid unnecessary looking-back computation
>> + ((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.
>> (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?
I've added the list form, but it coexists with the cons cell to avoid
any future bug.
[0001-Support-strings-for-electric-pairs.-bug-78053.patch (text/x-patch, attachment)]
[Message part 3 (text/plain, inline)]
--
- E.G via GNU Emacs and Org.
This bug report was last modified 1 day ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.