mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-19 13:10:16 +00:00
orgtbl-setup: Resolve FIXME
* lisp/org-table.el (orgtbl-setup): Move setting up keymap to top level instead of awkward re-`defun' used previously to ensure that setup is evaluated once. Make it possible to honor the value of `orgtbl-optimized' during runtime, if it is changed. (orgtbl-mode): Remove re-`defun'.
This commit is contained in:
parent
e6c7b0f15e
commit
8d43ab9ca9
|
@ -5225,7 +5225,7 @@ When LOCAL is non-nil, show references for the table at point."
|
||||||
;; accident in Org mode.
|
;; accident in Org mode.
|
||||||
(message "Orgtbl mode is not useful in Org mode, command ignored"))
|
(message "Orgtbl mode is not useful in Org mode, command ignored"))
|
||||||
(orgtbl-mode
|
(orgtbl-mode
|
||||||
(and (orgtbl-setup) (defun orgtbl-setup () nil)) ;; FIXME: Yuck!?!
|
(orgtbl-setup)
|
||||||
;; Make sure we are first in minor-mode-map-alist
|
;; Make sure we are first in minor-mode-map-alist
|
||||||
(let ((c (assq 'orgtbl-mode minor-mode-map-alist)))
|
(let ((c (assq 'orgtbl-mode minor-mode-map-alist)))
|
||||||
;; FIXME: maybe it should use emulation-mode-map-alists?
|
;; FIXME: maybe it should use emulation-mode-map-alists?
|
||||||
|
@ -5280,8 +5280,7 @@ to execute outside of tables."
|
||||||
(interactive)
|
(interactive)
|
||||||
(user-error "This key has no function outside tables"))
|
(user-error "This key has no function outside tables"))
|
||||||
|
|
||||||
(defun orgtbl-setup ()
|
;; Fill in orgtbl keymap.
|
||||||
"Setup orgtbl keymaps."
|
|
||||||
(let ((nfunc 0)
|
(let ((nfunc 0)
|
||||||
(bindings
|
(bindings
|
||||||
'(([(meta shift left)] org-table-delete-column)
|
'(([(meta shift left)] org-table-delete-column)
|
||||||
|
@ -5354,18 +5353,18 @@ to execute outside of tables."
|
||||||
[(meta return)] "\M-\C-m"))
|
[(meta return)] "\M-\C-m"))
|
||||||
|
|
||||||
(org-defkey orgtbl-mode-map "\C-c\C-c" 'orgtbl-ctrl-c-ctrl-c)
|
(org-defkey orgtbl-mode-map "\C-c\C-c" 'orgtbl-ctrl-c-ctrl-c)
|
||||||
(org-defkey orgtbl-mode-map "\C-c|" 'orgtbl-create-or-convert-from-region)
|
(org-defkey orgtbl-mode-map "\C-c|" 'orgtbl-create-or-convert-from-region))
|
||||||
|
|
||||||
(when orgtbl-optimized
|
(defun orgtbl-setup ()
|
||||||
|
"Setup orgtbl keymaps."
|
||||||
;; If the user wants maximum table support, we need to hijack
|
;; If the user wants maximum table support, we need to hijack
|
||||||
;; some standard editing functions
|
;; some standard editing functions
|
||||||
(org-remap orgtbl-mode-map
|
(org-remap orgtbl-mode-map
|
||||||
'self-insert-command 'orgtbl-self-insert-command
|
'self-insert-command (and orgtbl-optimized 'orgtbl-self-insert-command)
|
||||||
'delete-char 'org-delete-char
|
'delete-char (and orgtbl-optimized 'org-delete-char)
|
||||||
'delete-forward-char 'org-delete-char
|
'delete-forward-char (and orgtbl-optimized 'org-delete-char)
|
||||||
'delete-backward-char 'org-delete-backward-char)
|
'delete-backward-char (and orgtbl-optimized 'org-delete-backward-char))
|
||||||
(org-defkey orgtbl-mode-map "|" 'org-force-self-insert))
|
(org-defkey orgtbl-mode-map "|" (and orgtbl-optimized 'org-force-self-insert)))
|
||||||
t))
|
|
||||||
|
|
||||||
(defun orgtbl-ctrl-c-ctrl-c (arg)
|
(defun orgtbl-ctrl-c-ctrl-c (arg)
|
||||||
"If the cursor is inside a table, realign the table.
|
"If the cursor is inside a table, realign the table.
|
||||||
|
|
Loading…
Reference in a new issue