Smarter narf/org-execute-at-point

This commit is contained in:
Henrik Lissner 2015-11-18 15:20:44 -05:00
parent e285c928cc
commit fb71be9a94

View file

@ -75,19 +75,43 @@
;;;###autoload ;;;###autoload
(defun narf/org-execute-at-point () (defun narf/org-execute-at-point ()
(interactive) (interactive)
(cond ((org-at-item-checkbox-p) (let* ((context (org-element-lineage
(org-toggle-checkbox)) (org-element-context)
((org-entry-is-todo-p) '(table table-row clock comment comment-block footnote-definition
(org-todo 'done)) footnote-reference headline inlinetask keyword link
((org-table-p) latex-fragment src-block item plain-list timestamp babel-call)
(org-table-align)) t))
((org-babel-lob-get-info) (type (org-element-type context))
(org-babel-lob-execute-maybe)) (value (org-element-property :value context)))
((org-in-src-block-p) (cond
(org-babel-execute-src-block)) ((memq type '(table table-row))
((org-inside-LaTeX-fragment-p) (if (org-element-property :tblfm (org-element-property :parent context))
(org-toggle-latex-fragment)) (org-table-recalculate t)
(t (org-toggle-inline-images)))) (org-table-align)))
((and (memq type '(item))
(org-element-property :checkbox context))
(org-toggle-checkbox))
((and (memq type '(headline))
(org-element-property :todo-type context))
(if (eq (org-element-property :todo-type context) 'done)
(org-todo 'todo)
(org-todo 'done)))
((memq type '(babel-call))
(org-babel-lob-execute-maybe))
((memq type '(src-block))
(org-babel-execute-src-block))
((memq type '(latex-fragment))
(org-toggle-latex-fragment))
((memq type '(link))
(org-open-at-point))
(t (org-toggle-inline-images)))))
;;;###autoload ;;;###autoload
(defun narf/org-toggle-inline-images-at-point () (defun narf/org-toggle-inline-images-at-point ()