l...@phdk.org writes:

> 2. At first I just wanted to report that tabbing with
> `org-src-tab-acts-natively' at nil didn't follow
> `org-edit-src-content-indentation', but looking into it I realize
> there's a nuance to it. I think there is one "actual" bug and two
> ambiguities in intention/design. The description of `org-indent-line'
> says:
>
>> - In the code part of a source block, use language major mode
> to indent current line if ‘org-src-tab-acts-natively’ is
> non-nil.  *If it is nil, do nothing.*   (<-- This is the current behavior of 
> `org-indent-region' and therefore `org-indent-block')
>>
>> - Otherwise, *indent like the first non-blank line above.* (<-- This is the 
>> current behavior of `org-indent-line')

Note that indenting region and a single line are not the same.
Indenting a single line should ideally not touch any other lines, which
puts limitations on the allowed logic. We partially defy this when using
`org-src-tab-acts-natively', which is mostly design limitation of the
`org-babel-do-in-edit-buffer' 

> MRE:
> With `org-src-tab-acts-natively' set to nil and pointer in content of the 
> following, press TAB.
> #+begin_src fundamental
>    foo
> bar
> #+end_src
> Expected: Nothing happens.
> Actual: Indent is set to 3, equal to line above.

> So that's the actual bug, nothing with the content indent
> specifically. However, I'm not sure that bringing it in line with the
> description is necessarily what makes best sense. Right now there's
> even a test that contradicts the function description, and the
> description of `org-src-tab-acts-natively' also doesn't say anything
> about what happens when it is set to nil. I can't speak for the people
> who already use this setting, but having TAB fall back to the current
> behavior of `org-indent-line' makes more intuitive sense to me than
> having TAB do nothing when you disable native indent.

According to
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=f58201b1e1b0788098b1bbca45e06e015f5b0b7b
the current behavior is intentional. So, I believe that the bug is in
the docstring that has not been updated in that commit.

> I think it needs to be clarified whether the intent of the customization is
> to completely disable all auto-indentation of code from the
> org-buffer; versus just disabling the use of temporary edit-buffers at
> every newline/TAB, e.g. to get around issues with language modes or
> slow-downs or whatever.

> (I guess having all three settings could also make sense, since just keeping
> your fingers off of TAB wouldn't fully achieve the `do nothing' mode.)

I am not 100% sure what exactly is the problem in the docstring of
`org-src-tab-acts-natively'. 

-- 
Ihor Radchenko // yantar92,
Org mode maintainer,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>

Reply via email to