forked from mirrors/org-mode
Fix storing coderef link on when a code ref already exists
* lisp/org.el (org-store-link): Fix storing coderef link on when a code ref already exists.
This commit is contained in:
parent
6382a6bbb3
commit
eb8041ef82
38
lisp/org.el
38
lisp/org.el
|
@ -9242,23 +9242,31 @@ non-nil."
|
||||||
(setq desc (or (plist-get org-store-link-plist :description)
|
(setq desc (or (plist-get org-store-link-plist :description)
|
||||||
link)))
|
link)))
|
||||||
|
|
||||||
;; Store a link from a source code buffer.
|
;; Store a link from a remote editing buffer.
|
||||||
((org-src-edit-buffer-p)
|
((org-src-edit-buffer-p)
|
||||||
(let ((coderef-format (org-src-coderef-format)))
|
(let ((coderef-format (org-src-coderef-format)))
|
||||||
(cond ((org-match-line (org-src-coderef-regexp coderef-format))
|
(cond
|
||||||
(setq link (format "(%s)" (match-string-no-properties 3))))
|
;; A code reference exists. Use it.
|
||||||
(interactive?
|
((save-excursion
|
||||||
(let ((label (read-string "Code line label: ")))
|
(beginning-of-line)
|
||||||
(end-of-line)
|
(re-search-forward (org-src-coderef-regexp coderef-format)
|
||||||
(setq link (format coderef-format label))
|
(line-end-position)
|
||||||
(let ((gc (- 79 (length link))))
|
t))
|
||||||
(if (< (current-column) gc)
|
(setq link (format "(%s)" (match-string-no-properties 3))))
|
||||||
(org-move-to-column gc t)
|
;; No code reference. Create a new one then store the link
|
||||||
(insert " ")))
|
;; to it, but only in the function is called interactively.
|
||||||
(insert link)
|
(interactive?
|
||||||
(setq link (concat "(" label ")"))
|
(end-of-line)
|
||||||
(setq desc nil)))
|
(let* ((label (read-string "Code line label: "))
|
||||||
(t (setq link nil)))))
|
(reference (format coderef-format label))
|
||||||
|
(gc (- 79 (length link))))
|
||||||
|
(if (< (current-column) gc)
|
||||||
|
(org-move-to-column gc t)
|
||||||
|
(insert " "))
|
||||||
|
(insert reference))
|
||||||
|
(setq link (format "(%s)" label))
|
||||||
|
(setq desc nil))
|
||||||
|
(t (setq link nil)))))
|
||||||
|
|
||||||
;; We are in the agenda, link to referenced location
|
;; We are in the agenda, link to referenced location
|
||||||
((equal (bound-and-true-p org-agenda-buffer-name) (buffer-name))
|
((equal (bound-and-true-p org-agenda-buffer-name) (buffer-name))
|
||||||
|
|
Loading…
Reference in a new issue