Re: [O] Indentation of code blocks within lists
Hello Nicolas, Nicolas Goaziou wrote: Sebastien Vauban writes: Indeed. I have as well `org-src-preserve-indentation' set to `t', for the same reason as pointed out: if I don't use it that way, then my code blocks which have different relative depths are exported (in HTML) on the same level, as if there was no indentation to respect. So, yes, it does work if you don't need to preserve indentation, you're well right. But, if not, the indentation is lost on export (and on source editing with C-c '). I have pushed a fix on maint (at least for the export part, the source editing one is another story). Could you confirm it behaves as expected? I confirm that the export is respecting the indentation up to the virtual margin (represented by the # character). Excellentissimo! Thank you ve-ry much... Best regards, Seb -- Sebastien Vauban
Re: [O] Indentation of code blocks within lists
Nicolas, Sebastien Vauban wrote: Nicolas Goaziou wrote: Sebastien Vauban writes: Indeed. I have as well `org-src-preserve-indentation' set to `t', for the same reason as pointed out: if I don't use it that way, then my code blocks which have different relative depths are exported (in HTML) on the same level, as if there was no indentation to respect. So, yes, it does work if you don't need to preserve indentation, you're well right. But, if not, the indentation is lost on export (and on source editing with C-c '). I have pushed a fix on maint (at least for the export part, the source editing one is another story). Could you confirm it behaves as expected? I confirm that the export is respecting the indentation up to the virtual margin (represented by the # character). Excellentissimo! I wanted to add that I tested your patch against my LP'ed .emacs file (~10K lines)... which was then some sort of baptism of fire for it... Best regards, Seb -- Sebastien Vauban
Re: [O] Indentation of code blocks within lists
Hello, Sebastien Vauban sva-news-D0wtAvR13HarG/idocf...@public.gmane.org writes: Indeed. I have as well `org-src-preserve-indentation' set to `t', for the same reason as pointed out: if I don't use it that way, then my code blocks which have different relative depths are exported (in HTML) on the same level, as if there was no indentation to respect. So, yes, it does work if you don't need to preserve indentation, you're well right. But, if not, the indentation is lost on export (and on source editing with C-c '). I have pushed a fix on maint (at least for the export part, the source editing one is another story). Could you confirm it behaves as expected? Regards, -- Nicolas Goaziou
Re: [O] Indentation of code blocks within lists
Hello, Sebastien Vauban sva-news-D0wtAvR13HarG/idocf...@public.gmane.org writes: That won't help you, but I've already sent questions on this problem, last year (Org 8). See my post on http://lists.gnu.org/archive/html/emacs-orgmode/2012-02/msg00247.html. Though, it's (for me) still unfixed as of today. The good news is that Nicolas seemed OK to look at it, and find a solution for it... AFAICS, your problem was solved. Could you point to what is still wrong? I also cannot reproduce OP's problem. It may be related to `org-src-preserve-indentation' value. Regards, -- Nicolas Goaziou
Re: [O] Indentation of code blocks within lists
Hi Nicolas, I also cannot reproduce OP's problem. It may be related to `org-src-preserve-indentation' value. Thanks for your answer. I checked the `org-src-preserve-indentation' variable and saw that it was non `nil'. Setting this variable to `nil' fixes the demonstrated issue. But, even then, I still have an indentation problem. In the following example (with `org-src-preserve-indentation' set to `nil'): - in the first headline, I have a code block in a list which is correctly exported ignoring the spaces due to the indentation of the Org list; - in the second headline, I have the same source code but it is split in several code blocks in order to better document it. The last 2 blocks are not correctly exported as *all spaces before the code* (even those I manually added) are ignored. --8---cut here---start-8--- * First situation My list: - Example which works #+begin_src emacs-lisp (if complex-condition then-block else-block) #+end_src * Second situation My list: - Example which does not work anymore #+begin_src emacs-lisp (if complex-condition #+end_src The then block does this: #+begin_src emacs-lisp then-block #+end_src The else-block does that: #+begin_src emacs-lisp else-block) #+end_src --8---cut here---end---8--- I think that only the spaces due to the Org indentation (here the number of spaces before the `#' which delimits the source block, hence 2 spaces) should be ignored. IOW, just the margin should be removed, and the margin is (IMO) defined as the spaces from column 0 up to the `#' character. Thanks for your help. Regards, Francesco
Re: [O] Indentation of code blocks within lists
Hello Nicolas, Nicolas Goaziou wrote: Sebastien Vauban sva-n...@mygooglest.com writes: That won't help you, but I've already sent questions on this problem, last year (Org 8). See my post on http://lists.gnu.org/archive/html/emacs-orgmode/2012-02/msg00247.html. Though, it's (for me) still unfixed as of today. The good news is that Nicolas seemed OK to look at it, and find a solution for it... AFAICS, your problem was solved. Could you point to what is still wrong? I also cannot reproduce OP's problem. It may be related to `org-src-preserve-indentation' value. Indeed. I have as well `org-src-preserve-indentation' set to `t', for the same reason as pointed out: if I don't use it that way, then my code blocks which have different relative depths are exported (in HTML) on the same level, as if there was no indentation to respect. So, yes, it does work if you don't need to preserve indentation, you're well right. But, if not, the indentation is lost on export (and on source editing with C-c '). Best regards, Seb -- Sebastien Vauban
Re: [O] Indentation of code blocks within lists
Hello Francesco, That won't help you, but I've already sent questions on this problem, last year (Org 8). See my post on http://lists.gnu.org/archive/html/emacs-orgmode/2012-02/msg00247.html. Though, it's (for me) still unfixed as of today. The good news is that Nicolas seemed OK to look at it, and find a solution for it... Best regards, Seb Francesco Pizzolante wrote: 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: * 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 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): - 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 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: - Sub-point of second bullet We need to do this: #+begin_src emacs-lisp (sort) #+end_src 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 -- Sebastien Vauban
Re: [O] Indentation of code blocks within lists
Hi, May I bump up this thread? Thanks, Francesco Francesco Pizzolante wrote: 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: * 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 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): - 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 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: - Sub-point of second bullet We need to do this: #+begin_src emacs-lisp (sort) #+end_src 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