emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [BUG] org-element-context doesn't recognize link inside property drawer [9.6.6 (release_9.6.6 @ /usr/local/share/emacs/29.1/lisp/org/)]
@ 2023-09-22 18:11 Gustavo Barros
  2023-09-22 18:48 ` Gustavo Barros
  2023-09-23  8:29 ` Ihor Radchenko
  0 siblings, 2 replies; 4+ messages in thread
From: Gustavo Barros @ 2023-09-22 18:11 UTC (permalink / raw)
  To: org-mode list

Hi All,

When a link is placed as a property value, `org-element-context' does
not recognize it as a link.
(Setting `eval-expression-print-level' and
`eval-expression-print-length' to nil).

Consider the following document:

#+begin_src org
,* Heading
:PROPERTIES:
:LINK: [[https://orgmode.org/][Org mode for Emacs]]
:END:
#+end_src

Placing point on the link and calling `(org-element-context)' returns:

#+begin_src emacs-lisp
(node-property
 (:key "LINK"
  :value "[[https://orgmode.org/][Org mode for Emacs]]"
  :begin 24
  :end 76
  :post-blank 0
  :post-affiliated 24
  :mode node-property
  :granularity element
  :cached t
  :parent
  (property-drawer
   (:begin 11
    :end 82
    :contents-begin 24
    :contents-end 76
    :post-blank 0
    :post-affiliated 11
    :mode planning
    :granularity element
    :cached t
    :parent
    (section
     (:begin 11
      :end 82
      :contents-begin 11
      :contents-end 82
      :robust-begin 11
      :robust-end 80
      :post-blank 0
      :post-affiliated 11
      :mode section
      :granularity element
      :cached t
      :parent
      (headline
       (:raw-value "Heading"
        :begin 1
        :end 82
        :pre-blank 0
        :contents-begin 11
        :contents-end 82
        :robust-begin nil
        :robust-end nil
        :level 1
        :priority nil
        :tags nil
        :todo-keyword nil
        :todo-type nil
        :post-blank 0
        :footnote-section-p nil
        :archivedp nil
        :commentedp nil
        :post-affiliated 1
        :LINK "[[https://orgmode.org/][Org mode for Emacs]]"
        :title "Heading"
        :mode first-section
        :granularity element
        :cached t
        :parent
        (org-data
         (:begin 1
          :contents-begin 1
          :contents-end 82
          :end 82
          :robust-begin 3
          :robust-end 80
          :post-blank 0
          :post-affiliated 1
          :path "~/test.org"
          :mode org-data
          :CATEGORY "test"
          :cached t))))))))))
#+end_src

In particular, the "link" element is not present, as would be the case
if the exact same link were not inside the property drawer. On the
other hand, the link is active (fontified, works, etc.). Thus,
`org-element.el` and `ol.el` seem to disagree as to what that part of
the buffer actually is.

Best regards,
Gustavo.


Emacs  : GNU Emacs 29.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version
3.24.33, cairo version 1.16.0)
 of 2023-07-30
Package: Org mode version 9.6.6 (release_9.6.6 @
/usr/local/share/emacs/29.1/lisp/org/)

