[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Set Python shell in Org edit buffer
From: |
Jack Kamm |
Subject: |
Re: [PATCH] Set Python shell in Org edit buffer |
Date: |
Tue, 09 Jan 2024 22:21:09 -0800 |
Ihor Radchenko <yantar92@posteo.net> writes:
> See the attached tentative patch.
Thanks!
> ---
> etc/ORG-NEWS | 11 +++++++++++
> lisp/ob-R.el | 20 ++++++--------------
> lisp/ob-julia.el | 16 +++++++++-------
> 3 files changed, 26 insertions(+), 21 deletions(-)
Not sure if you are doing this in a separate commit, but you also need
to make the change to org-src.el to remove
(org-babel-comint-buffer-livep session)
in `org-src-associate-babel-session'. Else,
`org-babel-R-associate-session' won't run if there's no live session,
and hence ESS won't create new session with the right name.
> * Version 9.7 (not released yet)
> ** Important announcements and breaking changes
> +*** ~org-edit-special~ no longer force-starts session in R and Julia source
> blocks
> +
> +Previously, when R/Julia source block had =:session= header argument
> +set to a session name with "earmuffs" (like =*session-name*=),
> +~org-edit-special~ always started a session, if it does not exist.
> +
> +Now, ~org-edit-special~ arranges that a new session with correct name
> +is initiated only when user explicitly executes R/Julia-mode commands
> +that trigger session interactions. The same session will remain
> +available in the context of Org babel.
I tested the patch (plus the additional change to org-src.el), with an
Org file with following 2 blocks:
#+begin_src R :session foo :results output
print('foo')
#+end_src
#+begin_src R :session *bar* :results output
print('bar')
#+end_src
On block "foo", I did C-', and then ess-eval-line. It creates a session
named "foo", as expected.
On block "*bar*", I did the same. It does not create session named
"*bar*", instead evaluating in session "foo". It seems ESS will always
assume you want to evaluate in existing session if one exists, rather
than start a new associated session, and it seems there is no way to
tell it to behave otherwise.
However, calling "M-x R" while editing block "*bar*" does create session
"*bar*" with correct name.
After sessions "foo" and "*bar*" have both been created, doing C-' and
then ess-eval-line will evaluate in the correct session.
It's annoying there's no way to tell ESS to start new session instead of
evaluating in existing one. Here are a few alternatives we could
consider to deal with this:
1. Change the worg/ORG-NEWS, to suggest users make sure the session
exists (either by evaluating a source block or call "M-x R" in edit
block) before running ess-eval-line.
2. Add ob-R and ob-julia customization options (as previously suggested)
to explicitly control the startup behavior (either to auto-start, or not).
3. Submit PR to ESS to add a variable we could let-bind, to force it to
start an associated session rather than evaluate in an existing
non-associated sessions.
Currently I lean towards a combination of #1 and #3, but am not sure,
and happy to go with whatever you think is best.
- Re: [PATCH] Set Python shell in Org edit buffer, Ihor Radchenko, 2024/01/05
- Re: [PATCH] Set Python shell in Org edit buffer, Jack Kamm, 2024/01/07
- Re: [PATCH] Set Python shell in Org edit buffer, Ihor Radchenko, 2024/01/07
- Re: [PATCH] Set Python shell in Org edit buffer, Jack Kamm, 2024/01/07
- Re: [PATCH] Set Python shell in Org edit buffer, William Denton, 2024/01/07
- Re: [PATCH] Set Python shell in Org edit buffer, Ihor Radchenko, 2024/01/08
- Re: [PATCH] Set Python shell in Org edit buffer, Jack Kamm, 2024/01/08
- Re: [PATCH] Set Python shell in Org edit buffer, Jack Kamm, 2024/01/08
- Re: [PATCH] Set Python shell in Org edit buffer, Ihor Radchenko, 2024/01/09
- Re: [PATCH] Set Python shell in Org edit buffer,
Jack Kamm <=
- [FR] Add buffer-local setting to request specific ESS process/session name (was: [PATCH] Set Python shell in Org edit buffer), Ihor Radchenko, 2024/01/10
- Re: [FR] Add buffer-local setting to request specific ESS process/session name (was: [PATCH] Set Python shell in Org edit buffer), Sparapani, Rodney, 2024/01/12
- Re: [FR] Add buffer-local setting to request specific ESS process/session name (was: [PATCH] Set Python shell in Org edit buffer), Sparapani, Rodney, 2024/01/12
- Re: [FR] Add buffer-local setting to request specific ESS process/session name (was: [PATCH] Set Python shell in Org edit buffer), Ihor Radchenko, 2024/01/10
- Re: [FR] Add buffer-local setting to request specific ESS process/session name (was: [PATCH] Set Python shell in Org edit buffer), Sparapani, Rodney, 2024/01/12
- Re: [FR] Add buffer-local setting to request specific ESS process/session name (was: [PATCH] Set Python shell in Org edit buffer), Ihor Radchenko, 2024/01/10
- Re: [External] [FR] Add buffer-local setting to request specific ESS process/session name (was: [PATCH] Set Python shell in Org edit buffer), Richard M. Heiberger, 2024/01/12
- Re: [External] [FR] Add buffer-local setting to request specific ESS process/session name (was: [PATCH] Set Python shell in Org edit buffer), Ihor Radchenko, 2024/01/10
- [PATCH] Add buffer-local setting to request specific ESS process/session name (was: [PATCH] Set Python shell in Org edit buffer), Ihor Radchenko, 2024/01/21
- Re: [PATCH] Add buffer-local setting to request specific ESS process/session name (was: [PATCH] Set Python shell in Org edit buffer), Sparapani, Rodney, 2024/01/21