[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/iedit 78f606d4fc 045/301: Add iedit-number-occurrences fun
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/iedit 78f606d4fc 045/301: Add iedit-number-occurrences function |
Date: |
Mon, 10 Jan 2022 22:58:49 -0500 (EST) |
branch: elpa/iedit
commit 78f606d4fc5c0bae46501aa6d919c45ec2659685
Author: Victor Ren <victorhge@gmail.com>
Commit: Victor Ren <victorhge@gmail.com>
Add iedit-number-occurrences function
Fix point moving when iedit-clear-occurrences is called.
---
iedit.el | 61 +++++++++++++++++++++++++++++++++++++++++++++++--------------
1 file changed, 47 insertions(+), 14 deletions(-)
diff --git a/iedit.el b/iedit.el
index 2bcecd7715..6a07c8d8fd 100644
--- a/iedit.el
+++ b/iedit.el
@@ -2,7 +2,7 @@
;; Copyright (C) 2010, 2011, 2012 Victor Ren
-;; Time-stamp: <2012-02-02 22:17:45 Victor Ren>
+;; Time-stamp: <2012-02-02 23:15:14 Victor Ren>
;; Author: Victor Ren <victorhge@gmail.com>
;; Keywords: occurrence region replace simultaneous
;; Version: 0.92
@@ -267,6 +267,7 @@ This is like `describe-bindings', but displays only Iedit
keys."
(define-key map (kbd "M-C") 'iedit-clear-occurrences)
(define-key map (kbd "M-c") 'iedit-toggle-case-sensitive)
(define-key map (kbd "M-D") 'iedit-delete-occurrences)
+ (define-key map (kbd "M-N") 'iedit-number-occurrences)
(define-key map [C-return] 'iedit-toggle-buffering)
(define-key map (kbd "C-?") 'iedit-help-for-occurrences)
map)
@@ -682,12 +683,9 @@ the buffer."
(defun iedit-clear-occurrences()
"Replace occurrences with blank spaces."
(interactive "*")
- (iedit-apply-on-occurrences
- (lambda (beg end)
- (save-excursion
- (delete-region beg end)
- (goto-char beg)
- (insert-char 32 (- end beg))))))
+ (let* ((ov (car iedit-occurrences-overlays))
+ (count (- (overlay-end ov) (overlay-start ov))))
+ (iedit-replace-occurrences (make-string count 32))))
(defun iedit-delete-occurrences()
"Delete occurrences."
@@ -701,6 +699,13 @@ the buffer."
(iedit-stop-buffering)
(iedit-start-buffering)))
+(defun iedit-toggle-case-sensitive ()
+ "Toggle case-sensitive matching occurrences."
+ (interactive)
+ (iedit-done)
+ (setq iedit-case-sensitive (not iedit-case-sensitive))
+ (iedit-start iedit-last-occurrence-in-history))
+
(defun iedit-start-buffering ()
"Start buffering."
(setq iedit-buffering t)
@@ -744,6 +749,41 @@ the buffer."
(setq iedit-before-modification-undo-list nil)
(message "Iedit-mode buffering stopped."))
+(defvar iedit-number-line-counter
+ "Occurrence number for 'iedit-number-occurrences")
+
+(defun iedit--default-line-number-format (start-at)
+ (concat "%"
+ (int-to-string
+ (length (int-to-string
+ (1- (+ (length iedit-occurrences-overlays) start-at)))))
+ "d "))
+
+(defun iedit-number-occurrences (start-at &optional format)
+ "Insert numbers in front of the occurrences.
+
+START-AT, if non-nil, should be a number from which to begin
+counting. FORMAT, if non-nil, should be a format string to pass
+to `format' along with the line count. When called interactively
+with a prefix argument, prompt for START-AT and FORMAT."
+ (interactive
+ (if current-prefix-arg
+ (let* ((start-at (read-number "Number to count from: " 1)))
+ (list start-at
+ (read-string "Format string: "
+ (iedit--default-line-number-format
+ start-at))))
+ (list 1 nil)))
+ (unless format
+ (setq format (iedit--default-line-number-format start-at)))
+ (let ((iedit-number-line-counter start-at))
+ (iedit-apply-on-occurrences
+ (lambda (beg _end format-string)
+ (goto-char beg)
+ (insert (format format-string iedit-number-line-counter))
+ (setq iedit-number-line-counter
+ (1+ iedit-number-line-counter))) format)))
+
(defun iedit-find-current-occurrence-overlay ()
"Always return the current occurrence overlay at point or point - 1,
since this function is supposed to be called in overlay local-map."
@@ -761,13 +801,6 @@ since this function is supposed to be called in overlay
local-map."
(setq overlays (cdr overlays)))))
found))
-(defun iedit-toggle-case-sensitive ()
- "Toggle case-sensitive matching occurrences."
- (interactive)
- (iedit-done)
- (setq iedit-case-sensitive (not iedit-case-sensitive))
- (iedit-start iedit-last-occurrence-in-history))
-
(provide 'iedit)
;;; iedit.el ends here
- [nongnu] elpa/iedit 5fdf89edc9 238/301: Fix switch to mc mode problem, (continued)
- [nongnu] elpa/iedit 5fdf89edc9 238/301: Fix switch to mc mode problem, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit de54411d0e 220/301: Detect markup tag only if region inactive, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit ac51555341 282/301: New feature: ignore hidden occurrences, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 31986b640a 289/301: Take iedit-goto-first-occurrence back, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 5e7253c36e 274/301: Update documents and comments, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit d4a878d52e 280/301: Minor docstring typo fix: covert -> convert., ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 4765fa7a4d 271/301: Fix a conjoined overlay issue, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 68233e302d 300/301: Fix some byte-compiler warnings in Emacs 28, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 7d18e5d775 039/301: Add a help command C-? for occurrences, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit e08ad5923a 043/301: Make Iedit mode available for read only buffer, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 78f606d4fc 045/301: Add iedit-number-occurrences function,
ELPA Syncer <=
- [nongnu] elpa/iedit 0d4027fe10 046/301: Move save-excursion out of dolist, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 3bca7e2da5 048/301: Fix iedit toggle case-sensitive problem when getting occurrence from history, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 5ab980908c 050/301: Update documents, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 799a0d17d1 053/301: Bump to version 0.94, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 00abe88e13 061/301: Hide line-feed between occurrence, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit bd8c116489 062/301: Add new occurrence function iedit-restrict-defun, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 7ebea0f43b 070/301: Add tests for iedit-rectangle, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit e5f083f977 072/301: Add testcase for iedit-restrict-defun, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 62d2a5ac45 077/301: Fix iedit-kill-rectangle problem, ELPA Syncer, 2022/01/10
- [nongnu] elpa/iedit 8559638b9b 076/301: Fix C-u C-u iedit-last-inital-string-global problem, ELPA Syncer, 2022/01/10