Просмотр исходного кода

improve export of inline code blocks

* lisp/ob-exp.el (org-babel-exp-inline-src-blocks): Save match data
  around `org-babel-exp-do-export' which now searches in this case.
  (org-babel-exp-results): Position the point in the inline source
  block during export evaluation.
* lisp/ob.el (org-babel-insert-result): More readable code.
Eric Schulte 13 лет назад
Родитель
Сommit
cb449a672e
2 измененных файлов с 13 добавлено и 4 удалено
  1. 11 2
      lisp/ob-exp.el
  2. 2 2
      lisp/ob.el

+ 11 - 2
lisp/ob-exp.el

@@ -139,7 +139,8 @@ options and are taken from `org-babel-default-inline-header-args'."
 		      (org-babel-expand-noweb-references
 		       info (get-file-buffer org-current-export-file))
 		    (nth 1 info)))
-	    (let ((code-replacement (org-babel-exp-do-export info 'inline)))
+	    (let ((code-replacement (save-match-data
+				      (org-babel-exp-do-export info 'inline))))
 	      (if code-replacement
 		  (replace-match code-replacement nil nil nil 1)
 		(org-babel-examplize-region (match-beginning 1) (match-end 1))
@@ -257,7 +258,15 @@ inhibit insertion of results into the buffer."
 		    (nth 2 info)
 		    `((:results . ,(if silent "silent" "replace")))))))
 	  (cond
-	   ((or (equal type 'block) (equal type 'inline))
+	   ((equal type 'block)
+	    (org-babel-execute-src-block nil info))
+	   ((equal type 'inline)
+	    ;; position the point on the inline source block allowing
+	    ;; `org-babel-insert-result' to check that the block is
+	    ;; inline
+	    (re-search-backward "[ \f\t\n\r\v]" nil t)
+	    (re-search-forward org-babel-inline-src-block-regexp nil t)
+	    (re-search-backward "src_" nil t)
 	    (org-babel-execute-src-block nil info))
 	   ((equal type 'lob)
 	    (save-excursion

+ 2 - 2
lisp/ob.el

@@ -1572,8 +1572,8 @@ code ---- the results are extracted in the syntax of the source
     (save-excursion
       (let* ((inlinep
 	      (save-excursion
-		(or (= (point) (point-at-bol))
-		    (re-search-backward "[ \f\t\n\r\v]" nil t))
+		(unless (= (point) (point-at-bol)) ;; move before inline block
+		  (re-search-backward "[ \f\t\n\r\v]" nil t))
 		(when (or (looking-at org-babel-inline-src-block-regexp)
 			  (looking-at org-babel-inline-lob-one-liner-regexp))
 		  (goto-char (match-end 0))