mirror of
https://github.com/org-roam/org-roam
synced 2025-08-03 12:27:23 -05:00
org-roam-node-at-point: include point info
org-roam-node-at-point now returns a node with id and point if the noden is not yet saved in the database. Fixes #1500.
This commit is contained in:
@ -570,8 +570,8 @@ Return the ID of the location."
|
|||||||
(org-end-of-subtree t t))))
|
(org-end-of-subtree t t))))
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char p)
|
(goto-char p)
|
||||||
(run-hooks 'org-roam-capture-new-node-hook)
|
(org-id-get-create)
|
||||||
(org-id-get-create))))
|
(run-hooks 'org-roam-capture-new-node-hook))))
|
||||||
|
|
||||||
(defun org-roam-capture-find-or-create-olp (olp)
|
(defun org-roam-capture-find-or-create-olp (olp)
|
||||||
"Return a marker pointing to the entry at OLP in the current buffer.
|
"Return a marker pointing to the entry at OLP in the current buffer.
|
||||||
|
24
org-roam.el
24
org-roam.el
@ -472,13 +472,13 @@ OLD-FILE is cleared from the database, and NEW-FILE-OR-DIR is added."
|
|||||||
Uses the ID, and fetches remaining details from the database.
|
Uses the ID, and fetches remaining details from the database.
|
||||||
This can be quite costly: avoid, unless dealing with very few
|
This can be quite costly: avoid, unless dealing with very few
|
||||||
nodes."
|
nodes."
|
||||||
(let ((node-info (car (org-roam-db-query [:select [file level pos todo priority
|
(when-let ((node-info (car (org-roam-db-query [:select [file level pos todo priority
|
||||||
scheduled deadline title properties olp]
|
scheduled deadline title properties olp]
|
||||||
:from nodes
|
:from nodes
|
||||||
:where (= id $s1)
|
:where (= id $s1)
|
||||||
:limit 1]
|
:limit 1]
|
||||||
(org-roam-node-id node))))
|
(org-roam-node-id node)))))
|
||||||
(tag-info (mapcar #'car (org-roam-db-query [:select [tag] :from tags
|
(let ((tag-info (mapcar #'car (org-roam-db-query [:select [tag] :from tags
|
||||||
:where (= node-id $s1)]
|
:where (= node-id $s1)]
|
||||||
(org-roam-node-id node))))
|
(org-roam-node-id node))))
|
||||||
(alias-info (mapcar #'car (org-roam-db-query [:select [alias] :from aliases
|
(alias-info (mapcar #'car (org-roam-db-query [:select [alias] :from aliases
|
||||||
@ -487,7 +487,8 @@ nodes."
|
|||||||
(refs-info (mapcar #'car (org-roam-db-query [:select [ref] :from refs
|
(refs-info (mapcar #'car (org-roam-db-query [:select [ref] :from refs
|
||||||
:where (= node-id $s1)]
|
:where (= node-id $s1)]
|
||||||
(org-roam-node-id node)))))
|
(org-roam-node-id node)))))
|
||||||
(pcase-let ((`(,file ,level ,pos ,todo ,priority ,scheduled ,deadline ,title ,properties ,olp) node-info))
|
(pcase-let ((`(,file ,level ,pos ,todo ,priority ,scheduled
|
||||||
|
,deadline ,title ,properties ,olp) node-info))
|
||||||
(setf (org-roam-node-file node) file
|
(setf (org-roam-node-file node) file
|
||||||
(org-roam-node-level node) level
|
(org-roam-node-level node) level
|
||||||
(org-roam-node-point node) pos
|
(org-roam-node-point node) pos
|
||||||
@ -500,8 +501,8 @@ nodes."
|
|||||||
(org-roam-node-olp node) olp
|
(org-roam-node-olp node) olp
|
||||||
(org-roam-node-tags node) tag-info
|
(org-roam-node-tags node) tag-info
|
||||||
(org-roam-node-refs node) refs-info
|
(org-roam-node-refs node) refs-info
|
||||||
(org-roam-node-aliases node) alias-info))
|
(org-roam-node-aliases node) alias-info))))
|
||||||
node))
|
node)
|
||||||
|
|
||||||
(defcustom org-roam-node-display-template
|
(defcustom org-roam-node-display-template
|
||||||
"${title:*} ${tags:10}"
|
"${title:*} ${tags:10}"
|
||||||
@ -561,8 +562,15 @@ WIDTH is the width of the results list."
|
|||||||
If ASSERT, throw an error."
|
If ASSERT, throw an error."
|
||||||
(if-let ((node (magit-section-case
|
(if-let ((node (magit-section-case
|
||||||
(org-roam-node-section (oref it node))
|
(org-roam-node-section (oref it node))
|
||||||
(t (when-let ((id (org-roam-id-at-point)))
|
(t (let (id)
|
||||||
(org-roam-populate (org-roam-node-create :id id)))))))
|
(org-with-wide-buffer
|
||||||
|
(while (and (not (setq id (org-id-get)))
|
||||||
|
(not (bobp)))
|
||||||
|
(org-roam-up-heading-or-point-min))
|
||||||
|
(when id
|
||||||
|
(org-roam-populate
|
||||||
|
(org-roam-node-create :id id
|
||||||
|
:point (point))))))))))
|
||||||
node
|
node
|
||||||
(when assert
|
(when assert
|
||||||
(user-error "No node at point"))))
|
(user-error "No node at point"))))
|
||||||
|
Reference in New Issue
Block a user