emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* var expansion on tangling only once per file
@ 2012-04-06  9:52 Rainer M Krug
  2012-04-11 14:15 ` Eric Schulte
  0 siblings, 1 reply; 4+ messages in thread
From: Rainer M Krug @ 2012-04-06  9:52 UTC (permalink / raw)
  To: emacs-orgmode

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi

I have a file wide variable defined and tangle several source blockd into one file.

BNo the variable is expanded in each block.

Would it be possible to have the expansion at the beginning of the file and nod be repeated, as
this can cause problems?

The following org code

#+PROPERTY: tangle test.R
#+PROPERTY: var TheVar=99

* Part one
#+begin_src R :tabgle:
  x <- 1
#+end_src
* Problem
#+begin_src R
  y <- list(
      x = 1,
#+end_src
* Problem continued
#+begin_src R
      x <- 3
)
#+end_src

results in an error in R due to the repeated "TheVar <- 99" in the list definition.

Org-mode version 7.8.08 (release_7.8.07.213.ge6fdf) from git this morning

If I remember correctly, this sneeked in quite recently.

Thanks,

Rainer


- -- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys.
(Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk9+vNoACgkQoYgNqgF2egpnqgCfagLVojt2kU3SouF+GdQ11BJB
J7wAn3zqXQR9KuiHLXOKBHimBeZgnGSv
=rXHQ
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: var expansion on tangling only once per file
  2012-04-06  9:52 var expansion on tangling only once per file Rainer M Krug
@ 2012-04-11 14:15 ` Eric Schulte
  2012-04-12  7:41   ` Rainer M Krug
  0 siblings, 1 reply; 4+ messages in thread
From: Eric Schulte @ 2012-04-11 14:15 UTC (permalink / raw)
  To: R.M.Krug; +Cc: emacs-orgmode

This is not currently possible, and any conceivable implementation would
be necessarily complex requiring a good deal of cross-buffer
coordination.

Would it be possible to simply only declare the variable in a header
argument applying to the first code block?  Using a session would keep
that variables state through all subsequent code blocks.

Best,

Rainer M Krug <r.m.krug@gmail.com> writes:

> Hi
>
> I have a file wide variable defined and tangle several source blockd into one file.
>
> BNo the variable is expanded in each block.
>
> Would it be possible to have the expansion at the beginning of the file and nod be repeated, as
> this can cause problems?
>
> The following org code
>
> #+PROPERTY: tangle test.R
> #+PROPERTY: var TheVar=99
>
> * Part one
> #+begin_src R :tabgle:
>   x <- 1
> #+end_src
> * Problem
> #+begin_src R
>   y <- list(
>       x = 1,
> #+end_src
> * Problem continued
> #+begin_src R
>       x <- 3
> )
> #+end_src
>
> results in an error in R due to the repeated "TheVar <- 99" in the list definition.
>
> Org-mode version 7.8.08 (release_7.8.07.213.ge6fdf) from git this morning
>
> If I remember correctly, this sneeked in quite recently.
>
> Thanks,
>
> Rainer

-- 
Eric Schulte
http://cs.unm.edu/~eschulte/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: var expansion on tangling only once per file
  2012-04-11 14:15 ` Eric Schulte
@ 2012-04-12  7:41   ` Rainer M Krug
  2012-04-12 11:18     ` Olaf.Hamann
  0 siblings, 1 reply; 4+ messages in thread
From: Rainer M Krug @ 2012-04-12  7:41 UTC (permalink / raw)
  To: Eric Schulte; +Cc: emacs-orgmode

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/04/12 16:15, Eric Schulte wrote:
> This is not currently possible, and any conceivable implementation would be necessarily complex
> requiring a good deal of cross-buffer coordination.

Ok - then I know why I haven't realised this before: I mover the variable definition from a header
argument to the #+PROPERTY: as I need the variable throughout the document.

> 
> Would it be possible to simply only declare the variable in a header argument applying to the
> first code block?  Using a session would keep that variables state through all subsequent code
> blocks.

Would work - but as I said above, I would have preferred to have the variable defined at the top
of the buffer. I could use though the no-expand header argument for the source blocks. At the moment,

I am putting them in a subtree and set the property for the subtree.

Thanks,

Rainer

> 
> Best,
> 
> Rainer M Krug <r.m.krug@gmail.com> writes:
> 
>> Hi
>> 
>> I have a file wide variable defined and tangle several source blockd into one file.
>> 
>> BNo the variable is expanded in each block.
>> 
>> Would it be possible to have the expansion at the beginning of the file and nod be repeated,
>> as this can cause problems?
>> 
>> The following org code
>> 
>> #+PROPERTY: tangle test.R #+PROPERTY: var TheVar=99
>> 
>> * Part one #+begin_src R :tabgle: x <- 1 #+end_src * Problem #+begin_src R y <- list( x = 1, 
>> #+end_src * Problem continued #+begin_src R x <- 3 ) #+end_src
>> 
>> results in an error in R due to the repeated "TheVar <- 99" in the list definition.
>> 
>> Org-mode version 7.8.08 (release_7.8.07.213.ge6fdf) from git this morning
>> 
>> If I remember correctly, this sneeked in quite recently.
>> 
>> Thanks,
>> 
>> Rainer
> 


- -- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys.
(Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk+GhxoACgkQoYgNqgF2egrcqQCePx4ZlpftV2beNY7MJzoaRLR4
QzsAnRc8hNF85DIlpETRFIeQWP2aBV0V
=zLBp
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: var expansion on tangling only once per file
  2012-04-12  7:41   ` Rainer M Krug
@ 2012-04-12 11:18     ` Olaf.Hamann
  0 siblings, 0 replies; 4+ messages in thread
From: Olaf.Hamann @ 2012-04-12 11:18 UTC (permalink / raw)
  To: emacs-orgmode

Am 12.04.2012 09:41, schrieb Rainer M Krug:
>
> On 11/04/12 16:15, Eric Schulte wrote:
>> Would it be possible to simply only declare the variable in a header argument applying to the
>> first code block?  Using a session would keep that variables state through all subsequent code
>> blocks.
>
> Would work - but as I said above, I would have preferred to have the variable defined at the top
> of the buffer. I could use though the no-expand header argument for the source blocks. At the moment,

What about :

#+NAME var-as-literal-block
#+BEGIN_EXAMPLE
99
#+END_EXAMPLE


#+begin_src ...  :var TheVar=var-as-literal-block
...using TheVar in code
#+end_src

----------------------------
I would prefer using Macros in this case :

#+MACRO: TheVar 99

#+begin_src ... :var TheVar={{{TheVar}}}
...using TheVar in code
#+end_src


But looks like that macros do not expand in src_block header arguments.

Regards, Olaf

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-04-12 11:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-06  9:52 var expansion on tangling only once per file Rainer M Krug
2012-04-11 14:15 ` Eric Schulte
2012-04-12  7:41   ` Rainer M Krug
2012-04-12 11:18     ` Olaf.Hamann

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).