current state:
==============
(setq
 org-link-elisp-confirm-function 'yes-or-no-p
 org-bibtex-headline-format-function #[257 "\300 \236A\207" [:title] 3
"\n\n(fn ENTRY)"]
 org-persist-after-read-hook '(org-element--cache-persist-after-read)
 org-export-before-parsing-hook '(org-attach-expand-links)
 org-cycle-tab-first-hook '(org-babel-hide-result-toggle-maybe
                org-babel-header-arg-expand)
 org-archive-hook '(org-attach-archive-delete-maybe)
 org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-show-empty-lines
          org-cycle-optimize-window-after-visibility-change
          org-cycle-display-inline-images)
 org-persist-before-read-hook '(org-element--cache-persist-before-read)
 org-mode-hook '(#[0 "\300\301\302\303\304$\207"
           [add-hook change-major-mode-hook org-fold-show-all append
            local]
           5]
         #[0 "\300\301\302\303\304$\207"
           [add-hook change-major-mode-hook org-babel-show-result-all
            append local]
           5]
         org-babel-result-hide-spec org-babel-hide-all-hashes)
 org-confirm-shell-link-function 'yes-or-no-p
 outline-isearch-open-invisible-function 'outline-isearch-open-invisible
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-src-mode-hook '(org-src-babel-configure-edit-buffer
             org-src-mode-configure-edit-buffer)
 org-confirm-elisp-link-function 'yes-or-no-p
 org-speed-command-hook '(org-speed-command-activate
              org-babel-speed-command-activate)
 org-persist-directory "/tmp/org-persist-DRjSU9"
 org-fold-core-isearch-open-function 'org-fold--isearch-reveal
 org-persist-before-write-hook '(org-element--cache-persist-before-write)
 org-tab-first-hook '(org-babel-hide-result-toggle-maybe
              org-babel-header-arg-expand)
 org-link-shell-confirm-function 'yes-or-no-p
 org-babel-pre-tangle-hook '(save-buffer)
 org-agenda-loop-over-headlines-in-active-region nil
 org-occur-hook '(org-first-headline-recenter)
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-link-parameters '(("attachment" :follow org-attach-follow :complete
            org-attach-complete-link)
               ("id" :follow org-id-open)
               ("eww" :follow org-eww-open :store org-eww-store-link)
               ("rmail" :follow org-rmail-open :store
            org-rmail-store-link)
               ("mhe" :follow org-mhe-open :store org-mhe-store-link)
               ("irc" :follow org-irc-visit :store org-irc-store-link
            :export org-irc-export)
               ("info" :follow org-info-open :export org-info-export
            :store org-info-store-link :insert-description
            org-info-description-as-command)
               ("gnus" :follow org-gnus-open :store
            org-gnus-store-link)
               ("docview" :follow org-docview-open :export
            org-docview-export :store org-docview-store-link)
               ("bibtex" :follow org-bibtex-open :store
            org-bibtex-store-link)
               ("bbdb" :follow org-bbdb-open :export org-bbdb-export
            :complete org-bbdb-complete-link :store
            org-bbdb-store-link)
               ("w3m" :store org-w3m-store-link)
               ("doi" :follow org-link-doi-open :export
            org-link-doi-export)
               ("file+sys") ("file+emacs")
               ("shell" :follow org-link--open-shell)
               ("news" :follow
            #[514 "\301\300\302 Q \"\207"
              ["news" browse-url ":"] 6 "\n\n(fn URL ARG)"]
            )
               ("mailto" :follow
            #[514 "\301\300\302 Q \"\207"
              ["mailto" browse-url ":"] 6 "\n\n(fn URL ARG)"]
            )
               ("https" :follow
            #[514 "\301\300\302 Q \"\207"
              ["https" browse-url ":"] 6 "\n\n(fn URL ARG)"]
            )
               ("http" :follow
            #[514 "\301\300\302 Q \"\207"
              ["http" browse-url ":"] 6 "\n\n(fn URL ARG)"]
            )
               ("ftp" :follow
            #[514 "\301\300\302 Q \"\207" ["ftp" browse-url ":"]
              6 "\n\n(fn URL ARG)"]
            )
               ("help" :follow org-link--open-help :store
            org-link--store-help)
               ("file" :complete org-link-complete-file)
               ("elisp" :follow org-link--open-elisp))
 org-metaup-hook '(org-babel-load-in-session-maybe)
 )


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [BUG] org-element-context doesn't recognize link inside property drawer [9.6.6 (release_9.6.6 @ /usr/local/share/emacs/29.1/lisp/org/)]
  2023-09-22 18:11 [BUG] org-element-context doesn't recognize link inside property drawer [9.6.6 (release_9.6.6 @ /usr/local/share/emacs/29.1/lisp/org/)] Gustavo Barros
@ 2023-09-22 18:48 ` Gustavo Barros
  2023-09-23  8:29 ` Ihor Radchenko
  1 sibling, 0 replies; 4+ messages in thread
From: Gustavo Barros @ 2023-09-22 18:48 UTC (permalink / raw)
  To: org-mode list

On Fri, 22 Sept 2023 at 15:11, Gustavo Barros <gusbrs.2016@gmail.com> wrote:

Sorry, some poor copy-paste from my part on the original report. The
following...

