branch: externals/org-gnosis
commit c019955b0ba2f4adcaaad0d87e7377911c1d7575
Author: Thanos Apollo <[email protected]>
Commit: Thanos Apollo <[email protected]>

    [fix] insert: When called with selected region, use it as desc.
    
    + When called with a selected region, use it as desc
    + Simplify code
---
 org-gnosis.el | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/org-gnosis.el b/org-gnosis.el
index 32ab2c65f8..c542d51f48 100644
--- a/org-gnosis.el
+++ b/org-gnosis.el
@@ -524,23 +524,22 @@ If called with ARG, prompt for custom link description.
 If JOURNAL-P is non-nil, retrieve/create node as a journal entry."
   (interactive "P")
   (let* ((table (if journal-p 'journal 'nodes))
-        (node (org-gnosis--find "Select gnosis node: "
-                                (org-gnosis-select '[title tags] table)
-                                (org-gnosis-select 'title table)))
-        (id (concat "id:" (car (org-gnosis-select 'id table `(= ,node title) 
t)))))
-    (cond ((< (length id) 4) ; if less that 4 then `org-gnosis-select' 
returned nil, (id:)
-          (save-window-excursion
-            (org-gnosis--create-file
-             node (if journal-p org-gnosis-journal-dir org-gnosis-dir))
-            ;; Save buffer to store new node id
-            (save-buffer)
-            (setf id (concat
-                      "id:"
-                      (car (org-gnosis-select 'id table `(= ,node title) t)))))
-          (org-insert-link nil id node)
-          (message "Created new node: %s" node))
-         (t (org-insert-link nil id (if arg (read-string "Description: ") 
node))))))
-
+         (node (org-gnosis--find "Select gnosis node: "
+                                 (org-gnosis-select '[title tags] table)
+                                 (org-gnosis-select 'title table)))
+         (id-result (org-gnosis-select 'id table `(= ,node title) t))
+         (id (and id-result (car id-result)))
+         (desc (cond ((use-region-p)
+                      (buffer-substring-no-properties (region-beginning) 
(region-end)))
+                     (arg (read-string "Description: "))
+                     (t node))))
+    (unless id
+      (save-window-excursion
+        (org-gnosis--create-file node (if journal-p org-gnosis-journal-dir 
org-gnosis-dir))
+        (save-buffer)
+        (setf id (car (org-gnosis-select 'id table `(= ,node title) t)))))
+    (org-insert-link nil (format "id:%s" id) desc)
+    (unless id (message "Created new node: %s" node))))
 
 (defun org-gnosis-insert-filetag (&optional tag)
   "Insert TAG as filetag."

Reply via email to