Delegate to rectangle version in delim-col when appropriate
* lisp/delim-col.el (delimit-columns-region): Delegate to `delimit-columns-rectangle' when called with a rectangular region (bug#36453).
This commit is contained in:
parent
fb48eb48f3
commit
8d8d1d8000
2 changed files with 50 additions and 45 deletions
3
etc/NEWS
3
etc/NEWS
|
@ -442,7 +442,8 @@ interface that's more like functions like 'search-forward'.
|
|||
|
||||
---
|
||||
** More commands support noncontiguous rectangular regions, namely
|
||||
'upcase-dwim', 'downcase-dwim', 'replace-string', 'replace-regexp'.
|
||||
'upcase-dwim', 'downcase-dwim', 'replace-string', 'replace-regexp',
|
||||
and 'delimit-columns-region'.
|
||||
|
||||
+++
|
||||
** When asked to visit a large file, Emacs now offers visiting it literally.
|
||||
|
|
|
@ -260,50 +260,54 @@ at the left corner."
|
|||
|
||||
START and END delimit the text region."
|
||||
(interactive "*r")
|
||||
(let ((delimit-columns-str-before
|
||||
(delimit-columns-str delimit-columns-str-before))
|
||||
(delimit-columns-str-separator
|
||||
(delimit-columns-str delimit-columns-str-separator))
|
||||
(delimit-columns-str-after
|
||||
(delimit-columns-str delimit-columns-str-after))
|
||||
(delimit-columns-before
|
||||
(delimit-columns-str delimit-columns-before))
|
||||
(delimit-columns-after
|
||||
(delimit-columns-str delimit-columns-after))
|
||||
(delimit-columns-start
|
||||
(if (natnump delimit-columns-start)
|
||||
delimit-columns-start
|
||||
0))
|
||||
(delimit-columns-end
|
||||
(if (integerp delimit-columns-end)
|
||||
delimit-columns-end
|
||||
1000000))
|
||||
(delimit-columns-limit (make-marker))
|
||||
(the-end (copy-marker end))
|
||||
delimit-columns-max)
|
||||
(when (<= delimit-columns-start delimit-columns-end)
|
||||
(save-excursion
|
||||
(goto-char start)
|
||||
(beginning-of-line)
|
||||
;; get maximum length for each column
|
||||
(and delimit-columns-format
|
||||
(save-excursion
|
||||
(while (< (point) the-end)
|
||||
(delimit-columns-rectangle-max
|
||||
(prog1
|
||||
(point)
|
||||
(end-of-line)))
|
||||
(forward-char 1))))
|
||||
;; prettify columns
|
||||
(while (< (point) the-end)
|
||||
(delimit-columns-rectangle-line
|
||||
(prog1
|
||||
(point)
|
||||
(end-of-line)))
|
||||
(forward-char 1))
|
||||
;; nullify markers
|
||||
(set-marker delimit-columns-limit nil)
|
||||
(set-marker the-end nil)))))
|
||||
(if rectangle-mark-mode
|
||||
;; Delegate to delimit-columns-rectangle when called with a
|
||||
;; rectangular region.
|
||||
(delimit-columns-rectangle start end)
|
||||
(let ((delimit-columns-str-before
|
||||
(delimit-columns-str delimit-columns-str-before))
|
||||
(delimit-columns-str-separator
|
||||
(delimit-columns-str delimit-columns-str-separator))
|
||||
(delimit-columns-str-after
|
||||
(delimit-columns-str delimit-columns-str-after))
|
||||
(delimit-columns-before
|
||||
(delimit-columns-str delimit-columns-before))
|
||||
(delimit-columns-after
|
||||
(delimit-columns-str delimit-columns-after))
|
||||
(delimit-columns-start
|
||||
(if (natnump delimit-columns-start)
|
||||
delimit-columns-start
|
||||
0))
|
||||
(delimit-columns-end
|
||||
(if (integerp delimit-columns-end)
|
||||
delimit-columns-end
|
||||
1000000))
|
||||
(delimit-columns-limit (make-marker))
|
||||
(the-end (copy-marker end))
|
||||
delimit-columns-max)
|
||||
(when (<= delimit-columns-start delimit-columns-end)
|
||||
(save-excursion
|
||||
(goto-char start)
|
||||
(beginning-of-line)
|
||||
;; get maximum length for each column
|
||||
(and delimit-columns-format
|
||||
(save-excursion
|
||||
(while (< (point) the-end)
|
||||
(delimit-columns-rectangle-max
|
||||
(prog1
|
||||
(point)
|
||||
(end-of-line)))
|
||||
(forward-char 1))))
|
||||
;; prettify columns
|
||||
(while (< (point) the-end)
|
||||
(delimit-columns-rectangle-line
|
||||
(prog1
|
||||
(point)
|
||||
(end-of-line)))
|
||||
(forward-char 1))
|
||||
;; nullify markers
|
||||
(set-marker delimit-columns-limit nil)
|
||||
(set-marker the-end nil))))))
|
||||
|
||||
|
||||
;;;###autoload
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue