From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Pizzolli Subject: Re: idempotency and inconsistency for org-babel-remove-inline-result Date: Sat, 31 Jan 2015 00:06:41 +0100 Message-ID: <86mw4zuav2.fsf@me.localhost.invalid> References: <86fvasqmpb.fsf@me.localhost.invalid> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:51381) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YHKeG-0006cs-L6 for emacs-orgmode@gnu.org; Fri, 30 Jan 2015 18:06:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YHKeD-00045F-FD for emacs-orgmode@gnu.org; Fri, 30 Jan 2015 18:06:48 -0500 Received: from relay6-d.mail.gandi.net ([2001:4b98:c:538::198]:42876) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YHKeD-00044d-5z for emacs-orgmode@gnu.org; Fri, 30 Jan 2015 18:06:45 -0500 In-Reply-To: (Charles C. Berry's message of "Fri, 30 Jan 2015 11:13:45 -0800") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: "Charles C. Berry" Cc: org-mode mailing list --=-=-= Content-Type: text/plain Hello Charles, "Charles C. Berry" writes: > On Fri, 30 Jan 2015, Daniele Pizzolli wrote: > >> Hello, >> >> I really like the new inline results. Thanks for this new cool feature. >> I have only a few problems with it. >> > > Thanks for your feedback. Nice to hear. >> Is there a way to evaluate a buffer an then remove inline results or >> better, to get the very same buffer after: [] >> I see that the function docs says: Extraneous leading whitespace is >> trimmed. Is this the intended result? > > It is intended to remove `extraneous' whitespace. But the way > `extraneous' is operationalized leaves something to be desired if > users wish to do as you have done. Maybe preserving whitespace (if any) > after the result and deleting all that is before it might work. > > I'll take a look at changing the defn to deal with your ECM. Thanks, see later. >> >> Also, is there anything that prevents to make >> org-babel-remove-inline-result interactive as is >> org-babel-remove-result? > > AFAICS, no. Ok, patch attached. >> Wwhy not have also >> org-babel-remove-inline-result-one-or-many and >> org-babel-remove-all-result-one-or-many to remove all the babel result >> with one function call? > > Easy enough, but is this really needed? What about call block/line > results? This is useful for me because I want to easily discard the results to have the commit with only the changes in the source. I hope others find this a reasonable facility. It is like a 'make clean' for your org files. Patch attached. I am not sure about the default of discarding keyword Deleting the result line can cause some disorder, but it is the default in org-babel-remove-result. Also the naming can be confusing. >> I do no not know lisp a lot, but I can try to submit a patch if you >> agree that will be useful. >> > > The main issue (IMO) is figuring out what whitespace to delete around > a `{{{results(...)}}}' macro. I can get to this in a day or so, but > feel free to send a patch. This is above my lisp coding abilities, with too many org-related function to get lost into org-babel-remove-inline-result... I can wait, but if you have any pointer I will be happy to do some exploration. Thanks again, Daniele --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-ob-core.el-add-interactive-to-org-babel-remove-inlin.patch >From 4f484ac1f9ae4adcf5551bf6e77e5545f124f11b Mon Sep 17 00:00:00 2001 From: Daniele Pizzolli Date: Fri, 30 Jan 2015 20:57:15 +0100 Subject: [PATCH 1/2] ob-core.el: add interactive to `org-babel-remove-inline-result' * lisp/ob-core.el (org-babel-remove-inline-result): Add interactive. TINYCHANGE --- lisp/ob-core.el | 1 + 1 file changed, 1 insertion(+) diff --git a/lisp/ob-core.el b/lisp/ob-core.el index fcc44c1..ac9f63b 100644 --- a/lisp/ob-core.el +++ b/lisp/ob-core.el @@ -2324,6 +2324,7 @@ INFO may provide the values of these header arguments (in the "Remove the result of the current inline-src-block or babel call. The result must be wrapped in a `results' macro to be removed. Extraneous leading whitespace is trimmed." + (interactive) (let* ((el (org-element-context)) (post-blank (org-element-property :post-blank el))) (when (memq (org-element-type el) '(inline-src-block inline-babel-call)) -- 2.1.4 --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0002-ob-core.el-Add-org-babel-remove-result-all.patch >From b108f6b8dfd28d6c6ebcdfcabb428438fe348ad9 Mon Sep 17 00:00:00 2001 From: Daniele Pizzolli Date: Fri, 30 Jan 2015 23:28:27 +0100 Subject: [PATCH 2/2] ob-core.el: Add `org-babel-remove-result-all' * lisp/ob-core.el (org-babel-remove-result-all): New interactive function. TINYCHANGE --- lisp/ob-core.el | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lisp/ob-core.el b/lisp/ob-core.el index ac9f63b..e09863d 100644 --- a/lisp/ob-core.el +++ b/lisp/ob-core.el @@ -2348,6 +2348,16 @@ in the buffer." (org-babel-map-src-blocks nil (org-babel-remove-result)) (org-babel-remove-result))) +(defun org-babel-remove-result-all (x) + "Remove the results of all the source blocks and the results of all inline sources. +If called with a prefix argument, keep the keyword in result +blocks." + (interactive "P") + (if x + (org-babel-map-src-blocks nil (org-babel-remove-result nil t)) + (org-babel-map-src-blocks nil (org-babel-remove-result))) + (org-babel-map-inline-src-blocks nil (org-babel-remove-inline-result))) + (defun org-babel-result-end () "Return the point at the end of the current set of results." (save-excursion -- 2.1.4 --=-=-=--