emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Rasmus <rasmus@gmx.us>
To: emacs-orgmode@gnu.org
Subject: Re: org-tempo insertion incoherence (lack of indentation) or misunderstanding
Date: Thu, 01 Oct 2020 19:31:13 +0200	[thread overview]
Message-ID: <87v9ft97ku.fsf@gmx.us> (raw)
In-Reply-To: <20200907051510.fnfm745xttyghhaj@localhost.localdomain>

Hi Bruno,

Bruno BEAUFILS <bruno@boulgour.com> writes:

> Let us imagine this simple org file :
>
> #+NAME: first
> #+begin_src org
>
> - an item
>   - subitem
>
> #+end_src
>
> If the cursor is at the last line and I want to insert an org block,
> let's say an example, using org-tempo feature, I can type =<e=
> followed by tabulation.
>
> In that case I get something like 
>
> #+NAME: second
> #+begin_src org
>
> - an item
>   - subitem
>
> #+begin_example
>
> #+end_example
>
> #+end_src
>
> However if I get indentation role (for instance in exports) well I do
> not expect that but instead something like:
>
> #+NAME: third
> #+begin_src org
>
> - an item
>   - subitem
>
>     #+begin_example
>
>     #+end_example
>
> #+end_src
>
> Are my expectations (and thus my use of indentation by org-mode
> understandings) wrong or is it a bug?

Whether the inserted block is indented depends on ‘org-get-indentation’
and thus the cursor’s position, at least in some cases.

In particular, if | is the cursor, run org-get-indentation for these two
examples to understand when you get indentation and when not: 

1.
- a
| 

2:
- a
  | 

In 1. you are making a new block outside the list, in 2. it is part of the
first item of the list. Both are valid.

> In the same spirit if before trying that I type tabulation then =<e=
> then tabulation again, nothing is inserted, aka org-tempo seems to work
> only when cursor is at the beginning of line.
>
> Am I right? Is it a feature or a bug?

You can have any amount of whitespace before expanding something a tempo
snippet.  You can’t have anything but whitespace before expanding a tempo
snippet as a block must be the only thing on the line.

(there does appear to be a bug in expanding when there’s something after
the snippet:

- a
  <e| b

I’m not sure what is the right thing to do with “b” in this case.)


> I expected that the example block would have been inserted /correctly/
> indented as in my third example above.
>
>
> The only solution I found for getting things right is to type spaces
> instead of tabulation to let my cursor go to the right column.
>
> Let us consider this snippet.
>
> #+NAME: fourth
> #+begin_src org
>
> - an item
>   - subitem
>     H
> #+end_src
>
> If the cursor is in the =H= position, then if I type =<e= then
> tabulation everything seems right and I get the same result as in
> <<third>>.
>
> Any help would appreciated.

AFAICT everything is working as expected. 

Kind regards,
Rasmus

-- 
Even a three-legged dog has three good legs to lose



      reply	other threads:[~2020-10-01 18:10 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-07  5:15 Bruno BEAUFILS
2020-10-01 17:31 ` Rasmus [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87v9ft97ku.fsf@gmx.us \
    --to=rasmus@gmx.us \
    --cc=emacs-orgmode@gnu.org \
    --subject='Re: org-tempo insertion incoherence (lack of indentation) or misunderstanding' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Code repositories for project(s) associated with this 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).