From: gerard.vermeulen@posteo.net
To: Ihor Radchenko <yantar92@posteo.net>
Cc: Emacs orgmode <emacs-orgmode@gnu.org>,
emacs-orgmode-bounces+gerard.vermeulen=posteo.net@gnu.org
Subject: Re: [PATCH] org-babel-demarcate-block: split using element API
Date: Mon, 26 Feb 2024 09:06:54 +0000 [thread overview]
Message-ID: <b8f840028dd104391bdaab1caf4c59c4@posteo.net> (raw)
In-Reply-To: <87y1b8loop.fsf@localhost>
[-- Attachment #1: Type: text/plain, Size: 446 bytes --]
On 25.02.2024 13:21, Ihor Radchenko wrote:
> gerard.vermeulen@posteo.net writes:
>
>> I added the caveat:
>> This patch is incompatible with `org-babel-edit-prep:<LANG>' functions
>> that signal `user-error's.
>> to the commit message and cleaned it up a bit.
>
> You may wrap `org-indent-block' into `condition-case' to catch
> user-errors.
Sorry, I did attach an old version of no-user-errors-in-edit-prep.org.
Corrected.
Regards -- Gerard
[-- Attachment #2: no-user-errors-in-edit-prep.org --]
[-- Type: application/octet-stream, Size: 2281 bytes --]
The caveat is not a real constraint, since Org has limited support for
source block editing in an Org mode buffer when an
`org-babel-edit-prep:<LANG>' function signals an user-error. Demo:
#+begin_src emacs-lisp -n :results silent
;; Limited source block editing in an Org buffer.
(defun edit-prep-user-error (_info)
(user-error "Signaling user-errors is harmfull"))
(defun org-babel-edit-prep:python (info)
(edit-prep-user-error info))
#+end_src
#+begin_src emacs-lisp -n :results silent
;; Supports source block editing in an Org buffer.
(defun edit-prep-message (_info)
(message "Displaying messages is harmless"))
(defun org-babel-edit-prep:python (info)
(edit-prep-message info))
#+end_src
When org-babel-edit-prep:python displays a message and without using
M-x org-edit-src-code, it is possible to insert newlines like any
other character in the block below:
#+begin_src python -i -n :results silent
# comment
#+end_src
But when org-babel-edit-prep:python signals an user-error, inserting a
newline differs from inserting other characters:
1. The newline gets inserted but the edit buffer changes state (turns
yellow on my system)
2. Typing any character does not work, but I get in the message buffer:
- "Cannot modify an area being edited in a dedicated buffer"
3. After M-x org-edit-src-code I get in the message buffer:
- "Return to existing edit buffer ([n] will revert changes)? (y or n) y"
- "edit-prep-user-error: Signaling user-errors is harmfull"
4. It is possible to go back immediately to the Org mode buffer to
insert a character sequence (terminated by a newline that changes
the state of the edit buffer back to 1).
When org-babel-edit-prep:python displays a message, I never see
turning the state of an Org source buffer to "dedicated" when editing
the block in an Org mode buffer.
I am sure that the "dedicated" state of the Org source buffer is
related to the warnings: "Warning (org-element):
‘org-element-at-point’ cannot be used in non-Org buffer #<buffer *Org
Src no-user-errors-in-edit-prep.org[ python ]*> (python-mode)" when I
try to split the blocks by demarcation with the patch.
#+begin_src emacs-lisp -n :results silent
(condition-case nil
(user-error "Hidden")
(user-error "Shown"))
#+end_src
prev parent reply other threads:[~2024-02-26 9:07 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-30 19:13 [PATCH] org-babel-demarcate-block: duplicate switches too gerard.vermeulen
2023-12-31 14:28 ` Ihor Radchenko
2024-01-01 12:52 ` gerard.vermeulen
2024-01-02 10:48 ` Ihor Radchenko
2024-01-02 20:20 ` [PATCH] org-babel-demarcate-block: split using org-element instead of regexp gerard.vermeulen
2024-01-03 15:11 ` Ihor Radchenko
2024-01-04 8:59 ` gerard.vermeulen
2024-01-04 14:43 ` Ihor Radchenko
2024-01-07 18:49 ` [PATCH] org-babel-demarcate-block: split using element API gerard.vermeulen
2024-01-08 12:08 ` Ihor Radchenko
2024-01-08 20:25 ` gerard.vermeulen
2024-01-09 7:49 ` gerard.vermeulen
2024-01-09 10:50 ` gerard.vermeulen
2024-01-09 14:49 ` Ihor Radchenko
2024-01-13 14:04 ` gerard.vermeulen
2024-01-13 15:17 ` Ihor Radchenko
2024-01-13 20:16 ` gerard.vermeulen
2024-01-14 10:53 ` gerard.vermeulen
2024-01-14 12:16 ` Ihor Radchenko
2024-01-14 19:18 ` gerard.vermeulen
2024-01-15 9:37 ` gerard.vermeulen
2024-01-16 13:34 ` Ihor Radchenko
2024-02-19 9:46 ` Ihor Radchenko
2024-02-19 13:01 ` gerard.vermeulen
2024-02-21 9:40 ` Ihor Radchenko
2024-02-21 18:19 ` gerard.vermeulen
2024-02-22 16:28 ` gerard.vermeulen
2024-02-23 13:43 ` Ihor Radchenko
2024-02-25 12:06 ` gerard.vermeulen
2024-02-25 12:21 ` Ihor Radchenko
2024-02-26 8:51 ` gerard.vermeulen
2024-02-28 11:54 ` Ihor Radchenko
2024-02-29 9:50 ` gerard.vermeulen
2024-02-29 11:56 ` Ihor Radchenko
2024-02-29 17:33 ` gerard.vermeulen
2024-03-03 13:08 ` Ihor Radchenko
2024-03-03 15:45 ` gerard.vermeulen
2024-03-04 10:12 ` Ihor Radchenko
2024-03-04 11:40 ` gerard.vermeulen
2024-03-04 11:51 ` Ihor Radchenko
2024-02-26 9:06 ` gerard.vermeulen [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=b8f840028dd104391bdaab1caf4c59c4@posteo.net \
--to=gerard.vermeulen@posteo.net \
--cc=emacs-orgmode-bounces+gerard.vermeulen=posteo.net@gnu.org \
--cc=emacs-orgmode@gnu.org \
--cc=yantar92@posteo.net \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).