From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Francesco Pizzolante" Subject: Indentation of code blocks within lists Date: Mon, 13 May 2013 14:11:47 +0200 Message-ID: <87ehdb13lo.fsf@somewhere.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: mailing-list-org-mode Hi All, I'd like to let you know about issues I'm having while trying to put source code blocks within lists. Here's my example and how I indent it: --8<---------------cut here---------------start------------->8--- * First situation - My first bullet We need to do this: #+begin_src emacs-lisp (message "this is a string") (defun x() "Doc..." (interactive) (message "hello")) #+end_src - My second bullet #+begin_src emacs-lisp "test" #+end_src #+results: : test - Sub-point of second bullet We need to do this as well: #+begin_src emacs-lisp (sort) #+end_src --8<---------------cut here---------------end--------------->8--- This way if indenting code blocks has the following advantages: - it looks nice; - thanks to the indentation, you directly know at which list level the code block belongs to; - you can easily use Emacs commands (like `C-x TAB') on regions or Org promote/demote commands on items or subtrees to edit and reorganize your text: "relative" indentation is preserved in all cases. But, I have 2 issues with it: - when using `C-c '' (`org-edit-special'), I see spaces before my code, while I would expect to see my code starting at column 0 in the edit buffer (the "reference" column for the "margin" being, here, the column with the '#' from '#+begin_src'; - when exporting, the spaces from column 0 to the start of my code are also exported, while I would again expect these spaces to be ignored for the export. The only way I found to fix these issues is to edit my text like this (and make any code to start in column 0): --8<---------------cut here---------------start------------->8--- - My first bullet We need to do this: #+begin_src emacs-lisp (message "this is a string") (defun x() "Doc..." (interactive) (message "hello")) #+end_src - My second bullet #+begin_src emacs-lisp "test" #+end_src #+results: : test - Sub-point of second bullet We need to do this as well: #+begin_src emacs-lisp (sort) #+end_src --8<---------------cut here---------------end--------------->8--- But: - as you can see, the text does not look anymore as nice as in the previous example; - I'm no longer able to edit and reorganize the text using Emacs `C-x TAB' command. That command becomes "forbidden" as it can't correctly respect the indentation requirements: + starting at column 0 for code; + relative for list items (depending on their depth); - even Org promote/demote commands are buggy in this case: as a simple example, when I try to promote (with M-Shift-Left) the last point "Sub-point of second bullet" I get an error ("indent-line-to: Wrong type argument: wholenump, -2" ) and the following half-baked result: --8<---------------cut here---------------start------------->8--- - Sub-point of second bullet We need to do this: #+begin_src emacs-lisp (sort) #+end_src --8<---------------cut here---------------end--------------->8--- The "#+end_src" line got misaligned. So, my question is the following: is there a way to edit my text as shown in the first example and edit/export it ignoring the "margin" spaces? Any help is welcome. Thanks a lot, Francesco