> (Setting `eval-expression-print-level' and
> `eval-expression-print-length' to nil).

... was meant to come after:

> Placing point on the link and calling `(org-element-context)' returns:

It doesn't make sense where it was placed.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [BUG] org-element-context doesn't recognize link inside property drawer [9.6.6 (release_9.6.6 @ /usr/local/share/emacs/29.1/lisp/org/)]
  2023-09-22 18:11 [BUG] org-element-context doesn't recognize link inside property drawer [9.6.6 (release_9.6.6 @ /usr/local/share/emacs/29.1/lisp/org/)] Gustavo Barros
  2023-09-22 18:48 ` Gustavo Barros
@ 2023-09-23  8:29 ` Ihor Radchenko
  2023-09-23 10:19   ` Gustavo Barros
  1 sibling, 1 reply; 4+ messages in thread
From: Ihor Radchenko @ 2023-09-23  8:29 UTC (permalink / raw)
  To: Gustavo Barros; +Cc: org-mode list

Gustavo Barros <gusbrs.2016@gmail.com> writes:

> When a link is placed as a property value, `org-element-context' does
> not recognize it as a link.

It is expected and intentional: https://list.orgmode.org/orgmode/877d8llha9.fsf@nicolasgoaziou.fr/.

> In particular, the "link" element is not present, as would be the case
> if the exact same link were not inside the property drawer. On the
> other hand, the link is active (fontified, works, etc.). Thus,
> `org-element.el` and `ol.el` seem to disagree as to what that part of
> the buffer actually is.

This is intentional. org-agenda and fontification deliberately recognize
links in more contexts compared to org-element and export. Same for
timestamps. For example, see `org-at-timestamp-p'.

For ol.el, the links are open inside property drawer for convenience.
Below is a code responsible for this case from `org-open-at-point':

       ;; No valid link at point.  For convenience, look if something
       ;; looks like a link under point in some specific places.
       ((memq type '(comment comment-block node-property keyword))
	(call-interactively #'org-open-at-point-global))

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [BUG] org-element-context doesn't recognize link inside property drawer [9.6.6 (release_9.6.6 @ /usr/local/share/emacs/29.1/lisp/org/)]
  2023-09-23  8:29 ` Ihor Radchenko
@ 2023-09-23 10:19   ` Gustavo Barros
  0 siblings, 0 replies; 4+ messages in thread
From: Gustavo Barros @ 2023-09-23 10:19 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: org-mode list

Hi Ihor,

On Sat, 23 Sept 2023 at 05:28, Ihor Radchenko <yantar92@posteo.net> wrote:
>
> Gustavo Barros <gusbrs.2016@gmail.com> writes:
>
> > When a link is placed as a property value, `org-element-context' does
> > not recognize it as a link.
>
> It is expected and intentional: https://list.orgmode.org/orgmode/877d8llha9.fsf@nicolasgoaziou.fr/.
>
> > In particular, the "link" element is not present, as would be the case
> > if the exact same link were not inside the property drawer. On the
> > other hand, the link is active (fontified, works, etc.). Thus,
> > `org-element.el` and `ol.el` seem to disagree as to what that part of
> > the buffer actually is.
>
> This is intentional. org-agenda and fontification deliberately recognize
> links in more contexts compared to org-element and export. Same for
> timestamps. For example, see `org-at-timestamp-p'.
>
> For ol.el, the links are open inside property drawer for convenience.
> Below is a code responsible for this case from `org-open-at-point':
>
>        ;; No valid link at point.  For convenience, look if something
>        ;; looks like a link under point in some specific places.
>        ((memq type '(comment comment-block node-property keyword))
>         (call-interactively #'org-open-at-point-global))

I didn't know that. Thanks for the detailed answer.

Best,
Gustavo.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-09-23 10:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-22 18:11 [BUG] org-element-context doesn't recognize link inside property drawer [9.6.6 (release_9.6.6 @ /usr/local/share/emacs/29.1/lisp/org/)] Gustavo Barros
2023-09-22 18:48 ` Gustavo Barros
2023-09-23  8:29 ` Ihor Radchenko
2023-09-23 10:19   ` Gustavo Barros

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).