diff options
| -rw-r--r-- | gnu/local.mk | 1 | ||||
| -rw-r--r-- | gnu/packages/emacs-xyz.scm | 3 | ||||
| -rw-r--r-- | gnu/packages/patches/emacs-yasnippet-fix-empty-snippet-next.patch | 59 | ||||
| -rw-r--r-- | gnu/packages/patches/emacs-yasnippet-fix-tests.patch | 14 | 
4 files changed, 76 insertions, 1 deletions
| diff --git a/gnu/local.mk b/gnu/local.mk index fb58b4eac8..bdaa9935b1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1107,6 +1107,7 @@ dist_patch_DATA =						\    %D%/packages/patches/emacs-telega-path-placeholder.patch	\    %D%/packages/patches/emacs-telega-test-env.patch		\    %D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch	\ +  %D%/packages/patches/emacs-yasnippet-fix-empty-snippet-next.patch	\    %D%/packages/patches/emacs-yasnippet-fix-tests.patch	\    %D%/packages/patches/emacs-kv-fix-tests.patch	\    %D%/packages/patches/emacs-pgtk-super-key-fix.patch	\ diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 89ce0fa900..811728d170 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17117,7 +17117,8 @@ the Emacs TempEl package.")         (sha256          (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))         (patches -        (search-patches "emacs-yasnippet-fix-tests.patch")))) +        (search-patches "emacs-yasnippet-fix-empty-snippet-next.patch" +                        "emacs-yasnippet-fix-tests.patch"))))      (build-system emacs-build-system)      (arguments       `(#:tests? #t diff --git a/gnu/packages/patches/emacs-yasnippet-fix-empty-snippet-next.patch b/gnu/packages/patches/emacs-yasnippet-fix-empty-snippet-next.patch new file mode 100644 index 0000000000..1faea2b456 --- /dev/null +++ b/gnu/packages/patches/emacs-yasnippet-fix-empty-snippet-next.patch @@ -0,0 +1,59 @@ +From 925292484162bc35c4258e72c36462bb13a5c69a Mon Sep 17 00:00:00 2001 +From: Liliana Marie Prikler <liliana.prikler@gmail.com> +Date: Sat, 19 Aug 2023 08:38:17 +0200 +Subject: [PATCH] Guard against empty snippet in yas-next-field. + +--- + yasnippet.el | 29 +++++++++++++++-------------- + 1 file changed, 15 insertions(+), 14 deletions(-) + +diff --git a/yasnippet.el b/yasnippet.el +index e0b5537..41d86dd 100644 +--- a/yasnippet.el ++++ b/yasnippet.el +@@ -136,6 +136,7 @@ + (declare-function cl-progv-after "cl-extra") ; Needed for 23.4. + (require 'easymenu) + (require 'help-mode) ++(require 'subr-x) +  + (defvar yas--editing-template) + (defvar yas--guessed-modes) +@@ -3386,20 +3387,20 @@ Otherwise delegate to `yas-next-field'." + If there's none, exit the snippet." +   (interactive) +   (unless arg (setq arg 1)) +-  (let* ((active-field (overlay-get yas--active-field-overlay 'yas--field)) +-         (snippet (car (yas-active-snippets (yas--field-start active-field) +-                                            (yas--field-end active-field)))) +-         (target-field (yas--find-next-field arg snippet active-field))) +-    (yas--letenv (yas--snippet-expand-env snippet) +-      ;; Apply transform to active field. +-      (when active-field +-        (let ((yas-moving-away-p t)) +-          (when (yas--field-update-display active-field) +-            (yas--update-mirrors snippet)))) +-      ;; Now actually move... +-      (if target-field +-          (yas--move-to-field snippet target-field) +-        (yas-exit-snippet snippet))))) ++  (and-let* ((active-field (overlay-get yas--active-field-overlay 'yas--field)) ++             (snippet (car (yas-active-snippets (yas--field-start active-field) ++                                                (yas--field-end active-field))))) ++    (let ((target-field (yas--find-next-field arg snippet active-field))) ++      (yas--letenv (yas--snippet-expand-env snippet) ++        ;; Apply transform to active field. ++        (when active-field ++          (let ((yas-moving-away-p t)) ++            (when (yas--field-update-display active-field) ++              (yas--update-mirrors snippet)))) ++        ;; Now actually move... ++        (if target-field ++            (yas--move-to-field snippet target-field) ++          (yas-exit-snippet snippet)))))) +  + (defun yas--place-overlays (snippet field) +   "Correctly place overlays for SNIPPET's FIELD." +--  +2.41.0 + diff --git a/gnu/packages/patches/emacs-yasnippet-fix-tests.patch b/gnu/packages/patches/emacs-yasnippet-fix-tests.patch index c70cc75d92..5995b0afa4 100644 --- a/gnu/packages/patches/emacs-yasnippet-fix-tests.patch +++ b/gnu/packages/patches/emacs-yasnippet-fix-tests.patch @@ -10,6 +10,11 @@ Content-Transfer-Encoding: 8bit  - A test that was temporarily broken passes again.  - The default for ‘org-adapt-indentation’ has changed.  - buffer-list may be called with arguments when native-comp is enabled. + +2023-08-19 Liliana Marie Prikler <liliana.prikler@gmail.com> + +	* delete-numberless-inner-snippet-issue-562: Correct value in +        looking-at.  ---   yasnippet-tests.el | 45 ++++++++++++++++++++++++++++-----------------   1 file changed, 28 insertions(+), 17 deletions(-) @@ -26,6 +31,15 @@ index f7ca2bb..7618ab7 100644   ;; Author: João Távora <joaot@siscog.pt>   ;; Keywords: emulations, convenience +@@ -289,7 +289,7 @@ attention to case differences." +     (should (looking-at "testblable")) +     (ert-simulate-command '(yas-next-field-or-maybe-expand)) +     (ert-simulate-command '(yas-skip-and-clear-field)) +-    (should (looking-at "ble")) ++    (should (looking-at "blable")) +     (should (null (yas-active-snippets))))) +  + (ert-deftest delete-nested-simple-field-issue-824 ()  @@ -556,16 +556,19 @@ XXXXX   ------------------------"))))       (yas-mock-insert "foo bar")       (ert-simulate-command '(yas-next-field)) | 
