[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org a79a742cbf 1/4: Revert "org.el: Improve performance
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org a79a742cbf 1/4: Revert "org.el: Improve performance of deletion commands" |
Date: |
Thu, 14 Jul 2022 09:57:59 -0400 (EDT) |
branch: externals/org
commit a79a742cbff01b7815cffba806c28ea45a4da63c
Author: Ihor Radchenko <yantar92@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>
Revert "org.el: Improve performance of deletion commands"
This reverts commit 46df681336c83c826b367d2803f59560165bdeba.
The optimization broke folding fragility checks.
---
lisp/org.el | 74 ++++++++++++++++++++++++++++++-------------------------------
1 file changed, 36 insertions(+), 38 deletions(-)
diff --git a/lisp/org.el b/lisp/org.el
index 3d4de5b4f6..d85b5818e7 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -16156,19 +16156,18 @@ front of the next \"|\" separator, to keep the table
aligned. The table will
still be marked for re-alignment if the field did fill the entire column,
because, in this case the deletion might narrow the column."
(interactive "p")
- (org-fold-core-ignore-modifications
- (save-match-data
- (org-fold-check-before-invisible-edit 'delete-backward)
- (if (and (= N 1)
- (not overwrite-mode)
- (not (org-region-active-p))
- (not (eq (char-before) ?|))
- (save-excursion (skip-chars-backward " \t") (not (bolp)))
- (looking-at-p ".*?|")
- (org-at-table-p))
- (progn (forward-char -1) (org-delete-char 1))
- (backward-delete-char N)
- (org-fix-tags-on-the-fly)))))
+ (save-match-data
+ (org-fold-check-before-invisible-edit 'delete-backward)
+ (if (and (= N 1)
+ (not overwrite-mode)
+ (not (org-region-active-p))
+ (not (eq (char-before) ?|))
+ (save-excursion (skip-chars-backward " \t") (not (bolp)))
+ (looking-at-p ".*?|")
+ (org-at-table-p))
+ (progn (forward-char -1) (org-delete-char 1))
+ (backward-delete-char N)
+ (org-fix-tags-on-the-fly))))
(defun org-delete-char (N)
"Like `delete-char', but insert whitespace at field end in tables.
@@ -16177,31 +16176,30 @@ front of the next \"|\" separator, to keep the table
aligned. The table will
still be marked for re-alignment if the field did fill the entire column,
because, in this case the deletion might narrow the column."
(interactive "p")
- (org-fold-core-ignore-modifications
- (save-match-data
- (org-fold-check-before-invisible-edit 'delete)
- (cond
- ((or (/= N 1)
- (eq (char-after) ?|)
- (save-excursion (skip-chars-backward " \t") (bolp))
- (not (org-at-table-p)))
- (delete-char N)
- (org-fix-tags-on-the-fly))
- ((looking-at ".\\(.*?\\)|")
- (let* ((update? org-table-may-need-update)
- (noalign (looking-at-p ".*? |")))
- (delete-char 1)
- (org-table-with-shrunk-field
- (save-excursion
- ;; Last space is `org-table-separator-space', so insert
- ;; a regular one before it instead.
- (goto-char (- (match-end 0) 2))
- (insert " ")))
- ;; If there were two spaces at the end, this field does not
- ;; determine the width of the column.
- (when noalign (setq org-table-may-need-update update?))))
- (t
- (delete-char N))))))
+ (save-match-data
+ (org-fold-check-before-invisible-edit 'delete)
+ (cond
+ ((or (/= N 1)
+ (eq (char-after) ?|)
+ (save-excursion (skip-chars-backward " \t") (bolp))
+ (not (org-at-table-p)))
+ (delete-char N)
+ (org-fix-tags-on-the-fly))
+ ((looking-at ".\\(.*?\\)|")
+ (let* ((update? org-table-may-need-update)
+ (noalign (looking-at-p ".*? |")))
+ (delete-char 1)
+ (org-table-with-shrunk-field
+ (save-excursion
+ ;; Last space is `org-table-separator-space', so insert
+ ;; a regular one before it instead.
+ (goto-char (- (match-end 0) 2))
+ (insert " ")))
+ ;; If there were two spaces at the end, this field does not
+ ;; determine the width of the column.
+ (when noalign (setq org-table-may-need-update update?))))
+ (t
+ (delete-char N)))))
;; Make `delete-selection-mode' work with Org mode and Orgtbl mode
(put 'org-self-insert-command 'delete-selection