0
0
Fork 1
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-09-18 15:40:11 +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:
Ihor Radchenko 2024-05-21 12:21:29 +02:00
parent e6c7b0f15e
commit 8d43ab9ca9
No known key found for this signature in database
GPG key ID: 6470762A7DA11D8B

View file

@ -5225,7 +5225,7 @@ When LOCAL is non-nil, show references for the table at point."
;; accident in Org mode.
(message "Orgtbl mode is not useful in Org mode, command ignored"))
(orgtbl-mode
(and (orgtbl-setup) (defun orgtbl-setup () nil)) ;; FIXME: Yuck!?!
(orgtbl-setup)
;; Make sure we are first in minor-mode-map-alist
(let ((c (assq 'orgtbl-mode minor-mode-map-alist)))
;; FIXME: maybe it should use emulation-mode-map-alists?
@ -5280,9 +5280,8 @@ to execute outside of tables."
(interactive)
(user-error "This key has no function outside tables"))
(defun orgtbl-setup ()
"Setup orgtbl keymaps."
(let ((nfunc 0)
;; Fill in orgtbl keymap.
(let ((nfunc 0)
(bindings
'(([(meta shift left)] org-table-delete-column)
([(meta left)] org-table-move-column-left)
@ -5354,18 +5353,18 @@ to execute outside of tables."
[(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|" '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
;; some standard editing functions
(org-remap orgtbl-mode-map
'self-insert-command 'orgtbl-self-insert-command
'delete-char 'org-delete-char
'delete-forward-char 'org-delete-char
'delete-backward-char 'org-delete-backward-char)
(org-defkey orgtbl-mode-map "|" 'org-force-self-insert))
t))
'self-insert-command (and orgtbl-optimized 'orgtbl-self-insert-command)
'delete-char (and orgtbl-optimized 'org-delete-char)
'delete-forward-char (and orgtbl-optimized 'org-delete-char)
'delete-backward-char (and orgtbl-optimized 'org-delete-backward-char))
(org-defkey orgtbl-mode-map "|" (and orgtbl-optimized 'org-force-self-insert)))
(defun orgtbl-ctrl-c-ctrl-c (arg)
"If the cursor is inside a table, realign the table.