[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/latex-table-wizard 2544236eb3 57/70: New commands to ki
|
From: |
ELPA Syncer |
|
Subject: |
[elpa] externals/latex-table-wizard 2544236eb3 57/70: New commands to kill row and column content |
|
Date: |
Sat, 13 May 2023 08:59:14 -0400 (EDT) |
branch: externals/latex-table-wizard
commit 2544236eb328a745409054b790a5287330a2d0f7
Author: Enrico Flor <enrico@eflor.net>
Commit: Enrico Flor <enrico@eflor.net>
New commands to kill row and column content
---
NEWS | 13 ++++++
latex-table-wizard.el | 112 ++++++++++++++++++++++++++++++++++++++++----------
2 files changed, 104 insertions(+), 21 deletions(-)
diff --git a/NEWS b/NEWS
index c349f095d1..3fceb4f43e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,18 @@
-*- mode: org -*-
+* 1.3.0
+** New commands:
+*** latex-table-wizard-kill-row-content
+*** latex-table-wizard-kill-column-content
+*** latex-table-wizard-delete-row
+*** latex-table-wizard-delete-column
+** Commands changed:
+*** latex-table-wizard-kill-column
+aliased to new command "latex-table-wizard-kill-column-content"
+*** latex-table-wizard-kill-row
+aliased to new command "latex-table-wizard-kill-row-content"
+
+
* 1.2.0 <2022-12-20 Tue>
** New user option: latex-table-wizard-allow-detached-args
Same as texmathp-allow-detached-args and
diff --git a/latex-table-wizard.el b/latex-table-wizard.el
index 8459f497b2..6beca3a90e 100644
--- a/latex-table-wizard.el
+++ b/latex-table-wizard.el
@@ -5,7 +5,7 @@
;; Author: Enrico Flor <enrico@eflor.net>
;; Maintainer: Enrico Flor <enrico@eflor.net>
;; URL: https://github.com/enricoflor/latex-table-wizard
-;; Version: 1.2.1
+;; Version: 1.3.0
;; Keywords: convenience
;; Package-Requires: ((emacs "27.1") (auctex "12.1") (transient "0.3.7"))
@@ -632,7 +632,17 @@ current DIR."
(let* ((steps (or count 1))
(sorted (latex-table-wizard--sort table same-line dir))
(cell-num (1- (length sorted)))
- (now (seq-position sorted curr))
+ (now (let ((ind 0)
+ (col (plist-get curr :column))
+ (row (plist-get curr :row)))
+ (catch 'stop
+ (dolist (i sorted)
+ (when (and (= (plist-get i :column) col)
+ (= (plist-get i :row) row))
+ (throw 'stop t))
+ (setq ind (1+ ind))
+ ))
+ ind))
(land (if (memq dir '(next forward))
(latex-table-wizard--get-landing-index
now steps 0 cell-num)
@@ -1159,21 +1169,56 @@ TABLE is a list of cell plists. If it is nil, evaluate
(goto-char (plist-get x :end))
(insert " " col-del " ")))))
-(defun latex-table-wizard-kill-column ()
- "Kill content of column at point."
+(defun latex-table-wizard-delete-column ()
+ "Delete current column."
(interactive)
(latex-table-wizard--setup)
(save-excursion
(let* ((table (latex-table-wizard--parse-table))
(current-column (latex-table-wizard--get-thing 'column table))
- (kills '()))
+ (ind (plist-get (car current-column) :column))
+ (re (regexp-opt latex-table-wizard--current-col-delims))
+ (fun (if (= ind 0)
+ (lambda (c)
+ (goto-char (plist-get c :end))
+ (re-search-forward re nil t)
+ (delete-region (plist-get c :end) (point-marker)))
+ (lambda (c)
+ (goto-char (plist-get c :start))
+ (re-search-backward re nil t)
+ (delete-region (point-marker) (plist-get c :start)))))
+ kills poss)
(dolist (x current-column)
+ (funcall fun x) ; get rid of delimiter
(let* ((b (plist-get x :start))
- (next (latex-table-wizard--get-other-cell 'forward t 1 table x))
- (e (plist-get next :start)))
+ (e (plist-get x :end)))
(push (buffer-substring b e) kills)
- (delete-region b e)))
- (kill-new (string-join (nreverse kills) "\n")))))
+ (push (cons b e) poss)))
+ (dolist (p poss)
+ (delete-region (car p) (cdr p)))
+ (message "Column %s deleted" ind))))
+
+(defalias #'latex-table-wizard-kill-column
+ #'latex-table-wizard-kill-column-content)
+
+(defun latex-table-wizard-kill-column-content ()
+ "Kill content of column at point. Leave delimiters in place."
+ (interactive)
+ (latex-table-wizard--setup)
+ (save-excursion
+ (let* ((table (latex-table-wizard--parse-table))
+ (current-column (latex-table-wizard--get-thing 'column table))
+ kills poss)
+ (dolist (x current-column)
+ (let* ((b (plist-get x :start))
+ (e (plist-get x :end)))
+ (push (buffer-substring b e) kills)
+ (push (cons b e) poss)))
+ (dolist (p poss)
+ (delete-region (car p) (cdr p)))
+ (kill-new (string-join (nreverse kills) "\n"))
+ (message "Content of column %s added to kill ring"
+ (plist-get (car current-column) :column)))))
(defun latex-table-wizard-insert-row ()
"Insert empty row below the one at point."
@@ -1196,7 +1241,30 @@ TABLE is a list of cell plists. If it is nil, evaluate
(insert " " col-del))
(insert " " row-del "\n")))))
-(defun latex-table-wizard-kill-row ()
+(defalias #'latex-table-wizard-kill-row
+ #'latex-table-wizard-kill-row-content)
+
+(defun latex-table-wizard-kill-row-content ()
+ "Kill content of row at point. Leave delimiters in place."
+ (interactive)
+ (latex-table-wizard--setup)
+ (save-excursion
+ (let* ((table (latex-table-wizard--parse-table))
+ (current-row (latex-table-wizard--get-thing 'row table))
+ kills poss)
+ (dolist (x current-row)
+ (let ((b (plist-get x :start))
+ (e (plist-get x :end)))
+ (push (buffer-substring b e) kills)
+ (push (cons b e) poss)))
+ (dolist (p poss)
+ (let ((repl (make-string (- (cdr p) (car p)) 32)))
+ (delete-region (car p) (cdr p))
+ (goto-char (car p))
+ (insert repl)))
+ (kill-new (string-join (nreverse kills) " ")))))
+
+(defun latex-table-wizard-delete-row ()
"Kill row at point."
(interactive)
(latex-table-wizard--setup)
@@ -1317,8 +1385,10 @@ at point. If it is none of those object, return nil."
(defconst latex-table-wizard-default-transient-keys
'((toggle-truncate-lines "t" "toggle truncate-lines")
- (latex-table-wizard-kill-row "k r" "kill current row")
- (latex-table-wizard-kill-column "k c" "kill current column")
+ (latex-table-wizard-kill-row-content "k r" "kill row content")
+ (latex-table-wizard-kill-column-content "k c" "kill column content")
+ (latex-table-wizard-delete-row "D r" "delete row")
+ (latex-table-wizard-delete-column "D c" "delete column")
(latex-table-wizard-insert-row "i r" "insert row below")
(latex-table-wizard-insert-column "i c" "insert column right")
(latex-table-wizard-swap "s" "swap selection")
@@ -1366,7 +1436,11 @@ information.")
(defconst latex-table-wizard--interactive-commands
(seq-concatenate
'list
- '(latex-table-wizard-align-left
+ '(latex-table-wizard-kill-row-content
+ latex-table-wizard-kill-column-content
+ latex-table-wizard-delete-column
+ latex-table-wizard-delete-row
+ latex-table-wizard-align-left
latex-table-wizard-align-right
latex-table-wizard-center
latex-table-wizard-compress
@@ -1477,8 +1551,10 @@ suffixes provided by evaluating
`latex-table-wizard--make-suffix'."
""
,(latex-table-wizard--make-suffix 'latex-table-wizard-insert-column)
,(latex-table-wizard--make-suffix 'latex-table-wizard-insert-row)
- ,(latex-table-wizard--make-suffix 'latex-table-wizard-kill-column)
- ,(latex-table-wizard--make-suffix 'latex-table-wizard-kill-row)
+ ,(latex-table-wizard--make-suffix
'latex-table-wizard-kill-column-content)
+ ,(latex-table-wizard--make-suffix 'latex-table-wizard-kill-row-content)
+ ,(latex-table-wizard--make-suffix 'latex-table-wizard-delete-column)
+ ,(latex-table-wizard--make-suffix 'latex-table-wizard-delete-row)
,(latex-table-wizard--make-suffix 'latex-table-wizard-mark-cell)
,(latex-table-wizard--make-suffix 'exchange-point-and-mark)]])))
@@ -1621,10 +1697,4 @@ remove if `last-command' but not `this-command' is in
(customize-browse 'latex-table-wizard))
(provide 'latex-table-wizard)
-
-;;; _
-;; Local Variables:
-;; indent-tabs-mode: nil
-;; End:
-
;;; latex-table-wizard.el ends here
- [elpa] externals/latex-table-wizard f9fb0ae878 28/70: Cleanup and some bug fixed, (continued)
- [elpa] externals/latex-table-wizard f9fb0ae878 28/70: Cleanup and some bug fixed, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard 9ce3165694 32/70: Add center and right alignment, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard e3553c7759 34/70: Add feedback about cell jumps, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard 13359e40f6 44/70: rename readme, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard f290f87949 45/70: add empty changelog file, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard 3bafcbefeb 49/70: Update commentary section, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard 36e68b0fd8 48/70: Add .elpaignore, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard 85af90dac4 52/70: Use TeX-comment-forward, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard ff8c832ad0 53/70: Version 1.1.0, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard 71b7b2c252 55/70: Update copyright year and fix bug, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard 2544236eb3 57/70: New commands to kill row and column content,
ELPA Syncer <=
- [elpa] externals/latex-table-wizard 1f4effedfa 59/70: NOCYCLE argument added to movement commands, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard d5494445cf 62/70: Fix latex-table-wizard--comment-thing for multiline cells, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard c496237fa1 64/70: Minor bug fix in latex-table-wizard-right, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard 04b3d59de7 65/70: Four new commands added to edit cell content, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard e61e1c1f0f 69/70: Fix parsing when whole table is inside certain macros, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard 9d779a2d9b 42/70: Correct conditional in mode startup, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard f2f2efeed4 50/70: New alignment commands and bug fixes, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard c315f144a6 47/70: Add short description file, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard bb8c0e04f1 58/70: Two commands to comment out cells added, ELPA Syncer, 2023/05/13
- [elpa] externals/latex-table-wizard c3b1802c1e 29/70: Syntax-quote lists, ELPA Syncer, 2023/05/13