branch: master commit 4467e934f3c16aa9e75dfa3b8b0207e8d498f5df Author: Noam Postavsky <npost...@users.sourceforge.net> Commit: Noam Postavsky <npost...@users.sourceforge.net>
Use fancy field adjustment for fixed indent too * yasnippet.el (yas--indent): When `yas-indent-line' is `fixed', instead of calling `indent-to-column' on each line directly, bind `indent-line-function' and use `yas--indent-region'. The latter uses some clever tricks to keep field regions from extending into the newly created whitespace. --- yasnippet.el | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/yasnippet.el b/yasnippet.el index 0d41241..1f92adc 100644 --- a/yasnippet.el +++ b/yasnippet.el @@ -4303,9 +4303,13 @@ The SNIPPET's markers are preserved." ;; Now do stuff for `fixed' and `auto'. (save-excursion (cond ((eq yas-indent-line 'fixed) - (while (and (zerop (forward-line)) - (zerop (current-column))) - (indent-to-column yas--indent-original-column))) + (forward-line 1) + (let ((indent-line-function + (lambda () + (indent-to-column yas--indent-original-column)))) + (yas--indent-region (line-beginning-position) + (point-max) + snippet))) ((eq yas-indent-line 'auto) (unless yas-also-auto-indent-first-line (forward-line 1))