Julien Dallot <[email protected]> writes:

>> #+begin_src emacs-lisp :noweb is test
>> #+end_src
>>
>> interpreted as (:noweb "is test"), simply splicing the value by :keyword
>> (unless :keyword is inside "...").
> That looks good to me. Especially if it is already in use.
>
> There are some edge cases that should be taken care of.
> Like, what if the second word starts with a ":"? Then we should treat it as a 
> normal keyword (since it may be used by some third-party package). But then, 
> we cannot simply parse a link like
> [[::(:id wrong :syntax :regexp foo)]]
> as a plist, as this would result in
> (:id "wrong" :syntax :regexp "foo")
> which is an invalid plist since all properties must have a value (this 
> problem also applies if we want to give a property the empty string without 
> "...")
>
> Then not sure what to do. We could fill the gap with an empty string:
> (:id "wrong" :syntax "" :regexp "foo")
> or remove the :syntax part altogether:
> (:id "wrong" :regexp "foo")

If we continue the analogy with src blocks,

#+begin_src emacs-lisp :noweb is :comments :eval yes
#+end_src

will yield (via org-babel-get-src-block-info)

((:noweb . "is") (:comments) (:eval . "yes"))

So, it is an implicit nil, or empty string for the purposes of the link
(we should have no notion of nil in there)

-- 
Ihor Radchenko // yantar92,
Org mode maintainer,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>

Reply via email to