|
@@ -13266,6 +13266,43 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command names."
|
|
|
'delete-backward-char 'org-delete-backward-char)
|
|
|
(org-defkey org-mode-map "|" 'org-force-self-insert))
|
|
|
|
|
|
+(defvar org-ctrl-c-ctrl-c-hook nil
|
|
|
+ "Hook for functions attaching themselves to `C-c C-c'.
|
|
|
+This can be used to add additional functionality to the C-c C-c key which
|
|
|
+executes context-dependent commands.
|
|
|
+Each function will be called with no arguments. The function must check
|
|
|
+if the context is appropriate for it to act. If yes, it should do its
|
|
|
+thing and then return a non-nil value. If the context is wrong,
|
|
|
+just do nothing.")
|
|
|
+
|
|
|
+(defvar org-metaleft-hook nil
|
|
|
+ "Hook for functions attaching themselves to `M-left'.
|
|
|
+See `org-ctrl-c-ctrl-c-hook' for more information.")
|
|
|
+(defvar org-metaright-hook nil
|
|
|
+ "Hook for functions attaching themselves to `M-right'.
|
|
|
+See `org-ctrl-c-ctrl-c-hook' for more information.")
|
|
|
+(defvar org-metaup-hook nil
|
|
|
+ "Hook for functions attaching themselves to `M-up'.
|
|
|
+See `org-ctrl-c-ctrl-c-hook' for more information.")
|
|
|
+(defvar org-metadown-hook nil
|
|
|
+ "Hook for functions attaching themselves to `M-down'.
|
|
|
+See `org-ctrl-c-ctrl-c-hook' for more information.")
|
|
|
+(defvar org-shiftmetaleft-hook nil
|
|
|
+ "Hook for functions attaching themselves to `M-S-left'.
|
|
|
+See `org-ctrl-c-ctrl-c-hook' for more information.")
|
|
|
+(defvar org-shiftmetaright-hook nil
|
|
|
+ "Hook for functions attaching themselves to `M-S-right'.
|
|
|
+See `org-ctrl-c-ctrl-c-hook' for more information.")
|
|
|
+(defvar org-shiftmetaup-hook nil
|
|
|
+ "Hook for functions attaching themselves to `M-S-up'.
|
|
|
+See `org-ctrl-c-ctrl-c-hook' for more information.")
|
|
|
+(defvar org-shiftmetadown-hook nil
|
|
|
+ "Hook for functions attaching themselves to `M-S-down'.
|
|
|
+See `org-ctrl-c-ctrl-c-hook' for more information.")
|
|
|
+(defvar org-metareturn-hook nil
|
|
|
+ "Hook for functions attaching themselves to `M-RET'.
|
|
|
+See `org-ctrl-c-ctrl-c-hook' for more information.")
|
|
|
+
|
|
|
(defun org-modifier-cursor-error ()
|
|
|
"Throw an error, a modified cursor command was applied in wrong context."
|
|
|
(error "This command is active in special context like tables, headlines or items"))
|
|
@@ -13301,6 +13338,7 @@ or `org-table-delete-column', depending on context.
|
|
|
See the individual commands for more information."
|
|
|
(interactive)
|
|
|
(cond
|
|
|
+ ((run-hook-with-args-until-success 'org-shiftmetaleft-hook))
|
|
|
((org-at-table-p) (call-interactively 'org-table-delete-column))
|
|
|
((org-on-heading-p) (call-interactively 'org-promote-subtree))
|
|
|
((org-at-item-p) (call-interactively 'org-outdent-item))
|
|
@@ -13313,6 +13351,7 @@ or `org-table-insert-column', depending on context.
|
|
|
See the individual commands for more information."
|
|
|
(interactive)
|
|
|
(cond
|
|
|
+ ((run-hook-with-args-until-success 'org-shiftmetaright-hook))
|
|
|
((org-at-table-p) (call-interactively 'org-table-insert-column))
|
|
|
((org-on-heading-p) (call-interactively 'org-demote-subtree))
|
|
|
((org-at-item-p) (call-interactively 'org-indent-item))
|
|
@@ -13325,10 +13364,12 @@ Calls `org-move-subtree-up' or `org-table-kill-row' or
|
|
|
for more information."
|
|
|
(interactive "P")
|
|
|
(cond
|
|
|
+ ((run-hook-with-args-until-success 'org-shiftmetaup-hook))
|
|
|
((org-at-table-p) (call-interactively 'org-table-kill-row))
|
|
|
((org-on-heading-p) (call-interactively 'org-move-subtree-up))
|
|
|
((org-at-item-p) (call-interactively 'org-move-item-up))
|
|
|
(t (org-modifier-cursor-error))))
|
|
|
+
|
|
|
(defun org-shiftmetadown (&optional arg)
|
|
|
"Move subtree down or insert table row.
|
|
|
Calls `org-move-subtree-down' or `org-table-insert-row' or
|
|
@@ -13336,6 +13377,7 @@ Calls `org-move-subtree-down' or `org-table-insert-row' or
|
|
|
commands for more information."
|
|
|
(interactive "P")
|
|
|
(cond
|
|
|
+ ((run-hook-with-args-until-success 'org-shiftmetadown-hook))
|
|
|
((org-at-table-p) (call-interactively 'org-table-insert-row))
|
|
|
((org-on-heading-p) (call-interactively 'org-move-subtree-down))
|
|
|
((org-at-item-p) (call-interactively 'org-move-item-down))
|
|
@@ -13348,6 +13390,7 @@ With no specific context, calls the Emacs default `backward-word'.
|
|
|
See the individual commands for more information."
|
|
|
(interactive "P")
|
|
|
(cond
|
|
|
+ ((run-hook-with-args-until-success 'org-metaleft-hook))
|
|
|
((org-at-table-p) (org-call-with-arg 'org-table-move-column 'left))
|
|
|
((or (org-on-heading-p) (org-region-active-p))
|
|
|
(call-interactively 'org-do-promote))
|
|
@@ -13361,6 +13404,7 @@ With no specific context, calls the Emacs default `forward-word'.
|
|
|
See the individual commands for more information."
|
|
|
(interactive "P")
|
|
|
(cond
|
|
|
+ ((run-hook-with-args-until-success 'org-metaright-hook))
|
|
|
((org-at-table-p) (call-interactively 'org-table-move-column))
|
|
|
((or (org-on-heading-p) (org-region-active-p))
|
|
|
(call-interactively 'org-do-demote))
|
|
@@ -13374,6 +13418,7 @@ Calls `org-move-subtree-up' or `org-table-move-row' or
|
|
|
for more information."
|
|
|
(interactive "P")
|
|
|
(cond
|
|
|
+ ((run-hook-with-args-until-success 'org-metaup-hook))
|
|
|
((org-at-table-p) (org-call-with-arg 'org-table-move-row 'up))
|
|
|
((org-on-heading-p) (call-interactively 'org-move-subtree-up))
|
|
|
((org-at-item-p) (call-interactively 'org-move-item-up))
|
|
@@ -13386,6 +13431,7 @@ Calls `org-move-subtree-down' or `org-table-move-row' or
|
|
|
commands for more information."
|
|
|
(interactive "P")
|
|
|
(cond
|
|
|
+ ((run-hook-with-args-until-success 'org-metadown-hook))
|
|
|
((org-at-table-p) (call-interactively 'org-table-move-row))
|
|
|
((org-on-heading-p) (call-interactively 'org-move-subtree-down))
|
|
|
((org-at-item-p) (call-interactively 'org-move-item-down))
|
|
@@ -13569,11 +13615,15 @@ When in an #+include line, visit the include file. Otherwise call
|
|
|
((org-edit-fixed-width-region))
|
|
|
(t (call-interactively 'ffap))))
|
|
|
|
|
|
+
|
|
|
(defun org-ctrl-c-ctrl-c (&optional arg)
|
|
|
"Set tags in headline, or update according to changed information at point.
|
|
|
|
|
|
This command does many different things, depending on context:
|
|
|
|
|
|
+- If a function in `org-ctrl-c-ctrl-c-hook' recognizes this location,
|
|
|
+ this is what we do.
|
|
|
+
|
|
|
- If the cursor is in a headline, prompt for tags and insert them
|
|
|
into the current line, aligned to `org-tags-column'. When called
|
|
|
with prefix arg, realign all tags in the current buffer.
|
|
@@ -13621,6 +13671,7 @@ This command does many different things, depending on context:
|
|
|
((and (local-variable-p 'org-finish-function (current-buffer))
|
|
|
(fboundp org-finish-function))
|
|
|
(funcall org-finish-function))
|
|
|
+ ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-hook))
|
|
|
((org-at-property-p)
|
|
|
(call-interactively 'org-property-action))
|
|
|
((org-on-target-p) (call-interactively 'org-update-radio-target-regexp))
|
|
@@ -13834,6 +13885,7 @@ Calls `org-insert-heading' or `org-table-wrap-region', depending on context.
|
|
|
See the individual commands for more information."
|
|
|
(interactive "P")
|
|
|
(cond
|
|
|
+ ((run-hook-with-args-until-success 'org-metareturn-hook))
|
|
|
((org-at-table-p)
|
|
|
(call-interactively 'org-table-wrap-region))
|
|
|
(t (call-interactively 'org-insert-heading))))
|