Sorry, I forgot to forward this Mail to the list. regards, Dirk.
Anfang der weitergeleiteten E-Mail: > Von: Dirk Scharff <dirk.scha...@googlemail.com> > Betreff: Re: [O] [feature request] tangle on org-special-edit > Datum: 21. Juli 2011 22:32:13 MESZ > An: Eric Schulte <schulte.e...@gmail.com> > > Hi Eric, > > playing with your file I found out that setting :noweb to yes does the trick. > It doesn't work here without setting it. It was set to tangle in the file I > tested this with, which seemed the problem. Thank you for helping me with > this. I still got problems with :vars on exporting, but I'll answer to the > other mail for this to not mix the threads up. > > As for the detangeling part: Its theoretically impossible to do that without > comments. There is no reliable way to tell which block is which (after it was > edited) without some sort of reference in the file. Some sort of > probabilistic method could yield somewhat useable results but I'd go for > determinism (with comments) here. > > Am 21.07.2011 um 21:10 schrieb Eric Schulte: > >> Hi Dirk, >> >> Using the simple attached Org-mode file, >> #+source: def-something >> #+begin_src sh >> SOMETHING=nothing >> #+end_src >> >> #+begin_src sh >> <<def-something>> >> echo $SOMETHING >> #+end_src >> >> When I call C-c C-v ' in the second code block I get a buffer containing >> >> --8<---------------cut here---------------start------------->8--- >> <<def-something>> >> echo $SOMETHING >> --8<---------------cut here---------------end--------------->8--- >> >> but when I call C-c C-v v in the second code block I get a buffer >> containing >> >> --8<---------------cut here---------------start------------->8--- >> SOMETHING=nothing >> echo $SOMETHING >> --8<---------------cut here---------------end--------------->8--- >> >> with the noweb reference expanded. I would suggest making sure you are >> on the latest version of Org-mode, and if you still don't get this >> behavior then I would recommend starting emacs with the -Q option to see >> if part of your config is changing this behavior. >> >> I agree with your points below, I think the main complication is >> introduced when the restriction to work w/o comments is added (to allow >> working with non-lp/org users). The main limiting factor right now is >> simply developer time to implement and test the debugging behavior >> you've described below. You may want to try the existing >> org-babel-detangle function, as (if you don't have nested blocks) it >> should be sufficient to be useful in your current situation. >> >> Best -- Eric >> >> Dirk Scharff <dirk.scha...@googlemail.com> writes: >> >>> On Thu, Jul 21, 2011 at 7:19 PM, Eric Schulte <schulte.e...@gmail.com>wrote: >>> >>>> Dirk Scharff <dirk.scha...@googlemail.com> writes: >>>> >>>>> Hello, >>>>> >>>>> Org-mode provides the function to edit code blocks in their languages >>>>> native environment. If you want do literate programming you'll end up >>>>> with web-syntax (<<the-block-to-be-included-here>> ) in the >>>>> environment org-special-edit started. >>>>> >>>>> I'd like to purpose, that before opening the special language >>>>> environment, the code-block should be tangled to a temporary >>>>> file. Then a buffer should be stated with that file loaded in its >>>>> native language environment. If you'd do that the code would really be >>>>> executable and therefore debuggable and analyzable with the tools the >>>>> programming language provides. >>>>> >>>>> You'll have to keep track on the tangled code blocks then. I think >>>>> some info in comments should do the trick. I uploaded a mockup of what >>>>> I mean here: http://dl.getdropbox.com/u/3503145/org-feature-mockup.pdf >>>>> >>>> >>>> Hi Dirk, >>>> >>>> If you would like to pop to a code block *with* the noweb references >>>> expanded try the `org-babel-expand-src-block' command, which is bound to >>>> "C-c C-v v". This view of code blocks is not editable however because >>>> there would be no way to propagate edits back into the original code >>>> blocks -- consider an edit taking placed on the boundary between two >>>> code blocks, or multiple nested noweb references. >>>> >>>> There has been some interest in propagating changes back from tangled >>>> code to Org-mode blocks (search these list archives for the term >>>> "detangle") however such functionality is currently not implemented -- >>>> an `org-babel-detangle' function does exist but is not fully functional. >>>> >>>> Best -- Eric >>> >>> >>> Hi Eric, >>> thanks for your answer. >>> >>> org-babel-expand-src-block doesn't seem to work for me (it does the same as >>> C-c ' in my case). The noweb references are not expanded. Could be a local >>> problem here, I don't know. Have you tried it recently? Tangeling the file >>> works fine. >>> >>> I didn't search the List for detangleing for now. I'll look into it later. >>> But I'll still drop my thoughts on it: >>> >>> I'm well aware of the "detangleing problems" you point out. But if you know >>> you are not to edit between boundaries of two code blocks and still do it >>> its your own fault right? Well not even that, its just not defined how >>> org-mode should handle it right now. As for nested code blocks I don't see a >>> problem at all. Consider the following (already tangled) file with block >>> markers: >>> >>> !!mark_begin_outer_block_1 >>> do something here >>> !!mark_end_outer_block_1 >>> >>> << you shouldn't edit here! (but it could be a new block added to the org >>> file if you do couldn't it?) >> >>> >>> !!mark_begin_outer_block_2 >>> do something in the outer block >>> edit something here >>> !!mark_begin_inner_block >>> do something in the inner block >>> edit inner block >>> !!mark_end_inner_block >>> do something else >>> !!mark_end_outer_block_2 >>> >>> From the theoretical point of view I don't see an issue here besides the >>> region I marked with "<< you shouldn't edit here! >>". I guess you could >>> even tell emacs to protect the !!marks against modification if you wanted. >>> >>> If I had knowledge in Lisp programming and time I'd consider giving it a >>> shot. But as I'm writing my thesis in the moment (and time is of the >>> essence) my "hobby-programming-time" is very limited. >>> >>> I requested the feature because I think C-c ' isn't as useful as it could be >>> right now. (And of cause I could realy make great use of this for my thesis >>> writing ;)). >>> >>> Its still useful to me but I have to tangle the code to debug it and >>> "detangle" the changes manualy, what pretty much defeats the purpose in my >>> opinion. >>> >>> regards, >>> Dirk. >> >> -- >> Eric Schulte >> http://cs.unm.edu/~eschulte/ >