[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/coterm 4a23ae2 23/80: Further refactor some more
From: |
ELPA Syncer |
Subject: |
[elpa] externals/coterm 4a23ae2 23/80: Further refactor some more |
Date: |
Wed, 13 Oct 2021 18:57:29 -0400 (EDT) |
branch: externals/coterm
commit 4a23ae24616df8d998f986bf9228140e933f0c34
Author: m <>
Commit: m <>
Further refactor some more
---
coterm.el | 113 ++++++++++++++++++++++++--------------------------------------
1 file changed, 43 insertions(+), 70 deletions(-)
diff --git a/coterm.el b/coterm.el
index 92694d2..263849c 100644
--- a/coterm.el
+++ b/coterm.el
@@ -73,45 +73,28 @@ Return non-nil if the position was actually reached."
(<= col (move-to-column col))))
(defun coterm--t-delete-region (row1 col1 &optional row2 col2)
- "Delete text betewwn two positions.
+ "Delete text between two positions.
Deletes resulting trailing whitespace as well. ROW1, COL1, ROW2
and COL2 specify the two positions. ROW2 and COL2 can be nil, in
-which case `point-max' is assumed"
- (save-excursion
- (coterm--t-goto row1 col1)
+which case delete to `point-max'.
+
+This function moves point to the beginning of the deleted
+region."
+ (coterm--t-goto row1 col1)
+ (delete-region (point)
+ (if row2
+ (progn (coterm--t-goto row2 col2) (point))
+ (point-max)))
+ (when (eolp)
+ (let ((opoint (point)))
+ (skip-chars-backward " ") (delete-region (point) opoint)))
+ (when (eobp)
(let ((opoint (point)))
- (delete-region opoint
- (if row2
- (progn (coterm--t-goto row2 col2) (point))
- (point-max)))
- (when (eolp)
- (skip-chars-backward " ")
- (delete-region opoint (setq opoint (point))))
- (when (eobp)
- (skip-chars-backward "\n")
- (delete-region (point) opoint))))
+ (skip-chars-backward "\n") (delete-region (point) opoint)))
(setq coterm--t-pmark-in-sync nil))
-(defun coterm--t-clear-region (proc-filt process row1 col1 row2 col2)
- (save-excursion
- (let ((p1 (progn (coterm--t-goto row1 col1) (point)))
- (p2 (progn (coterm--t-goto row2 col2) (point)))
- row col h)
- (if (> p2 p1)
- (setq row row1 col col1
- h (- row2 row1))
- (setq row row2 col col2
- h (- row1 row2)))
- (delete-region p1 p2)
- (coterm--t-open-space-at-point
- proc-filt process
- h (cond ((> row2 row1) col2)
- ((< row2 row1) col1)
- (t (abs (- col2 col1)))))
- (setq coterm--t-pmark-in-sync nil))))
-
(defun coterm--t-open-space-at-point (proc-filt process newlines spaces)
- "Insert NEWLINES newlines and SPECES spaces at point.
+ "Insert NEWLINES newlines and SPACES spaces at point.
Insert them using PROC-FILT and PROCESS. Afterwards, remove
characters that were moved after the column specified by
`coterm--t-width'."
@@ -128,17 +111,6 @@ characters that were moved after the column specified by
(delete-region (point) (progn (forward-line 1) (1- (point))))
(setq coterm--t-pmark-in-sync nil)))
-(defun coterm--t-open-space (proc-filt process row col height width)
- "Open spce at position ROW and COL, preserving point.
-Use PROC-FILT and PROCESS to insert spaces and newlines.
-Whitespace is inserted such that the character at position ROW
-and COL is moved by HEIGHT rows down and WIDTH cols to the
-right."
- (save-excursion
- (coterm--t-goto row col)
- (coterm--t-open-space-at-point proc-filt process height
- (+ width (if (= height 0) 0 col)))))
-
(defun coterm--t-normalize-home-offset ()
(save-excursion
(goto-char coterm--t-home-marker)
@@ -164,8 +136,8 @@ insertion of empty lines."
(coterm--t-scroll-by-deletion-p))
(coterm--t-delete-region coterm--t-scroll-beg 0
(1+ coterm--t-scroll-beg) 0)
- (coterm--t-open-space proc-filt process
- coterm--t-row 0 1 0))
+ (coterm--t-goto coterm--t-row 0)
+ (coterm--t-open-space-at-point proc-filt process 1 0))
((and (= coterm--t-row (1- coterm--t-height))
(coterm--t-scroll-by-deletion-p))
;; Behaviour of xterm
@@ -188,8 +160,8 @@ insertion of empty lines."
(coterm--t-scroll-by-deletion-p))
(coterm--t-delete-region (1- coterm--t-scroll-end) 0
coterm--t-scroll-end 0)
- (coterm--t-open-space proc-filt process
- coterm--t-row 0 1 0))
+ (coterm--t-goto coterm--t-row 0)
+ (coterm--t-open-space-at-point proc-filt process 1 0))
((and (= coterm--t-row 0)
(coterm--t-scroll-by-deletion-p))
;; Behaviour of xterm
@@ -444,18 +416,20 @@ initialize it sensibly."
(coterm--t-delete-region coterm--t-row coterm--t-col)
(dirty))
((and ?J (guard (eq 1 (car ctl-params))))
- (coterm--t-clear-region
- proc-filt process 0 0 coterm--t-row coterm--t-col))
- (?J
- ;; TODO
- (coterm--t-delete-region 0 0)
- (dirty))
- (?K ;; \E[K - clear to end of line (terminfo: el, el1)
- (coterm--t-clear-region
- proc-filt process
- coterm--t-row coterm--t-col
- coterm--t-row (if (eq 1 (car ctl-params)) 0
- coterm--t-width)))
+ (coterm--t-delete-region 0 0 coterm--t-row
+ coterm--t-col)
+ (coterm--t-open-space-at-point
+ proc-filt process coterm--t-row coterm--t-col))
+ (?J (coterm--t-delete-region 0 0))
+ ;; \E[K - clear to end of line (terminfo: el, el1)
+ ((and ?K (guard (eq 1 (car ctl-params))))
+ (coterm--t-delete-region coterm--t-row 0
+ coterm--t-row coterm--t-col)
+ (coterm--t-open-space-at-point proc-filt process
+ 0 coterm--t-col))
+ (?K (coterm--t-delete-region
+ coterm--t-row coterm--t-col
+ coterm--t-row coterm--t-width))
(?L ;; \E[L - insert lines (terminfo: il, il1)
(let*
((where (max coterm--t-row coterm--t-scroll-beg))
@@ -465,17 +439,17 @@ initialize it sensibly."
(- coterm--t-scroll-end lines) 0
coterm--t-scroll-end 0)
;; Insert at position
- (coterm--t-open-space
- proc-filt process
- where 0 lines 0)))
+ (coterm--t-goto where 0)
+ (coterm--t-open-space-at-point
+ proc-filt process lines 0)))
(?M ;; \E[M - delete lines (terminfo: dl, dl1)
(let ((lines
(min (car-or-1)
(max 0 (- coterm--t-scroll-end
coterm--t-row)))))
;; Insert at bottom
- (coterm--t-open-space proc-filt process
- coterm--t-scroll-end 0
- lines 0)
+ (coterm--t-goto coterm--t-scroll-end 0)
+ (coterm--t-open-space-at-point proc-filt process
+ lines 0)
;; Remove at position
(coterm--t-delete-region
coterm--t-row 0
@@ -487,10 +461,9 @@ initialize it sensibly."
(?@ ;; \E[@ - insert spaces (terminfo: ich)
(let ((width (min (car-or-1) (- coterm--t-width
coterm--t-col -1))))
- (coterm--t-open-space
- proc-filt process
- coterm--t-row coterm--t-col
- 0 width)
+ (coterm--t-goto coterm--t-row coterm--t-col)
+ (coterm--t-open-space-at-point proc-filt process
+ 0 width)
(cl-incf coterm--t-col width)
(setq coterm--t-col (min coterm--t-col
(1- coterm--t-width)))
- [elpa] externals/coterm a983b5e 02/80: New function for approximately moving pmark, (continued)
- [elpa] externals/coterm a983b5e 02/80: New function for approximately moving pmark, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 0647615 04/80: Plug marker leak, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 044b03e 06/80: Simplify, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm c48515c 11/80: Support \e[4h and \e[4l for insert mode, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm ab1dcd4 14/80: Fix typo, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm ba651c6 15/80: Fix negative and too high column positions, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 2403460 16/80: Make all coterm-t-* variables private, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 753fba8 21/80: Refactor line deletion and insertion, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 9d532fb 22/80: Refactor some more, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm e21bb54 18/80: Major refactor and started scroll region, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 4a23ae2 23/80: Further refactor some more,
ELPA Syncer <=
- [elpa] externals/coterm 08cf379 19/80: Minor fixes, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 9e7720b 37/80: Use save-excursion more sparingly, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 4943e16 41/80: Footer and header, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm d6912da 42/80: Support sequences \eE[E, F and G (pacman uses them), ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 71d2dc1 30/80: Implement user-facing variables and minor mode, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm dfebb62 46/80: Add comint output filter function buffer locally, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm bd103f9 56/80: [auto-char] Fix searching in less, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm d5042f6 65/80: Inhibit Emacs from automatically decoding \r\n into \n, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 90823af 77/80: Revert "Inhibit Emacs from automatically decoding \r\n into \n", ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 066cd45 70/80: Explain how coterm does/doesn't do line-wrapping, ELPA Syncer, 2021/10/13