[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/embark d7e5b347b1 2/2: Force multiline behavior with pr
From: |
ELPA Syncer |
Subject: |
[elpa] externals/embark d7e5b347b1 2/2: Force multiline behavior with prefix arg to embark-insert |
Date: |
Mon, 21 Feb 2022 00:57:30 -0500 (EST) |
branch: externals/embark
commit d7e5b347b1ceabb49a8a90a4c8ddadc39e953e4f
Author: Omar Antolín <omar.antolin@gmail.com>
Commit: Omar Antolín <omar.antolin@gmail.com>
Force multiline behavior with prefix arg to embark-insert
---
embark.el | 48 ++++++++++++++++++++++++++----------------------
1 file changed, 26 insertions(+), 22 deletions(-)
diff --git a/embark.el b/embark.el
index 52824eec50..b4b65f9aa9 100644
--- a/embark.el
+++ b/embark.el
@@ -3369,7 +3369,7 @@ Return the category metadatum as the type of the target."
(interactive)
(user-error "Not meant to be called directly"))
-(defun embark-insert (string)
+(defun embark-insert (string &optional multiline)
"Insert STRING at point.
Some whitespace is also inserted if necessary to avoid having the
inserted string blend into the existing buffer text. More
@@ -3381,27 +3381,31 @@ constituent character next to an existing word
constituent.
2. For a multiline inserted string, newlines may be added before
or after as needed to ensure the inserted string is on lines of
-its own."
- (interactive "sInsert: ")
- (let ((multiline (string-match-p "\n" string)))
- (cl-flet* ((maybe-space ()
- (and (looking-at "\\w") (looking-back "\\w" 1)
- (insert " ")))
- (maybe-newline ()
- (or (looking-back "^[ \t]*" 40) (looking-at "\n\n")
- (newline-and-indent)))
- (maybe-whitespace ()
- (if multiline (maybe-newline) (maybe-space)))
- (ins-string ()
- (save-excursion
- (insert string)
- (when (looking-back "\n" 1) (delete-char -1))
- (maybe-whitespace))
- (maybe-whitespace)))
- (if buffer-read-only
- (with-selected-window (other-window-for-scrolling)
- (ins-string))
- (ins-string)))))
+its own.
+
+If MULTILINE is non-nil (interactively, if called with a prefix
+argument), force the behavior for of the multiline case even if
+STRING contains no newlines."
+ (interactive "sInsert: \nP")
+ (setq multiline (or multiline (string-match-p "\n" string)))
+ (cl-flet* ((maybe-space ()
+ (and (looking-at "\\w") (looking-back "\\w" 1)
+ (insert " ")))
+ (maybe-newline ()
+ (or (looking-back "^[ \t]*" 40) (looking-at "\n\n")
+ (newline-and-indent)))
+ (maybe-whitespace ()
+ (if multiline (maybe-newline) (maybe-space)))
+ (ins-string ()
+ (save-excursion
+ (insert string)
+ (when (looking-back "\n" 1) (delete-char -1))
+ (maybe-whitespace))
+ (maybe-whitespace)))
+ (if buffer-read-only
+ (with-selected-window (other-window-for-scrolling)
+ (ins-string))
+ (ins-string))))
(define-obsolete-function-alias
'embark-save