From 3318b50a397d0dfe23b5237246fdde39fe1e5881 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 9 Mar 2019 01:26:26 +0100 Subject: [PATCH] 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. --- lisp/ob-tangle.el | 20 +++++++------------- lisp/ol.el | 29 +++-------------------------- lisp/org-compat.el | 2 +- 3 files changed, 11 insertions(+), 40 deletions(-) diff --git a/lisp/ob-tangle.el b/lisp/ob-tangle.el index 59fb2e8e8..dcdbc681b 100644 --- a/lisp/ob-tangle.el +++ b/lisp/ob-tangle.el @@ -39,10 +39,10 @@ (declare-function org-element-at-point "org-element" ()) (declare-function org-element-type "org-element" (element)) (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-link-escape "org" (text &optional table merge)) (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 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)))) ;; de-tangling functions -(defvar org-link-analytic-bracket-re) (defun org-babel-detangle (&optional source-code-file) "Propagate changes in source file back original to Org file. 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)) (goto-char (point-min)) (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 - (concat " " (regexp-quote (match-string 5)) " ends here")) + (concat " " (regexp-quote (match-string 3)) " ends here")) (setq end (match-end 0)) (forward-line -1) (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." (interactive) (let ((mid (point)) - start body-start end - target-buffer target-char link path block-name body) + start body-start end target-buffer target-char link block-name body) (save-window-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 (and (setq start (line-beginning-position)) (setq body-start (line-beginning-position 2)) (setq link (match-string 0)) - (setq path (match-string 3)) - (setq block-name (match-string 5)) + (setq block-name (match-string 3)) (save-excursion (save-match-data (re-search-forward @@ -562,12 +559,9 @@ which enable the original code blocks to be found." (unless (and start (< start mid) (< mid end)) (error "Not in tangled code")) (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. (org-link-open-from-string link) + (setq target-buffer (current-buffer)) (if (string-match "[^ \t\n\r]:\\([[:digit:]]+\\)" block-name) (let ((n (string-to-number (match-string 1 block-name)))) (if (org-before-first-heading-p) (goto-char (point-min)) diff --git a/lisp/ol.el b/lisp/ol.el index b97522a4c..46231530e 100644 --- a/lisp/ol.el +++ b/lisp/ol.el @@ -489,15 +489,6 @@ This is the list that is used for internal purposes.") (defvar org-link-bracket-re nil "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 "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<>,.;() ]\\)") org-link-bracket-re "\\[\\[\\([^][]+\\)\\]\\(\\[\\([^][]+\\)\\]\\)?\\]" - org-link-analytic-bracket-re - (concat - "\\[\\[" - "\\(" types-re ":\\)?" - "\\([^]]+\\)" - "\\]" - "\\(\\[" "\\([^]]+\\)" "\\]\\)?" - "\\]") org-link-any-re (concat "\\(" org-link-bracket-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." (save-match-data (replace-regexp-in-string - org-link-analytic-bracket-re - (lambda (m) - (if (match-end 5) (match-string 5 m) - (concat (match-string 1 m) (match-string 3 m)))) + org-link-bracket-re + (lambda (m) (or (match-string 3 m) (match-string 1 m))) s nil t))) (defun org-link-add-angle-brackets (s) @@ -1613,11 +1594,7 @@ non-nil." desc (or desc cpltxt)) (cond ((not desc)) ((equal desc "NONE") (setq desc nil)) - (t (setq desc - (replace-regexp-in-string - org-link-analytic-bracket-re - (lambda (m) (or (match-string 5 m) (match-string 3 m))) - desc)))) + (t (setq desc (org-link-display-format desc)))) ;; Return the link (if (not (and interactive? link)) (or agenda-link (and link (org-link-make-string link desc))) diff --git a/lisp/org-compat.el b/lisp/org-compat.el index 0508487e4..65980ad9f 100644 --- a/lisp/org-compat.el +++ b/lisp/org-compat.el @@ -517,7 +517,7 @@ use of this function is for the stuck project list." 'org-link-bracket-re "Org 9.3") (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 'org-link-any-re "Org 9.3")