[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master e200a3b 08/51: Let snippet insertion trigger active field
From: |
Noam Postavsky |
Subject: |
[elpa] master e200a3b 08/51: Let snippet insertion trigger active field clearing. |
Date: |
Sun, 13 May 2018 13:11:40 -0400 (EDT) |
branch: master
commit e200a3b9b18a2d7bbd4773bd4ef001dc6f69f0e8
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>
Let snippet insertion trigger active field clearing.
* yasnippet.el (yas-expand-snippet): Since the actual insertion must
happen with modification hooks inhibited, we can't rely on that
mechanism to clear the field. Call yas--skip-and-clear-field-p on the
active field.
---
yasnippet.el | 42 ++++++++++++++++++++++++------------------
1 file changed, 24 insertions(+), 18 deletions(-)
diff --git a/yasnippet.el b/yasnippet.el
index 1afb0b3..f351de2 100644
--- a/yasnippet.el
+++ b/yasnippet.el
@@ -3760,30 +3760,36 @@ considered when expanding the snippet."
"[yas] `yas-expand-snippet' needs properly setup
`yas-minor-mode'")
(run-hooks 'yas-before-expand-snippet-hook)
- ;;
- (let* ((yas-selected-text (or yas-selected-text
- (and (region-active-p)
- (buffer-substring-no-properties
(region-beginning)
-
(region-end)))))
- (start (or start
- (and (region-active-p)
- (region-beginning))
- (point)))
- (end (or end
- (and (region-active-p)
- (region-end))
- (point)))
- (to-delete (and start
- end
+ (let* ((clear-field
+ (let ((field (and yas--active-field-overlay
+ (overlay-buffer yas--active-field-overlay)
+ (overlay-get yas--active-field-overlay
'yas--field))))
+ (and field (yas--skip-and-clear-field-p
+ field (point) (point) 0)
+ field)))
+ (start (cond (start)
+ ((region-active-p)
+ (region-beginning))
+ (clear-field
+ (yas--field-start clear-field))
+ (t (point))))
+ (end (cond (end)
+ ((region-active-p)
+ (region-end))
+ (clear-field
+ (yas--field-end clear-field))
+ (t (point))))
+ (to-delete (and (> end start)
(buffer-substring-no-properties start end)))
+ (yas-selected-text
+ (or yas-selected-text
+ (if (not clear-field) to-delete)))
(yas--first-indent-undo nil)
snippet)
(goto-char start)
(setq yas--indent-original-column (current-column))
;; Delete the region to delete, this *does* get undo-recorded.
- ;;
- (when (and to-delete
- (> end start))
+ (when to-delete
(delete-region start end))
(cond ((listp content)
- [elpa] master 35a4df7 03/51: Let whitespace-global-mode work in new snippet buffers, (continued)
- [elpa] master 35a4df7 03/51: Let whitespace-global-mode work in new snippet buffers, Noam Postavsky, 2018/05/13
- [elpa] master d806b04 15/51: * yasnippet.el (snippet-mode): Derive from prog-mode., Noam Postavsky, 2018/05/13
- [elpa] master 1292cd2 10/51: Refactor undo tests, Noam Postavsky, 2018/05/13
- [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 <=
- [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, 2018/05/13
- [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