[ESS] Problem with (setq ess-help-own-frame t) : emacs answers that "ess--switch-to-help-buffer: Window is dedicated to `*help[R](geom_line)*'

Emmanuel Charpentier emm@ch@rpent|er @end|ng |rom |ree@|r
Mon Jan 26 10:14:30 CET 2015

Dear Deepayan, dear list,

On 26/01/2015 07:32, Deepayan Sarkar wrote:
> On Sun, Jan 25, 2015 at 3:45 PM, Emmanuel Charpentier
> <emm.charpentier using free.fr> wrote:
>> Dear list,
>> I wanted to have a different frame for each request to R help. so i used
>> (setq ess-help-own-frame t) in my .emacs.
> I think it's important to understand what you want here. Do you mean
> different frame or different buffer or different window?
> According to [1], a frame is what the rest of the world calls a
> window, and a window is what you get by "splitting" a window (e.g.,
> C-x 2, File => New Window Below).
 > [1] http://www.gnu.org/software/emacs/manual/html_node/emacs/Frames.html

That's what I intended. I am not exactly a newcomer to emacs and spent 
some not inconsiderable time reading its manual about two decades ago. 
I've practised it on about anything from VMS via VT220 (or, of all 
things, a french Minitel...) to Windows to Gnome under Linux. I used the 
word "frame" as defined in emacs manual (e. g. something you can create 
by C-x 5 2...).

> I think the default behaviour of ESS is to have a different buffer for
> each help request, which is probably exactly what you want.


> The
> question is, where should it be displayed? ESS seems to use the last
> help window used if any, and creates a new one if none exists.

Yes. My point is that, currently, this does *NOT* work. Let's illustrate 
the situation : I have set ess-help-own-frame to t. I requested help on 
foo by typing "?foo" at the R command loin in the *R* buffer : emacs 
created a frame displaying foo's online help. So far, so good. But now I 
need help on "bar" :

When I request help on bar by typing "?bar" at the R command line, emacs 
does *NOT* display bar's online help anywhere : it beeps and displays 
"Window is dedicated to `*help[R](bar)*'" in the minibuffer of the frame 
displaying foo's online help.

IMNSHO, this is a bug, at least to the extend that this behaviour is not 
what is documented.

> When you say you want  a new frame for it, you mean that a new window
> (in the non-Emacs sense) should be created. Is that really what you
> want?

Exactly : what I want is to be able to have one, two or n help frames 
(yes, "windows" in X parlance) available on the screen as necessary : 
since R has now about 5000 available packages, I am unable to learn the 
syntax and arguments of all the available functions in those packages 
(even if Brian Ripley and a few monsters of the same kind seem to be 
able to, I'm a mere mortal...), and online help on more than one 
function at a time is a necessity.

A nice touch (but maybe not very simple to implement in elisp) could be 
to have emacs to kill the related help buffer when the user kills the 
frame it's displayed in by using system-level facilities.

> -Deepayan
>> I have a problem : the first call ("?geom_line" at the R prompt) works
>> fine, but a second call ("?geom_linerange" at the R prompt) ends up in
>> error with "ess--switch-to-help-buffer: Window is dedicated to
>> `*help[R](geom_line)*' in the minibuffer (retrieved form the *Messages*
>> buffer).
>> (setq ess-help-own-frame 'one) works as advertised. The code (in
>> ess-help.el) is not specially enlightening : it uses *ONE* frame,
>> defined in (defvar ess-help-frame ...). So it appears that the code *is*
>> intended to display exactly *one* help page at a time, with two
>> variants :
>>          - switching to the last requested help page when ess-help_own-frame is
>> 'one
>>          - raising an error when ess-help-own-frame is t and the ess-help-frame
>> still exists.
>> Do you see a way to effect what I *thought* was advertised : at each
>> call to the R help system, open (if necessary) a new frame to display
>> the relevant help page ?
>> Sincerely,
>>                                          Emmanuel Charpentier
>> PS : I'd appreciate being CC'd of answers (including "Go to hell if
>> necessary) : I do not follow ess-help on a regular basis. (Yes, I
>> should... but my days are still 24 hours long, despite my wishes...).
>> ______________________________________________
>> ESS-help using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/ess-help

More information about the ESS-help mailing list