From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Davison Subject: Re: org-babel-tangle indentation Date: Thu, 08 Oct 2009 13:36:34 -0400 Message-ID: <87ljjl3hzx.fsf@stats.ox.ac.uk> References: <86skduat8g.fsf@portan.ibr.cs.tu-bs.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Mvwv0-0006cX-11 for emacs-orgmode@gnu.org; Thu, 08 Oct 2009 13:36:46 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Mvwuu-0006ZT-Vt for emacs-orgmode@gnu.org; Thu, 08 Oct 2009 13:36:45 -0400 Received: from [199.232.76.173] (port=54881 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Mvwuu-0006ZO-Si for emacs-orgmode@gnu.org; Thu, 08 Oct 2009 13:36:40 -0400 Received: from markov.stats.ox.ac.uk ([163.1.210.1]:48214) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Mvwuu-0001DB-C5 for emacs-orgmode@gnu.org; Thu, 08 Oct 2009 13:36:40 -0400 In-Reply-To: (Eric Schulte's message of "Thu, 08 Oct 2009 08:31:14 -0600") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Eric Schulte Cc: chrismgray@gmail.com, emacs-orgmode@gnu.org Chris, Eric -- Coincidentally, I think the email I just sent to the list provides a solution to these issues. I've also been using org-babel-tangle to write a python program this week. I've been finding it very helpful merely using basic org mode features such as folding and restructuring to organise and navgigate the code (same with my emacs config files). See below for notes on tangling your python example. "Eric Schulte" writes: > Hi Chris, > > You have touched upon a true limitation in the current tangle > functionality. I think this issue has two parts (one of which you > address below). > > 1) it is impossible to specify a piece of heavily indented code in a > source-code block. For example > > #+begin_src python > 9 > #+end_src > > will always be exported as > > 9 > > because Org-babel strips off any leading spaces. This problem is > exacerbated by the fact that C-' org-edit-special also strips off > leading spaces. With org-src-preserve-indentation set to t, the leading spaces are removed neither by C-c ' nor during org-babel-tangle. org-src-preserve-indentation can be set globally or as a buffer local variable. > > 2) There is no way to specify the level at which the contents of a > source block should be indented. You provided a good solution to > this second issue below, and I'm adding it to the org-babel task > stack. With org-src-preserve-indentation, as long as the indentation is correct in the org file, it will be correct in the tangled output. So in order to produce correct python code from Chris's example, it has to have the correct indentation in the org buffer, i.e. --8<---------------cut here---------------start------------->8--- * Introduction This is some intro text. #+srcname: the first block #+begin_src python :tangle foo :exports none print '1 + 1' if 1 + 1 == 2: print 'oh no' else: # <> #+end_src Some more text. #+srcname: do the other thing #+begin_src python :tangle no :exports none print 'oh yes' #+end_src --8<---------------cut here---------------end--------------->8--- Chris, I have not implemented your suggestion regarding the indentation of noweb referenced blocks, but I think it would be sensible behaviour when org-src-preserve-indentation is nil. Dan >> For example, the following bit of python does not compile when tangled. >> >> * Introduction >> >> This is some intro text. >> >> #+srcname: the first block >> #+begin_src python :tangle foo :exports none >> print '1 + 1' >> if 1 + 1 == 2: >> print 'oh no' >> else: >> # <> >> #+end_src >> >> Some more text. >> >> #+srcname: do the other thing >> #+begin_src python :tangle no :exports none >> print 'oh yes' >> #+end_src >> >> My preference would be for source blocks to be indented to the level of >> the comment that caused them to be inserted. >> >> Cheers, >> Chris >> >> >> >> _______________________________________________ >> Emacs-orgmode mailing list >> Remember: use `Reply All' to send replies to the list. >> Emacs-orgmode@gnu.org >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode