From: prayner <prayner@unimelb.edu.au>
To: emacs-orgmode@gnu.org
Subject: patch to add org-table-previous-row to org-table
Date: Sun, 5 Jul 2015 08:46:37 +1000 [thread overview]
Message-ID: <21912.25165.91884.664853@localhost.localdomain> (raw)
I am working with the accessibility system emacspeak to improve
eyes-free access to org-mode tables. Most of this can be done outside
the org-mode tree by advising existing functions but I've run into a
need for a new function. I need org-table-previous-row analogous to
org-table-next-row. Below is a patch to add this. The behaviour is
almost identical to org-table-next-row except that
org-table-previous-row in the first row of the table is a no-op.
Please consider adding this to the repository. Comments and
corrections welcome but please send them to me directly as well as the
list.
regards
Peter
----------------------------------------------------------------------
diff --git a/lisp/org-table.el b/lisp/org-table.el
index 8a6e22b..f17d84d 100644
--- a/lisp/org-table.el
+++ b/lisp/org-table.el
@@ -1092,6 +1092,30 @@ Before doing so, re-align the table if necessary."
(if (looking-at " ") (forward-char 1)))))
;;;###autoload
+(defun org-table-previous-row ()
+ "Go to the previous row (same column) in the current table.
+Before doing so, re-align the table if necessary."
+ (interactive)
+ (org-table-maybe-eval-formula)
+ (org-table-maybe-recalculate-line)
+ (if (or (looking-at "[ \t]*$")
+ (save-excursion (skip-chars-backward " \t") (bolp)))
+ (newline)
+ (if (and org-table-automatic-realign
+ org-table-may-need-update)
+ (org-table-align))
+ (let ((col (org-table-current-column)))
+ (beginning-of-line 0)
+ (if (or (not (org-at-table-p))
+ (org-at-table-hline-p))
+ (progn
+ (beginning-of-line 1)))
+ (org-table-goto-column col)
+ (skip-chars-backward "^|\n\r")
+ (if (looking-at " ") (forward-char 1)))))
+
+
+;;;###autoload
(defun org-table-copy-down (n)
"Copy the value of the current field one row below.
----------------------------------------------------------------------
>
--
Peter Rayner
Leader, Clean Air and Urban Landscapes NESP hub.
room 343
School of Earth Sciences, University of Melbourne, 3010, Vic, Australia
tel: work: +61 (0)3 8344 9708; fax: +61 (0)3 8344 7761
mobile +61 402 752 379, skype: petermorag
mail-to: prayner@unimelb.edu.au
google scholar profile <http://scholar.google.com.au/citations?user=H3up71wAAAAJ&hl=en>
next reply other threads:[~2015-07-04 22:46 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-04 22:46 prayner [this message]
2015-07-22 8:32 ` patch to add org-table-previous-row to org-table Nicolas Goaziou
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=21912.25165.91884.664853@localhost.localdomain \
--to=prayner@unimelb.edu.au \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).