[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 54fb4d6 61/78: avy.el (avy-line-insert-style): Customize a
From: |
Oleh Krehel |
Subject: |
[elpa] master 54fb4d6 61/78: avy.el (avy-line-insert-style): Customize avy-copy-line, avy-move-line |
Date: |
Sat, 23 Jan 2016 14:00:17 +0000 |
branch: master
commit 54fb4d65e1bd9575600c54bc0cdca307cf05ef1e
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>
avy.el (avy-line-insert-style): Customize avy-copy-line, avy-move-line
* avy.el (avy-copy-line):
(avy-move-line): Update.
Fixes #117
---
avy.el | 54 +++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 37 insertions(+), 17 deletions(-)
diff --git a/avy.el b/avy.el
index aa6d662..165087c 100644
--- a/avy.el
+++ b/avy.el
@@ -1080,23 +1080,35 @@ Otherwise, forward to `goto-line' with ARG."
(unless (eq r t)
(avy-action-goto r))))
+(defcustom avy-line-insert-style 'above
+ "How to insert the newly copied/cut line."
+ :type '(choice
+ (const :tag "Above" above)
+ (const :tag "Below" below)))
+
;;;###autoload
(defun avy-copy-line (arg)
"Copy a selected line above the current line.
ARG lines can be used."
(interactive "p")
(avy-with avy-copy-line
- (let ((start (avy--line)))
- (move-beginning-of-line nil)
- (save-excursion
- (insert
- (buffer-substring-no-properties
- start
- (save-excursion
- (goto-char start)
- (move-end-of-line arg)
- (point)))
- "\n")))))
+ (let* ((start (avy--line))
+ (str (buffer-substring-no-properties
+ start
+ (save-excursion
+ (goto-char start)
+ (move-end-of-line arg)
+ (point)))))
+ (cond ((eq avy-line-insert-style 'above)
+ (beginning-of-line)
+ (save-excursion
+ (insert str "\n")))
+ ((eq avy-line-insert-style 'below)
+ (end-of-line)
+ (insert "\n" str)
+ (beginning-of-line))
+ (t
+ (user-error "Unexpected `avy-line-insert-style'"))))))
;;;###autoload
(defun avy-move-line (arg)
@@ -1105,13 +1117,21 @@ ARG lines can be used."
(interactive "p")
(avy-with avy-move-line
(let ((start (avy--line)))
- (move-beginning-of-line nil)
(save-excursion
- (save-excursion
- (goto-char start)
- (kill-whole-line arg))
- (insert
- (current-kill 0))))))
+ (goto-char start)
+ (kill-whole-line arg))
+ (cond ((eq avy-line-insert-style 'above)
+ (beginning-of-line)
+ (save-excursion
+ (insert
+ (current-kill 0))))
+ ((eq avy-line-insert-style 'below)
+ (end-of-line)
+ (newline)
+ (save-excursion
+ (insert (substring (current-kill 0) 0 -1))))
+ (t
+ (user-error "Unexpected `avy-line-insert-style'"))))))
;;;###autoload
(defun avy-copy-region ()
- [elpa] master d4b693f 52/78: avy.el (avy--overlay): Take BEG END, instead of only BEG, (continued)
- [elpa] master d4b693f 52/78: avy.el (avy--overlay): Take BEG END, instead of only BEG, Oleh Krehel, 2016/01/23
- [elpa] master 567570a 54/78: Fix 'at-full moving text when visual-line-mode is on, Oleh Krehel, 2016/01/23
- [elpa] master 0756c0b 53/78: avy.el (avy--overlay-at-full): Use avy--overlay, Oleh Krehel, 2016/01/23
- [elpa] master 1b78fb0 57/78: Improve the faces for the last change, Oleh Krehel, 2016/01/23
- [elpa] master dddce37 55/78: Fix 'at-full moving text for chars near end of visual line, Oleh Krehel, 2016/01/23
- [elpa] master edf1259 58/78: avy.el (avy--read-candidates): Use avy-dowindows, Oleh Krehel, 2016/01/23
- [elpa] master 9ae4413 56/78: Fix overlays at end-of-line with visual-line-mode, Oleh Krehel, 2016/01/23
- [elpa] master f341c2f 59/78: avy.el (avy--find-visible-regions): Add bounds safety, Oleh Krehel, 2016/01/23
- [elpa] master a041429 62/78: avy.el (avy-copy-region): Obey avy-line-insert-style, Oleh Krehel, 2016/01/23
- [elpa] master 54074c7 65/78: avy.el (avy-all-windows-alt): New defcustom, Oleh Krehel, 2016/01/23
- [elpa] master 54fb4d6 61/78: avy.el (avy-line-insert-style): Customize avy-copy-line, avy-move-line,
Oleh Krehel <=
- [elpa] master 4a23a0d 60/78: Fix De Bruijn "No catch for tag" error, Oleh Krehel, 2016/01/23
- [elpa] master 4132dd6 63/78: avy.el (avy-goto-line-above): Work in a single window, Oleh Krehel, 2016/01/23
- [elpa] master a45159a 64/78: avy.el (avy-goto-line-above): Exclude the current line, Oleh Krehel, 2016/01/23
- [elpa] master fa6d1e1 66/78: avy.el (avy-copy-region): Fix for multi-buffer use, Oleh Krehel, 2016/01/23
- [elpa] master b1a1953 67/78: Customize extra chars for avy-goto-subword-1, Oleh Krehel, 2016/01/23
- [elpa] master bae6fb1 71/78: avy.el (avy-copy-region): Keep same selectors for the second pass, Oleh Krehel, 2016/01/23
- [elpa] master 72ecbfa 68/78: avy.el (avy-goto-line): fix for narrowed regions, Oleh Krehel, 2016/01/23
- [elpa] master 9d18bf9 70/78: avy.el (avy--overlay): Fix overlays at point-max, Oleh Krehel, 2016/01/23
- [elpa] master 47035cf 69/78: avy.el (avy--line): Don't modify avy-action, Oleh Krehel, 2016/01/23
- [elpa] master 808bb80 72/78: avy.el (avy--regex-candidates): Modify case-fold-search condition, Oleh Krehel, 2016/01/23