* Why I do (setopt org-src-preserve-indention t) Sometimes, I want to do small Elisp edits without calling org-edit-source-code. Below, I describe a long standing bug (several years) that is also present in main. I use smartparens, but it reproduces also in a clean environment (minimal init.el) using main.
#+begin_src emacs-lisp :results silent (setopt org-edit-src-content-indentation 4 ;; to amplify the effect org-src-preserve-indentation nil) #+end_src Place point after the first open parenthesis below and type return. #+begin_src emacs-lisp (()) #+end_src This moves the code 4 spaces to the right. Place point after the first open parenthesis of the lowest line below and type return. #+begin_src emacs-lisp ( ( )) #+end_src This moves the code again 4 spaces to the right. It does not matter whether the the parentheses contain for instance a function definition. * Therefore, I work with those settings breaking the default. #+begin_src emacs-lisp :results silent (setopt org-edit-src-content-indentation 2 org-src-preserve-indentation t) #+end_src Place point after the first open parenthesis below and type return. #+begin_src emacs-lisp (()) #+end_src The parentheses remain left-shifted. Place point after the first open parenthis of the lowest line below and type return. #+begin_src emacs-lisp ( ()) #+end_src Again, the parentheses remain left-shifted. #+begin_src emacs-lisp ( ( )) #+end_src The parentheses remain left-shifted. I prefer this over the default. I have only seen it with Elisp blocks. Regards -- Gerard