File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -3220,4 +3220,18 @@ impl Two<'a> {
3220
3220
3221
3221
(ert-deftest rust-test-electric-pair-lt-expression-capitalized-keyword ()
3222
3222
(test-electric-pair-insert " fn foo() -> Box" 16 ?< ?> ))
3223
- )
3223
+
3224
+ (ert-deftest rust-test-electric-pair-<-> ()
3225
+ (let ((old-electric-pair-mode electric-pair-mode))
3226
+ (electric-pair-mode 1 )
3227
+ (unwind-protect
3228
+ (with-temp-buffer
3229
+ (electric-pair-mode 1 )
3230
+ (rust-mode )
3231
+ (mapc (lambda (c )
3232
+ (let ((last-command-event c)) (self-insert-command 1 )))
3233
+ " tmp<T>" )
3234
+ (should
3235
+ (equal " tmp<T>" (buffer-substring-no-properties (point-min )
3236
+ (point-max )))))
3237
+ (electric-pair-mode (or old-electric-pair-mode 1 ))))))
Original file line number Diff line number Diff line change 21
21
(require 'json )
22
22
23
23
(defvar electric-pair-inhibit-predicate )
24
+ (defvar electric-pair-skip-self )
24
25
(defvar electric-indent-chars )
25
26
26
27
(defvar rust-buffer-project )
@@ -1049,6 +1050,13 @@ This wraps the default defined by `electric-pair-inhibit-predicate'."
1049
1050
(rust-is-lt-char-operator)))
1050
1051
(funcall (default-value 'electric-pair-inhibit-predicate ) char)))
1051
1052
1053
+ (defun rust-electric-pair-skip-self-wrap (char )
1054
+ " Skip CHAR instead of inserting a second closing character.
1055
+ This wraps the default defined by `electric-pair-skip-self' ."
1056
+ (or
1057
+ (= ?> char)
1058
+ (funcall (default-value 'electric-pair-skip-self ) char)))
1059
+
1052
1060
(defun rust-ordinary-lt-gt-p ()
1053
1061
" Test whether the `<' or `>' at point is an ordinary operator of some kind.
1054
1062
@@ -1625,6 +1633,7 @@ Return the created process."
1625
1633
(setq-local end-of-defun-function 'rust-end-of-defun )
1626
1634
(setq-local parse-sexp-lookup-properties t )
1627
1635
(setq-local electric-pair-inhibit-predicate 'rust-electric-pair-inhibit-predicate-wrap )
1636
+ (setq-local electric-pair-skip-self 'rust-electric-pair-skip-self-wrap )
1628
1637
1629
1638
(add-hook 'before-save-hook 'rust-before-save-hook nil t )
1630
1639
(add-hook 'after-save-hook 'rust-after-save-hook nil t )
You can’t perform that action at this time.
0 commit comments