* Indentation of code blocks within lists @ 2013-05-13 12:11 Francesco Pizzolante [not found] ` <87ehdb13lo.fsf-oHC15RC7JGTNLxjTenLetw@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: Francesco Pizzolante @ 2013-05-13 12:11 UTC (permalink / raw) 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 ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <87ehdb13lo.fsf-oHC15RC7JGTNLxjTenLetw@public.gmane.org>]
* Re: Indentation of code blocks within lists [not found] ` <87ehdb13lo.fsf-oHC15RC7JGTNLxjTenLetw@public.gmane.org> @ 2013-05-21 8:25 ` Francesco Pizzolante 2013-05-23 22:20 ` Sebastien Vauban 0 siblings, 1 reply; 10+ messages in thread From: Francesco Pizzolante @ 2013-05-21 8:25 UTC (permalink / raw) To: mailing-list-org-mode 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 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Indentation of code blocks within lists 2013-05-21 8:25 ` Francesco Pizzolante @ 2013-05-23 22:20 ` Sebastien Vauban 2013-05-24 12:31 ` Nicolas Goaziou 0 siblings, 1 reply; 10+ messages in thread From: Sebastien Vauban @ 2013-05-23 22:20 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ 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 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Indentation of code blocks within lists 2013-05-23 22:20 ` Sebastien Vauban @ 2013-05-24 12:31 ` Nicolas Goaziou [not found] ` <87sj1c7e60.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2013-05-24 21:26 ` Sebastien Vauban 0 siblings, 2 replies; 10+ messages in thread From: Nicolas Goaziou @ 2013-05-24 12:31 UTC (permalink / raw) To: Sebastien Vauban; +Cc: public-emacs-orgmode-mXXj517/zsQ Hello, "Sebastien Vauban" <sva-news-D0wtAvR13HarG/iDocfnWg@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 ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <87sj1c7e60.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: Indentation of code blocks within lists [not found] ` <87sj1c7e60.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2013-05-24 14:33 ` Francesco Pizzolante 0 siblings, 0 replies; 10+ messages in thread From: Francesco Pizzolante @ 2013-05-24 14:33 UTC (permalink / raw) To: Nicolas Goaziou Cc: public-emacs-orgmode-mXXj517/zsQ-wOFGN7rlS/M9smdsby/KFg, Sebastien Vauban 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 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Indentation of code blocks within lists 2013-05-24 12:31 ` Nicolas Goaziou [not found] ` <87sj1c7e60.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2013-05-24 21:26 ` Sebastien Vauban 2013-05-25 12:39 ` Nicolas Goaziou 1 sibling, 1 reply; 10+ messages in thread From: Sebastien Vauban @ 2013-05-24 21:26 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Hello Nicolas, Nicolas Goaziou wrote: > "Sebastien Vauban" <sva-news-D0wtAvR13HarG/iDocfnWg@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. 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 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Indentation of code blocks within lists 2013-05-24 21:26 ` Sebastien Vauban @ 2013-05-25 12:39 ` Nicolas Goaziou [not found] ` <87zjvj5j3n.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2013-05-27 14:15 ` Sebastien Vauban 0 siblings, 2 replies; 10+ messages in thread From: Nicolas Goaziou @ 2013-05-25 12:39 UTC (permalink / raw) To: Sebastien Vauban; +Cc: public-emacs-orgmode-mXXj517/zsQ Hello, "Sebastien Vauban" <sva-news-D0wtAvR13HarG/iDocfnWg@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 ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <87zjvj5j3n.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: Indentation of code blocks within lists [not found] ` <87zjvj5j3n.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2013-05-27 8:23 ` Francesco Pizzolante 0 siblings, 0 replies; 10+ messages in thread From: Francesco Pizzolante @ 2013-05-27 8:23 UTC (permalink / raw) To: Nicolas Goaziou Cc: public-emacs-orgmode-mXXj517/zsQ-wOFGN7rlS/M9smdsby/KFg, Sebastien Vauban Hi Nicolas, > 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? Thanks a lot for your fix: it now works as expected. Regards, Francesco ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Indentation of code blocks within lists 2013-05-25 12:39 ` Nicolas Goaziou [not found] ` <87zjvj5j3n.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2013-05-27 14:15 ` Sebastien Vauban 2013-05-27 14:46 ` Sebastien Vauban 1 sibling, 1 reply; 10+ messages in thread From: Sebastien Vauban @ 2013-05-27 14:15 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ 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 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Indentation of code blocks within lists 2013-05-27 14:15 ` Sebastien Vauban @ 2013-05-27 14:46 ` Sebastien Vauban 0 siblings, 0 replies; 10+ messages in thread From: Sebastien Vauban @ 2013-05-27 14:46 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ 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 ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2013-05-27 14:46 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-05-13 12:11 Indentation of code blocks within lists Francesco Pizzolante [not found] ` <87ehdb13lo.fsf-oHC15RC7JGTNLxjTenLetw@public.gmane.org> 2013-05-21 8:25 ` Francesco Pizzolante 2013-05-23 22:20 ` Sebastien Vauban 2013-05-24 12:31 ` Nicolas Goaziou [not found] ` <87sj1c7e60.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2013-05-24 14:33 ` Francesco Pizzolante 2013-05-24 21:26 ` Sebastien Vauban 2013-05-25 12:39 ` Nicolas Goaziou [not found] ` <87zjvj5j3n.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2013-05-27 8:23 ` Francesco Pizzolante 2013-05-27 14:15 ` Sebastien Vauban 2013-05-27 14:46 ` Sebastien Vauban
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).