branch: externals/org-remark
commit 193fe279ea3c7943cd441e41f5ccf55db8d35e2c
Author: Noboru Ota <[email protected]>
Commit: Noboru Ota <[email protected]>
feat(line):add line-number as a property to the highlight headline
This commit also adds the facility (abnormal hook) for future
extensions.
---
org-remark-line.el | 13 ++++++++++++-
org-remark.el | 23 ++++++++++++++++++++---
2 files changed, 32 insertions(+), 4 deletions(-)
diff --git a/org-remark-line.el b/org-remark-line.el
index 9d8403de56..ff57efa8fe 100644
--- a/org-remark-line.el
+++ b/org-remark-line.el
@@ -5,7 +5,7 @@
;; Author: Noboru Ota <[email protected]>
;; URL: https://github.com/nobiot/org-remark
;; Created: 01 August 2023
-;; Last modified: 19 August 2023
+;; Last modified: 20 August 2023
;; Package-Requires: ((emacs "27.1") (org "9.4"))
;; Keywords: org-mode, annotation, note-taking, marginal-notes, wp
@@ -130,6 +130,8 @@ in cons cell (or nil) before function
;; Need to reload to cater to margin changes done by `olivetti'.
(add-hook 'window-size-change-functions
#'org-remark-line-highlights-redraw 96 :local)
+ (add-hook 'org-remark-highlight-other-props-functions
+ #'org-remark-line-prop-line-number-get)
(org-remark-line-set-window-margins))
;; Disable
(remove-hook 'org-remark-find-dwim-functions #'org-remark-line-find :local)
@@ -137,6 +139,8 @@ in cons cell (or nil) before function
#'org-remark-line-set-window-margins :local)
(remove-hook 'window-size-change-functions
#'org-remark-line-highlights-redraw :local)
+ (remove-hook 'org-remark-highlight-other-props-functions
+ #'org-remark-line-prop-line-number-get)
(when org-remark-line-margins-set-p
(setq left-margin-width (car org-remark-line-margins-original))
(setq right-margin-width (cdr org-remark-line-margins-original))
@@ -210,6 +214,13 @@ by `overlays-in'."
(highlights (overlays-in bol bol)))
(seq-find #'org-remark-line-highlight-p highlights)))
+(defun org-remark-line-prop-line-number-get (highlight)
+ "Return the line number for HIGHLIGHT overlay.
+This happens only when HIGHLIGHT is a line-highlight."
+ (when (org-remark-line-highlight-p highlight)
+ (list 'org-remark-line-number
+ (number-to-string (org-current-line (overlay-start highlight))))))
+
(cl-defmethod org-remark-beg-end ((_org-remark-type (eql 'line)))
(let ((bol (org-remark-line-pos-bol (point))))
(list bol bol)))
diff --git a/org-remark.el b/org-remark.el
index 03d0228e83..75ff21e08a 100644
--- a/org-remark.el
+++ b/org-remark.el
@@ -6,7 +6,7 @@
;; URL: https://github.com/nobiot/org-remark
;; Version: 1.1.0
;; Created: 22 December 2020
-;; Last modified: 18 August 2023
+;; Last modified: 20 August 2023
;; Package-Requires: ((emacs "27.1") (org "9.4"))
;; Keywords: org-mode, annotation, note-taking, marginal-notes, wp,
@@ -1056,6 +1056,21 @@ buffer for automatic sync."
"\n" " "
(buffer-substring-no-properties (overlay-start ov) (overlay-end ov))))
+(defvar org-remark-highlight-other-props-functions nil
+ "Abnormal hook to be run when adding or updating headline.
+It is called with one argument HIGHLIGHT, which is the overlay
+that represents the current highlight being worked on. The
+function is run with source buffer as the current buffer.")
+
+(defun org-remark-highlight-collect-other-props (highlight)
+ "
+Assume to be run in the source buffer."
+ (let ((props nil))
+ (dolist (fn org-remark-highlight-other-props-functions props)
+ (let ((plist (funcall fn highlight)))
+ (when plist
+ (setq props (append props plist)))))))
+
(defun org-remark-highlight-add-or-update-highlight-headline (highlight
source-buf notes-buf)
"Add a new HIGHLIGHT headlne to the NOTES-BUF or update it.
Return notes-props as a property list.
@@ -1079,11 +1094,13 @@ beginning of source-headline, which should be one level
up."
(org-remark-source-find-file-name))
link (run-hook-with-args-until-success
'org-remark-highlight-link-to-source-functions filename beg)
- orgid (org-remark-highlight-get-org-id beg))
+ orgid (org-remark-highlight-get-org-id beg)
+ other-props (org-remark-highlight-collect-other-props highlight))
;; TODO ugly to add the beg end after setq above
(plist-put props org-remark-prop-source-beg (number-to-string beg))
(plist-put props org-remark-prop-source-end (number-to-string end))
- (when link (plist-put props "org-remark-link" link)))
+ (when link (plist-put props "org-remark-link" link))
+ (when other-props (setq props (append props other-props))))
;;; Make it explicit that we are now in the notes-buf, though it is
;;; functionally redundant.
(with-current-buffer notes-buf