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 25 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.