branch: elpa/gptel
commit 03ca13822706cfaafb5804c418d49e85390101ea
Author: Karthik Chikmagalur <karthikchikmaga...@gmail.com>
Commit: Karthik Chikmagalur <karthikchikmaga...@gmail.com>

    gptel-org: Prefer org-element-parent to org-element-lineage
    
    * gptel-org.el (gptel-org--element-end, gptel-org--element-parent,
    gptel-org--link-standalone-p): Use `org-element-parent' instead of
    `org-element-lineage' when checking/looking for links to files in
    chat buffers.  It returns/conses less data and covers what we
    need.  (This change is made on the advisement of Ihor Radchenko.)
---
 gptel-org.el | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/gptel-org.el b/gptel-org.el
index 2f26df9f10b..5269b5eb4e8 100644
--- a/gptel-org.el
+++ b/gptel-org.el
@@ -93,14 +93,19 @@ of Org."
   (if (fboundp 'org-element-begin)
       (progn (declare-function org-element-begin "org-element")
              (declare-function org-element-end "org-element")
+             (declare-function org-element-parent "org-element")
              (defalias 'gptel-org--element-begin 'org-element-begin)
-             (defalias 'gptel-org--element-end 'org-element-end))
-    (defun gptel-org--element-begin (node)
+             (defalias 'gptel-org--element-end 'org-element-end)
+             (defalias 'gptel-org--element-parent 'org-element-parent))
+    (defsubst gptel-org--element-begin (node)
       "Get `:begin' property of NODE."
       (org-element-property :begin node))
-    (defun gptel-org--element-end (node)
+    (defsubst gptel-org--element-end (node)
       "Get `:end' property of NODE."
-      (org-element-property :end node))))
+      (org-element-property :end node))
+    (defsubst gptel-org--element-parent (node)
+      "Return `:parent' property of NODE."
+      (org-element-property :parent node))))
 
 
 ;;; User options
@@ -397,8 +402,8 @@ for inclusion into the user prompt for the gptel request."
 
 (defun gptel-org--link-standalone-p (object)
   "Check if link OBJECT is on a line by itself."
-  ;; Specify ancestor TYPES as list (#245)
-  (when-let* ((par (org-element-lineage object '(paragraph))))
+  (when-let* ((par (gptel-org--element-parent object))
+              ((eq (org-element-type par) 'paragraph)))
     (and (= (gptel-org--element-begin object)
             (save-excursion
               (goto-char (org-element-property :contents-begin par))

Reply via email to