Deprecate `org-link-analytic-bracket-re'

* lisp/ob-tangle.el (org-babel-detangle):
(org-babel-tangle-jump-to-org): Use `org-link-bracket-re'.
* lisp/ol.el (org-link-analytic-bracket-re): Remove variable.
(org-link-make-regexps): Do not set it.
(org-link-display-format): Use `org-link-bracket-re'
(org-link-trim-scheme): New function.
(org-store-link): Remove code duplication.
This commit is contained in:
Nicolas Goaziou 2019-03-09 01:26:26 +01:00
parent 4ff8947ea8
commit 3318b50a39
3 changed files with 11 additions and 40 deletions

View File

@ -39,10 +39,10 @@
(declare-function org-element-at-point "org-element" ()) (declare-function org-element-at-point "org-element" ())
(declare-function org-element-type "org-element" (element)) (declare-function org-element-type "org-element" (element))
(declare-function org-heading-components "org" ()) (declare-function org-heading-components "org" ())
(declare-function org-id-find "org-id" (id &optional markerp))
(declare-function org-in-commented-heading-p "org" (&optional no-inheritance)) (declare-function org-in-commented-heading-p "org" (&optional no-inheritance))
(declare-function org-link-escape "org" (text &optional table merge)) (declare-function org-link-escape "org" (text &optional table merge))
(declare-function org-link-open-from-string "ol" (s &optional arg)) (declare-function org-link-open-from-string "ol" (s &optional arg))
(declare-function org-link-trim-scheme "ol" (uri))
(declare-function org-store-link "org" (arg &optional interactive?)) (declare-function org-store-link "org" (arg &optional interactive?))
(declare-function outline-previous-heading "outline" ()) (declare-function outline-previous-heading "outline" ())
@ -516,7 +516,6 @@ non-nil, return the full association list to be used by
(org-fill-template org-babel-tangle-comment-format-end link-data)))) (org-fill-template org-babel-tangle-comment-format-end link-data))))
;; de-tangling functions ;; de-tangling functions
(defvar org-link-analytic-bracket-re)
(defun org-babel-detangle (&optional source-code-file) (defun org-babel-detangle (&optional source-code-file)
"Propagate changes in source file back original to Org file. "Propagate changes in source file back original to Org file.
This requires that code blocks were tangled with link comments This requires that code blocks were tangled with link comments
@ -526,9 +525,9 @@ which enable the original code blocks to be found."
(when source-code-file (find-file source-code-file)) (when source-code-file (find-file source-code-file))
(goto-char (point-min)) (goto-char (point-min))
(let ((counter 0) new-body end) (let ((counter 0) new-body end)
(while (re-search-forward org-link-analytic-bracket-re nil t) (while (re-search-forward org-link-bracket-re nil t)
(when (re-search-forward (when (re-search-forward
(concat " " (regexp-quote (match-string 5)) " ends here")) (concat " " (regexp-quote (match-string 3)) " ends here"))
(setq end (match-end 0)) (setq end (match-end 0))
(forward-line -1) (forward-line -1)
(save-excursion (save-excursion
@ -542,17 +541,15 @@ which enable the original code blocks to be found."
"Jump from a tangled code file to the related Org mode file." "Jump from a tangled code file to the related Org mode file."
(interactive) (interactive)
(let ((mid (point)) (let ((mid (point))
start body-start end start body-start end target-buffer target-char link block-name body)
target-buffer target-char link path block-name body)
(save-window-excursion (save-window-excursion
(save-excursion (save-excursion
(while (and (re-search-backward org-link-analytic-bracket-re nil t) (while (and (re-search-backward org-link-bracket-re nil t)
(not ; ever wider searches until matching block comments (not ; ever wider searches until matching block comments
(and (setq start (line-beginning-position)) (and (setq start (line-beginning-position))
(setq body-start (line-beginning-position 2)) (setq body-start (line-beginning-position 2))
(setq link (match-string 0)) (setq link (match-string 0))
(setq path (match-string 3)) (setq block-name (match-string 3))
(setq block-name (match-string 5))
(save-excursion (save-excursion
(save-match-data (save-match-data
(re-search-forward (re-search-forward
@ -562,12 +559,9 @@ which enable the original code blocks to be found."
(unless (and start (< start mid) (< mid end)) (unless (and start (< start mid) (< mid end))
(error "Not in tangled code")) (error "Not in tangled code"))
(setq body (buffer-substring body-start end))) (setq body (buffer-substring body-start end)))
(when (string-match "::" path)
(setq path (substring path 0 (match-beginning 0))))
(find-file (or (car (org-id-find path)) path))
(setq target-buffer (current-buffer))
;; Go to the beginning of the relative block in Org file. ;; Go to the beginning of the relative block in Org file.
(org-link-open-from-string link) (org-link-open-from-string link)
(setq target-buffer (current-buffer))
(if (string-match "[^ \t\n\r]:\\([[:digit:]]+\\)" block-name) (if (string-match "[^ \t\n\r]:\\([[:digit:]]+\\)" block-name)
(let ((n (string-to-number (match-string 1 block-name)))) (let ((n (string-to-number (match-string 1 block-name))))
(if (org-before-first-heading-p) (goto-char (point-min)) (if (org-before-first-heading-p) (goto-char (point-min))

View File

@ -489,15 +489,6 @@ This is the list that is used for internal purposes.")
(defvar org-link-bracket-re nil (defvar org-link-bracket-re nil
"Matches a link in double brackets.") "Matches a link in double brackets.")
(defvar org-link-analytic-bracket-re nil
"Regular expression used to analyze links.
Here is what the match groups contain after a match:
1: http:
2: http
3: path
4: [desc]
5: desc")
(defvar org-link-any-re nil (defvar org-link-any-re nil
"Regular expression matching any link.") "Regular expression matching any link.")
@ -760,14 +751,6 @@ This should be called after the variable `org-link-parameters' has changed."
;; "\\([^]\t\n\r<>() ]+[^]\t\n\r<>,.;() ]\\)") ;; "\\([^]\t\n\r<>() ]+[^]\t\n\r<>,.;() ]\\)")
org-link-bracket-re org-link-bracket-re
"\\[\\[\\([^][]+\\)\\]\\(\\[\\([^][]+\\)\\]\\)?\\]" "\\[\\[\\([^][]+\\)\\]\\(\\[\\([^][]+\\)\\]\\)?\\]"
org-link-analytic-bracket-re
(concat
"\\[\\["
"\\(" types-re ":\\)?"
"\\([^]]+\\)"
"\\]"
"\\(\\[" "\\([^]]+\\)" "\\]\\)?"
"\\]")
org-link-any-re org-link-any-re
(concat "\\(" org-link-bracket-re "\\)\\|\\(" (concat "\\(" org-link-bracket-re "\\)\\|\\("
org-link-angle-re "\\)\\|\\(" org-link-angle-re "\\)\\|\\("
@ -1223,10 +1206,8 @@ of matched result, which is either `dedicated' or `fuzzy'."
If there is no description, use the link target." If there is no description, use the link target."
(save-match-data (save-match-data
(replace-regexp-in-string (replace-regexp-in-string
org-link-analytic-bracket-re org-link-bracket-re
(lambda (m) (lambda (m) (or (match-string 3 m) (match-string 1 m)))
(if (match-end 5) (match-string 5 m)
(concat (match-string 1 m) (match-string 3 m))))
s nil t))) s nil t)))
(defun org-link-add-angle-brackets (s) (defun org-link-add-angle-brackets (s)
@ -1613,11 +1594,7 @@ non-nil."
desc (or desc cpltxt)) desc (or desc cpltxt))
(cond ((not desc)) (cond ((not desc))
((equal desc "NONE") (setq desc nil)) ((equal desc "NONE") (setq desc nil))
(t (setq desc (t (setq desc (org-link-display-format desc))))
(replace-regexp-in-string
org-link-analytic-bracket-re
(lambda (m) (or (match-string 5 m) (match-string 3 m)))
desc))))
;; Return the link ;; Return the link
(if (not (and interactive? link)) (if (not (and interactive? link))
(or agenda-link (and link (org-link-make-string link desc))) (or agenda-link (and link (org-link-make-string link desc)))

View File

@ -517,7 +517,7 @@ use of this function is for the stuck project list."
'org-link-bracket-re "Org 9.3") 'org-link-bracket-re "Org 9.3")
(define-obsolete-variable-alias 'org-bracket-link-analytic-regexp (define-obsolete-variable-alias 'org-bracket-link-analytic-regexp
'org-link-analytic-bracket-re "Org 9.3") 'org-link-bracket-re "Org 9.3")
(define-obsolete-variable-alias 'org-any-link-re (define-obsolete-variable-alias 'org-any-link-re
'org-link-any-re "Org 9.3") 'org-link-any-re "Org 9.3")