diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2018-02-14 18:45:29 +0100 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2018-02-14 18:48:48 +0100 |
commit | 58da7d4d177a7d2e92e22110f4ad51158fba53b0 (patch) | |
tree | 38c03589573a46d4deede08bb92429582c8d2cf8 | |
parent | af824a9b397d72edb6577990e7c45c7ffd2064ef (diff) | |
download | org-mode-58da7d4d177a7d2e92e22110f4ad51158fba53b0.tar.gz |
org-table: Fix shrunk columns on hlines
* lisp/org-table.el (org-table--shrunk-field): Fix function when on
a hline.
* testing/lisp/test-org-table.el (test-org-table/shrunk-columns): Add
tests.
Reported-by: Kaushal Modi <kaushal.modi@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-02/msg00231.html>
-rw-r--r-- | lisp/org-table.el | 4 | ||||
-rw-r--r-- | testing/lisp/test-org-table.el | 40 |
2 files changed, 42 insertions, 2 deletions
diff --git a/lisp/org-table.el b/lisp/org-table.el index 05fa12c..9ab15e6 100644 --- a/lisp/org-table.el +++ b/lisp/org-table.el @@ -3842,7 +3842,9 @@ When non-nil, return the overlay narrowing the field." (and (eq 'table-column-hide (overlay-get o 'org-overlay-type)) o)) (overlays-at (save-excursion - (skip-chars-forward "^|" (line-end-position)) + (skip-chars-forward (if (org-at-table-hline-p) "^+|" + "^|") + (line-end-position)) (1- (point)))))) (defun org-table--list-shrunk-columns () diff --git a/testing/lisp/test-org-table.el b/testing/lisp/test-org-table.el index b9c9f6a..850080c 100644 --- a/testing/lisp/test-org-table.el +++ b/testing/lisp/test-org-table.el @@ -2591,7 +2591,45 @@ See also `test-org-table/copy-field'." (org-table-toggle-column-width) (org-table-get-field nil "b") (mapcar (lambda (o) (overlay-get o 'help-echo)) - (overlays-in (point-min) (point-max))))))) + (overlays-in (point-min) (point-max)))))) + ;; Moving to next field doesn't change shrunk state. + (should + (equal "a" + (org-test-with-temp-text "| <point>a | b |" + (org-table-toggle-column-width) + (org-table-next-field) + (overlay-get (car (overlays-at (1+ (line-beginning-position)))) + 'help-echo)))) + (should + (equal "b" + (org-test-with-temp-text "| a | <point>b |" + (org-table-toggle-column-width) + (goto-char 2) + (org-table-next-field) + (overlay-get (car (overlays-at (point))) 'help-echo)))) + ;; Aligning table doesn't alter shrunk state. + (should + (equal "a" + (org-test-with-temp-text "| <point>a | b |" + (org-table-toggle-column-width) + (org-table-align) + (overlay-get (car (overlays-at (1+ (line-beginning-position)))) + 'help-echo)))) + (should + (equal "b" + (org-test-with-temp-text "|---+-----|\n| a | <point>b |" + (org-table-toggle-column-width) + (org-table-align) + (overlay-get (car (overlays-at (point))) + 'help-echo)))) + (should + (equal + '("b") + (org-test-with-temp-text "|---+-----|\n| a | <point>b |" + (org-table-toggle-column-width) + (org-table-align) + (mapcar (lambda (o) (overlay-get o 'help-echo)) + (overlays-in (line-beginning-position) (line-end-position))))))) |