branch: externals/org-transclusion commit 654c1a83f90d3f059d98afc0df6d5e7374c8f458 Author: Noboru Ota <m...@nobiot.com> Commit: Noboru Ota <m...@nobiot.com>
feat: suggestion for live-sync-buffers-src-lines Suggestion: instead of changing function 'live-sync-buffers-others-default', change 'live-sync-buffers-src-lines' Discussed here: https://github.com/nobiot/org-transclusion/pull/176#discussion_r1149612461 --- org-transclusion-src-lines.el | 20 +++++++++++++++----- org-transclusion.el | 39 ++++++++++++++------------------------- 2 files changed, 29 insertions(+), 30 deletions(-) diff --git a/org-transclusion-src-lines.el b/org-transclusion-src-lines.el index 381aad2a2b..a4d01919a9 100644 --- a/org-transclusion-src-lines.el +++ b/org-transclusion-src-lines.el @@ -17,7 +17,7 @@ ;; Author: Noboru Ota <m...@nobiot.com> ;; Created: 24 May 2021 -;; Last modified: 08 February 2023 +;; Last modified: 28 March 2023 ;;; Commentary: ;; This is an extension to `org-transclusion'. When active, it adds features @@ -292,10 +292,20 @@ The cons cell to be returned is in this format: This function uses TYPE to identify relevant files; it's meant for non-Org text files including program source files." (when (org-transclusion-src-lines-p type) - ;; Let's not allow live-sync when source is transcluded into a source block. - ;; (when (string= "src" type) - ;; (user-error "No live sync for src-code block")) - (org-transclusion-live-sync-buffers-others-default nil))) + (cl-destructuring-bind + (src-ov . tc-ov) (org-transclusion-live-sync-buffers-others-default nil) + (save-mark-and-excursion + (org-babel-mark-block) + (let* ((tc-ov-beg-mkr (get-text-property (point) 'org-transclusion-beg-mkr)) + (tc-ov-end-mkr (get-text-property (point) 'org-transclusion-end-mkr)) + (src-ov-length (- (overlay-end src-ov) (overlay-start src-ov))) + (region-length (- (region-end) (region-beginning))) + (overlay-has-extra-newline (= 1 (- region-length src-ov-length))) + (newline-offset (if overlay-has-extra-newline 1 0))) + (move-overlay tc-ov + (region-beginning) + (- (region-end) newline-offset)))) + (cons src-ov tc-ov)))) (provide 'org-transclusion-src-lines) ;;; org-transclusion-src-lines.el ends here diff --git a/org-transclusion.el b/org-transclusion.el index 68ff7633a0..9ceaaa004f 100644 --- a/org-transclusion.el +++ b/org-transclusion.el @@ -17,7 +17,7 @@ ;; Author: Noboru Ota <m...@nobiot.com> ;; Created: 10 October 2020 -;; Last modified: 05 March 2023 +;; Last modified: 28 March 2023 ;; URL: https://github.com/nobiot/org-transclusion ;; Keywords: org-mode, transclusion, writing @@ -1655,20 +1655,9 @@ This function is for non-Org text files." (overlay-start tc-pair) (overlay-end tc-pair) (overlay-buffer tc-pair))) - (tc-ov-beg-mkr (get-text-property (point) 'org-transclusion-beg-mkr)) - (tc-ov-end-mkr (get-text-property (point) 'org-transclusion-end-mkr)) - (tc-ov (if (org-in-src-block-p) - (with-current-buffer (marker-buffer tc-ov-beg-mkr) - (save-mark-and-excursion - (org-babel-mark-block) - (let* ((src-ov-length (- (overlay-end src-ov) (overlay-start src-ov))) - (region-length (- (region-end) (region-beginning))) - (overlay-has-extra-newline (= 1 (- region-length src-ov-length))) - (newline-offset (if overlay-has-extra-newline 1 0))) - (text-clone-make-overlay (region-beginning) - (- (region-end) newline-offset))))) - (text-clone-make-overlay tc-ov-beg-mkr - tc-ov-end-mkr)))) + (tc-ov (text-clone-make-overlay + (get-text-property (point) 'org-transclusion-beg-mkr) + (get-text-property (point) 'org-transclusion-end-mkr)))) (cons src-ov tc-ov))) ;;----------------------------------------------------------------------------- @@ -1687,16 +1676,16 @@ ensure the settings revert to the user's setting prior to ;; Ensure this happens only once until deactivation (unless (memq 'org-transclusion-type yank-excluded-properties) (let ((excluded-props)) - ;; Return t if 'wrap-prefix is already in `yank-excluded-properties' - ;; if not push to elm the list - ;; wrap-prefix, etc. - (dolist (sym org-transclusion-yank-excluded-properties) - (if (memq sym yank-excluded-properties) - (push sym org-transclusion-yank-remember-user-excluded-props) - ;; Avoid duplicate - (push sym excluded-props))) - (setq yank-excluded-properties - (append yank-excluded-properties excluded-props))))) + ;; Return t if 'wrap-prefix is already in `yank-excluded-properties' + ;; if not push to elm the list + ;; wrap-prefix, etc. + (dolist (sym org-transclusion-yank-excluded-properties) + (if (memq sym yank-excluded-properties) + (push sym org-transclusion-yank-remember-user-excluded-props) + ;; Avoid duplicate + (push sym excluded-props))) + (setq yank-excluded-properties + (append yank-excluded-properties excluded-props))))) (defun org-transclusion-yank-excluded-properties-remove () "Remove transclusion-specific text props from `yank-excluded-properties'.