aboutsummaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/lisp/my/my-org.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/.emacs.d/lisp/my/my-org.el')
-rw-r--r--emacs/.emacs.d/lisp/my/my-org.el45
1 files changed, 41 insertions, 4 deletions
diff --git a/emacs/.emacs.d/lisp/my/my-org.el b/emacs/.emacs.d/lisp/my/my-org.el
index 1a44a10..43be91f 100644
--- a/emacs/.emacs.d/lisp/my/my-org.el
+++ b/emacs/.emacs.d/lisp/my/my-org.el
@@ -1142,10 +1142,14 @@ Flush lines with only some common symbols."
(interactive)
(my-org-delete-empty-properties)
(org-attach-sync)
- (save-restriction
- (org-narrow-to-subtree)
- (flush-lines "^[ \t-]*$")
- (delete-trailing-whitespace)))
+ (save-excursion
+ (save-restriction
+ (org-narrow-to-subtree)
+ (flush-lines "^\\ *[-]+\\ *$")
+ (delete-trailing-whitespace)
+ (goto-char (point-max))
+ (when (<= (skip-chars-backward "\n") -2)
+ (delete-region (1+ (point)) (point-max))))))
(defun my-org-delete-empty-properties ()
"Delete empty (standard) properties at point."
@@ -1304,5 +1308,38 @@ buffer preserved, annotated with the size"
(insert line "\n"))))))
(switch-to-buffer-other-window "*org-sizes*"))
+;; for `org-link-frame-setup'
+(defun my-org-gnus-other-window-advice ()
+ (other-window 1))
+
+
+;; override `org-id-store-link' with a priority property
+(defun my-org-id-store-link ()
+ "Store a link to the current entry, using its ID.
+
+If before first heading store first title-keyword as description
+or filename if no title."
+ (interactive)
+ (when (and (buffer-file-name (buffer-base-buffer)) (derived-mode-p 'org-mode))
+ (let* ((link (concat "id:" (org-id-get-create)))
+ (case-fold-search nil)
+ (desc (save-excursion
+ (org-back-to-heading-or-point-min t)
+ (cond ((org-before-first-heading-p)
+ (let ((keywords (org-collect-keywords '("TITLE"))))
+ (if keywords
+ (cadr (assoc "TITLE" keywords))
+ (file-name-nondirectory
+ (buffer-file-name (buffer-base-buffer))))))
+ ((looking-at org-complex-heading-regexp)
+ (if (match-end 4)
+ (match-string 4)
+ (match-string 0)))
+ (t link))))
+ (prio (org-entry-get (point) "PRIORITY")))
+ (org-link-store-props :link link :description desc :type "id"
+ :priority prio)
+ link)))
+
(provide 'my-org)
;;; my-org.el ends here