From 41606f5369b6e5246204ac62d9e081baa2928176 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 13 Apr 2020 15:23:16 -0400 Subject: [PATCH] Only realign tables in +org-realign-table-maybe-h Don't recalculate formulas. --- modules/lang/org/autoload/org-tables.el | 3 +-- modules/lang/org/config.el | 33 ++++++++++++++----------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/modules/lang/org/autoload/org-tables.el b/modules/lang/org/autoload/org-tables.el index 1e1d22a52..c190a9173 100644 --- a/modules/lang/org/autoload/org-tables.el +++ b/modules/lang/org/autoload/org-tables.el @@ -46,11 +46,10 @@ re-align the table if necessary. (Necessary because org-mode has a ;;;###autoload (defun +org-realign-table-maybe-h () - "Auto-align table under cursor and re-calculate formulas." + "Auto-align table under cursor." (when (and (org-at-table-p) org-table-may-need-update) (let ((pt (point)) (inhibit-message t)) - (org-table-recalculate) (if org-table-may-need-update (org-table-align)) (goto-char pt)))) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 3c7d5caaf..33ecab2e2 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -208,11 +208,23 @@ Is relative to `org-directory', unless it is absolute. Is used in Doom's default (defun +org-init-babel-lazy-loader-h () "Load babel libraries lazily when babel blocks are executed." - (defun +org--babel-lazy-load (lang) - (cl-check-type lang symbol) - (or (run-hook-with-args-until-success '+org-babel-load-functions lang) - (require (intern (format "ob-%s" lang)) nil t) - (require lang nil t))) + (defun +org--babel-lazy-load (lang &optional async) + (cl-check-type lang (or symbol null)) + (unless (cdr (assq lang org-babel-load-languages)) + (when async + ;; ob-async has its own agenda for lazy loading packages (in the child + ;; process), so we only need to make sure it's loaded. + (require 'ob-async nil t)) + (prog1 (or (run-hook-with-args-until-success '+org-babel-load-functions lang) + (require (intern (format "ob-%s" lang)) nil t) + (require lang nil t)) + (add-to-list 'org-babel-load-languages (cons lang t))))) + + ;; Lazy load babel packages for exporting + (add-hook! 'org-export-filter-src-block-functions + (defun lazy-load-library-h (data lang plist) + (+org--babel-lazy-load lang) + data)) (defadvice! +org--src-lazy-load-library-a (lang) "Lazy load a babel package to ensure syntax highlighting." @@ -220,7 +232,7 @@ Is relative to `org-directory', unless it is absolute. Is used in Doom's default (or (cdr (assoc lang org-src-lang-modes)) (+org--babel-lazy-load lang))) - ;; This also works for tangling and exporting + ;; This also works for tangling (defadvice! +org--babel-lazy-load-library-a (info) "Load babel libraries lazily when babel blocks are executed." :after-while #'org-babel-confirm-evaluate @@ -229,14 +241,7 @@ Is relative to `org-directory', unless it is absolute. Is used in Doom's default ((stringp lang) (intern lang)))) (lang (or (cdr (assq lang +org-babel-mode-alist)) lang))) - (when (and lang - (not (cdr (assq lang org-babel-load-languages))) - (+org--babel-lazy-load lang)) - (when (assq :async (nth 2 info)) - ;; ob-async has its own agenda for lazy loading packages (in the - ;; child process), so we only need to make sure it's loaded. - (require 'ob-async nil t)) - (add-to-list 'org-babel-load-languages (cons lang t))) + (+org--babel-lazy-load lang (assq :async (nth 2 info))) t)) (advice-add #'org-babel-do-load-languages :override #'ignore))