branch: externals/denote commit 3ea15caf42e8f5d17475e87dc41ab894753acea7 Author: Protesilaos Stavrou <i...@protesilaos.com> Commit: Protesilaos Stavrou <i...@protesilaos.com>
Define denote-get-identifier-at-point function I am implementing this in response to a question by Alan Schmitt in issue 400: <https://github.com/protesilaos/denote/issues/400>. --- README.org | 4 ++++ denote.el | 11 +++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/README.org b/README.org index 23d9330fb0..0d31076686 100644 --- a/README.org +++ b/README.org @@ -4682,6 +4682,10 @@ might change them without further notice. + Function ~denote-get-path-by-id~ :: Return absolute path of =ID= string in ~denote-directory-files~. +#+findex: denote-get-identifier-at-point ++ Function ~denote-get-identifier-at-point~ :: Return the identifier + at point or =POINT=. [ Part of {{{development-version}}}. ] + #+findex: denote-barf-duplicate-id + Function ~denote-barf-duplicate-id~ :: Throw a ~user-error~ if =IDENTIFIER= already exists. diff --git a/denote.el b/denote.el index 495690dfa3..51212e442f 100644 --- a/denote.el +++ b/denote.el @@ -4218,8 +4218,15 @@ Implementation based on the function `org-activate-links'." (throw :exit t)))))) ; signal success nil)) -(defun denote--get-link-file-path-at-point () - "Return link to the Denote file path at point. +(defun denote-get-identifier-at-point (&optional point) + "Return the Denote identifier at point or optional POINT." + (when-let ((position (or point (point))) + (_ (eq (get-text-property position 'face) 'denote-faces-link))) + (or (get-text-property position 'denote-link-id) + (let ((property (get-text-property position 'help-echo))) + (string-match denote-id-regexp property) + (match-string-no-properties 0 property))))) + (defun denote--get-link-file-path-at-point (&optional point) "Return link to the Denote file path at point or optional POINT. To be used as a `thing-at' provider."