From mboxrd@z Thu Jan 1 00:00:00 1970 From: Darlan Cavalcante Moreira Subject: Re: [ANN] BREAKING CHANGE -- removing #+BABEL file-wide property lines Date: Fri, 21 Oct 2011 18:05:26 -0300 Message-ID: <4ea1de9c.67b4ec0a.553d.122a@mx.google.com> References: <87pqhrih3s.fsf@gmail.com> <30891.1319141196@alphaville.dokosmarshall.org> <87fwinifqu.fsf@gmail.com> <32184.1319143892@alphaville.dokosmarshall.org> <87zkgvgxe7.fsf@gmail.com> <1405.1319147324@alphaville.dokosmarshall.org> <87zkgvfhra.fsf@gmail.com> <2127.1319148505@alphaville.dokosmarshall.org> <87vcrjfgt1.fsf@gmail.com> <80sjmmvm60.fsf@somewhere.org> <4EA129DB.4070006@christianmoe.com> <8762ji5jr6.fsf@gmail.com> <4EA1D4F9.5010302@christianmoe.com> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Return-path: Received: from eggs.gnu.org ([140.186.70.92]:39857) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RHMHX-0006ld-4M for emacs-orgmode@gnu.org; Fri, 21 Oct 2011 17:05:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RHMHV-0007ES-HK for emacs-orgmode@gnu.org; Fri, 21 Oct 2011 17:05:35 -0400 Received: from mail-yw0-f41.google.com ([209.85.213.41]:42830) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RHMHV-0007EL-Em for emacs-orgmode@gnu.org; Fri, 21 Oct 2011 17:05:33 -0400 Received: by ywa17 with SMTP id 17so1452778ywa.0 for ; Fri, 21 Oct 2011 14:05:33 -0700 (PDT) In-Reply-To: <4EA1D4F9.5010302@christianmoe.com> 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: mail@christianmoe.com Cc: Sebastien Vauban , emacs-orgmode@gnu.org It's excellent that now babel understands multiple values in the "var" property (I was one of the people that wanted this), but "There Is One More Thing". Would it be feasible to inherit variables from parent sub-trees? Effectively, I'd like to append new values in lower level sub-trees, but AFAIK setting the var property in a sub-tree will still replace the value set in the parent sub-tree. That is, in the example below the level-2 sub-trees would not have the foo variable passed to babel. --8<---------------cut here---------------start------------->8--- * Code with foo :PROPERTIES: :var: foo=1 :END: ** Code only with bar :PROPERTIES: :var: bar=2 :END: src_block ** Code only with baz :PROPERTIES: :var: baz=3 :END: src_block --8<---------------cut here---------------end--------------->8--- Maybe a special keyword, such as "inherit" (or "append") could be used to incorporate variables defined in the parent sub-tree, such that the example would become --8<---------------cut here---------------start------------->8--- * Code with foo :PROPERTIES: :var: foo=1 :END: ** Code with foo and bar :PROPERTIES: :var: bar=2, inherit :END: src_block ** Code with foo and baz :PROPERTIES: :var: baz=3, inherit :END: src_block --8<---------------cut here---------------end--------------->8--- This should not affect global variables and "inherit" would inherit variables defined only in the parent sub-tree (unless it also contains the inherit keyword). As a use case scenario, suppose I need to perform simulations for a few different scenarios, each with small variations. This would allow me to define common variables for a scenario in a higher level sub-tree and more specific variables in the lower level sub-trees. -- Darlan Cavalcante At Fri, 21 Oct 2011 22:24:25 +0200, Christian Moe wrote: > > Hi, > > Yes, that works nicely, and should solve Rainer's problem. > I haven't been able to think of anything else that can't be handled by > properties. > > And I do think it's a good idea to winnow down the syntax a bit, even > if things break. I just like to grumble. > :-) > > Yours, > Christian > > On 10/21/11 7:37 PM, Eric Schulte wrote: > > Nice idea. This same issue with "var" arose when we first started > > allowing header arguments to be specified inside subtree properties. > > I've just implemented your suggestion so the following are now possible. > > > > #+PROPERTY: var foo=1, bar=2 > > #+PROPERTY: cache yes > > > > #+begin_src emacs-lisp > > (+ foo bar) > > #+end_src > > > > #+results[be32e67491d4e92f75769aebe423c20ca01626fe]: > > : 3 > > > > and > > > > #+begin_src emacs-lisp :var foo="this", bar="that" > > (concat foo " " bar) > > #+end_src > > > > #+results[3cde077efa81f1ca24a62ac264dbd5776b6e0054]: > > : this that > > > > Thanks for the suggestion and I hope the above is a sufficient > > replacement for the now-missing #+BABEL: syntax. > > > > Cheers -- Eric > >