Amy Grinn <grinn....@gmail.com> writes: >>> + (while (< (point) (point-max)) >>> + (unless (looking-at " *\"\\([^\"]+\\)\" *") >>> + (looking-at " *\\([^ ]+\\)")) >> >> May you please explain the rationale behind this regexp? AFAIU, it >> implies that you want to allow whitespace characters inside :noweb-wrap >> boundaries. But I do not think that we need to complicate things so much. > > That is exactly what I was going for. I thought about the ways this > could be used and the most general-purpose, non-syntax-breaking, > easily-recognizable way I could think of was to use the language's > line-comment construct followed by the standard << >> characters. > > # <<foo>> > ;; <<bar>> > // <<baz>> > > I can see how it might be harder to maintain to allow whitespace in the > noweb-wrap header arg. I could create a separate org-parse-arg-list > function to ease that burden somewhat. My opinion is that having the > option to use the examples above is preferable to using non-standard > wrappers, from a third-person point-of-view.
Makes sense. Also, see a similar idea being discussed in https://list.orgmode.org/orgmode/87o7jlzxgn.fsf@localhost/ I recommend the following: If the value starts from ", use Elisp's `read': |"# <<" ">>" (read (current-buffer)) ; => "# <<" otherwise, consider read until the first whitespace. |#<<; >>; (re-search-forward (rx (1+ (not whitespace)))) #<<;| However, there may be edge cases like "<< >>" "<< >> << << >> << "asd" >> -- Ihor Radchenko // yantar92, Org mode contributor, 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>