[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 16c2b38 18/51: Update `yas--take-care-of-redo' call in buf
From: |
Noam Postavsky |
Subject: |
[elpa] master 16c2b38 18/51: Update `yas--take-care-of-redo' call in buffer undo list |
Date: |
Sun, 13 May 2018 13:11:42 -0400 (EDT) |
branch: master
commit 16c2b38bce60d455fd93f6187ac020e6236e79e9
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>
Update `yas--take-care-of-redo' call in buffer undo list
On 2018-01-01 "Fix undo when first line indentation moves snippet
forward", `yas--take-care-of-redo' removed the BEG and END arguments,
but the call added to `buffer-undo-list' from `yas--snippet-revive',
was not updated accordingly.
* yasnippet.el (yas--snippet-revive): Remove `beg' and `end' from
`yas--take-care-of-redo' entry.
* yasnippet-tests.el (undo-redo): New test.
---
yasnippet-tests.el | 24 ++++++++++++++++++++++++
yasnippet.el | 2 +-
2 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/yasnippet-tests.el b/yasnippet-tests.el
index 1851986..1b62fa6 100644
--- a/yasnippet-tests.el
+++ b/yasnippet-tests.el
@@ -297,6 +297,30 @@ attention to case differences."
;; (should (string= (yas--buffer-contents)
;; "brother from another mother!"))))
+(ert-deftest undo-redo ()
+ "Check redoing of snippet undo."
+ (yas-with-snippet-dirs '((".emacs.d/snippets"
+ ("emacs-lisp-mode" ("x" . "${1:one},and done"))))
+ (with-temp-buffer
+ (emacs-lisp-mode)
+ (yas-reload-all)
+ (yas-minor-mode 1)
+ (yas-expand-snippet "x$0")
+ (let ((pre-expand-string (buffer-string)))
+ (setq buffer-undo-list nil)
+ (ert-simulate-command '(yas-expand))
+ (push nil buffer-undo-list)
+ (ert-simulate-command '(yas-next-field)) ; $1 -> exit snippet.
+ (should (string-match-p "\\`one,and done" (buffer-string)))
+ (push nil buffer-undo-list)
+ (ert-simulate-command '(undo)) ; Revive snippet.
+ (ert-simulate-command '(undo)) ; Undo expansion.
+ (should (string= (buffer-string) pre-expand-string))
+ (ert-simulate-command '(move-end-of-line 1))
+ (push nil buffer-undo-list)
+ (ert-simulate-command '(undo)) ; Redo (re-expand snippet).
+ (should (string-match-p "\\`one,and done" (buffer-string)))))))
+
(defun yas-test-expand-and-undo (mode snippet-entry initial-contents)
(yas-with-snippet-dirs
`((".emacs.d/snippets" (,(symbol-name mode) ,snippet-entry)))
diff --git a/yasnippet.el b/yasnippet.el
index a12baf9..ac8a01d 100644
--- a/yasnippet.el
+++ b/yasnippet.el
@@ -3869,7 +3869,7 @@ After revival, push the `yas--take-care-of-redo' in the
(when (yas--maybe-move-to-active-field snippet)
(setf (yas--snippet-control-overlay snippet) (yas--make-control-overlay
snippet beg end))
(overlay-put (yas--snippet-control-overlay snippet) 'yas--snippet snippet)
- (push `(apply yas--take-care-of-redo ,beg ,end ,snippet)
+ (push `(apply yas--take-care-of-redo ,snippet)
buffer-undo-list)))
(defun yas--snippet-create (content expand-env begin end)
- [elpa] master 203059a 17/51: * yasnippet.el (yas-key-syntaxes): Prefer the longest key., (continued)
- [elpa] master 203059a 17/51: * yasnippet.el (yas-key-syntaxes): Prefer the longest key., Noam Postavsky, 2018/05/13
- [elpa] master 7ea1305 09/51: Fix undo when first line indentation moves snippet forward, Noam Postavsky, 2018/05/13
- [elpa] master 6ffd1c7 22/51: ; .travis.yml: Test with 25.3 and 26 prelease., Noam Postavsky, 2018/05/13
- [elpa] master 2e69471 24/51: ; yasnippet-debug.el: macroexp-progn is not avaiable in Emacs 23., Noam Postavsky, 2018/05/13
- [elpa] master 3d7cafc 34/51: Make yas-snippet-mode-buffer-p robust against symlinks, Noam Postavsky, 2018/05/13
- [elpa] master ba73f20 27/51: Bind field skip and clear command conditionally, Noam Postavsky, 2018/05/13
- [elpa] master ce11fd6 13/51: * yasnippet.el (yas-reload-all): Mention if no snippets were found., Noam Postavsky, 2018/05/13
- [elpa] master e200a3b 08/51: Let snippet insertion trigger active field clearing., Noam Postavsky, 2018/05/13
- [elpa] master 04062d8 14/51: Don't set yas-selected-text to non-selected text, Noam Postavsky, 2018/05/13
- [elpa] master ad3a4d1 16/51: Don't use prog-mode in older Emacs, Noam Postavsky, 2018/05/13
- [elpa] master 16c2b38 18/51: Update `yas--take-care-of-redo' call in buffer undo list,
Noam Postavsky <=
- [elpa] master e35c031 25/51: * yasnippet.el (yas--guess-snippet-directories): Guess major mode first., Noam Postavsky, 2018/05/13
- [elpa] master 4467e93 40/51: Use fancy field adjustment for fixed indent too, Noam Postavsky, 2018/05/13
- [elpa] master 7c9edb5 29/51: ; doc/snippet-development.org: Further copy edit., Noam Postavsky, 2018/05/13
- [elpa] master cf23537 33/51: Fix expansion of commands snippet, Noam Postavsky, 2018/05/13
- [elpa] master fa6a71c 45/51: ; Wait until post-command, or bad auto-fill call to print stacktrace, Noam Postavsky, 2018/05/13
- [elpa] master c9277d3 32/51: Change yas-lookup-snippet to return a yas--template struct, Noam Postavsky, 2018/05/13
- [elpa] master 6066631 28/51: Fix typos in "Writing Templates" documentation, Noam Postavsky, 2018/05/13
- [elpa] master b0aa5c2 48/51: Tweak bug-reporting information slightly, Noam Postavsky, 2018/05/13
- [elpa] master fe9f8b6 21/51: ; yasnippet-debug.el: Update yas-debug-snippets arg for previous change., Noam Postavsky, 2018/05/13
- [elpa] master caf3dba 30/51: Don't use global variable for backquote expression locations, Noam Postavsky, 2018/05/13