summaryrefslogtreecommitdiffhomepage
path: root/lib/org/jao-org-utils.el
diff options
context:
space:
mode:
Diffstat (limited to 'lib/org/jao-org-utils.el')
-rw-r--r--lib/org/jao-org-utils.el43
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/org/jao-org-utils.el b/lib/org/jao-org-utils.el
new file mode 100644
index 0000000..8d65ed7
--- /dev/null
+++ b/lib/org/jao-org-utils.el
@@ -0,0 +1,43 @@
+(require 'org)
+
+;;; links
+(defun jao-org-link-at-point (&optional copy)
+ (when (thing-at-point-looking-at "\\[\\[\\([^]]+\\)\\]\\[[^]]+\\]\\]")
+ (when copy (kill-ring-save (match-beginning 1) (match-end 1)))
+ (match-string-no-properties 1)))
+
+(defun jao-org-copy-link-at-point ()
+ (interactive)
+ (message "%s" (or (jao-org-link-at-point t) "No link at point")))
+
+(defun jao-org-insert-link (url title)
+ (insert (format "[[%s][%s]]" url title)))
+
+;;; eldoc
+(defun jao-org-eldoc--hook ()
+ (set (make-local-variable 'eldoc-documentation-function)
+ 'jao-org-link-at-point)
+ (eldoc-mode))
+
+;;;###autoload
+(defun jao-org-utils-eldoc-setup ()
+ (add-hook 'org-mode-hook 'jao-org-eldoc--hook))
+
+;;; play fair with saveplace
+(defun jao-org--show-if-hidden ()
+ (when (outline-invisible-p)
+ (save-excursion
+ (outline-previous-visible-heading 1)
+ (org-show-subtree))))
+
+;;; verifying org refile targets
+(defun jao-org--refile-target-verify ()
+ (not (looking-at-p ".*\\[\\[.+$")))
+
+;;;###autoload
+(defun jao-org-utils-setup ()
+ (setq org-refile-target-verify-function 'jao-org--refile-target-verify)
+ (add-hook 'org-mode-hook 'jao-org--show-if-hidden t))
+
+
+(provide 'jao-org-utils)