On Tue, Oct 25, 2011 at 12:31 PM, Sebastien Vauban
<wxhgmqzgwmuf@spammotel.com> wrote:
Hi Rainer,
Rainer M Krug wrote:
>> While thinking about all of this, and working in real-life documents, I
>> just
>> came back to a suggestion which I made some time ago. It goes about this
>> enhancement:
>>
>> Would it be possible to specify "buffer-wide language specific" header
>> arguments?
>>
>> That is, be able to say:
>>
>> "In this document, I want to:
>> - tangle all my .sql chunks, but no other;
>> - eval all the elisp chunks with query, but no other."
>>
>> Something we could write quite easily along the lines:
>>
>> #+PROPERTY: tangle no
>> #+PROPERTY: eval never
>> #+PROPERTY[SQL]: tangle yes
>> #+PROPERTY[EMACS-LISP]: eval query
>>
>> (the syntax used here is just a draft sample!)
>>
>> What do you think about this feature? If you feel it can be something
>> interesting to have, this is surely to incorporate in the current syntax
>> debate. If not... never mind.
>
> I am not Eric, but I think that would be a good idea.
Thanks for your comments.
> Bu there needs to be a way of specifying more then one property, either
> by #+PROPERTY+: or by any other way -I acually luike the #+PROPERTY+: .
> Thinking about it, it should be possible without the +:
>
> #+PROPERTY[R]: tangle no
> #+PROPERTY[R]: export both
Yes, no need for a "+" here, as the lines do target different properties (in
this case, "tangle" and "export").
> The more I see it, the more I like it - also the []
In fact, the lines without any language specification would be, at least
semantically, equivalent to something like this:
#+PROPERTY[*]: tangle no
#+PROPERTY[*]: eval never
So
#+PROPERTY followed by square brackets, means properties for source blocks of a given language, and [*] is the default and can be omitted.
Two ideas: [R,sh], i.e. specifying a list of languages in the brackets could be useful, as well as wildcards like [dit*]? The latter less usefull, but for consistency?
Additionally: it would be nice, if one could define a set of properties, and then recall them for certain blocks.
e.g:
#+PROPERTY[R:set1]: tangle no
#+PROPERTY[R:set1]: eval never
#+PROPERTY[R:set2]: tangle yes
#+PROPERTY[R:set2]: export both
#+src_begin R :set set1
cat(1)
#+end
would have the first set of properties (tangle no and eval never), where
#+src_begin R :set set2
cat(1)
#+end
would have the second set of properties (tangle no and eval never)
Might be a good addition?
Cheers,
Rainer
Best regards,
Seb
--
Sebastien Vauban