Lisp HUG Maillist Archive

controlling an editor-pane from afar

I suspect that I'm doing something stupid, but I can't see it.  Maybe someone 
can point out my stupidity...

I had a gui that worked under LWW - among other things, it contained an editor 
pane.  I would call editor:wfind-file-command and editor:goto-line-command 
and everything seemed happy.

I then chopped the gui up into three separate gui's (interfaces) and converted 
the cross-process editor calls to stuff like:

(capi:execute-with-interface *editor* 'editor:wfind-file-command <filename>)
(capi:execute-with-interface *editor* 'editor:goto-line-command <expr>)

where *editor* is a global containing the interface of the editor.

Now, the editor commands don't work reasonably anymore.  The 
wfind-file-command loads a file into my workspace editor - not the 
editor-pane of the gui, and the goto-line appears to have no effect.

If I try the commands manually from the listener, they seem to work.

If I deliver the program and shutdown lispworks (i.e. no interference from any 
other editor pane), the editor commands appear to have no effect.

As I write this - I notice that *editor* is a global which was created in the 
start-up function (run from the listener).

Is this my problem?  What is the "reasonable" way to make another part of the 
gui app (another interface) see this global correctly.  Or, if using a global 
is a bad idea, what is the preferred way to make that other interface 
communicate with the editor interface?

thanx
pt


Re: controlling an editor-pane from afar

I wonder if my problem is more mundane.

I don't seem to know how to programmatically cause a certain file to appear in 
a certain editor window.  Anyone got some hints for me?

thanx
pt

ps. It looks like "fixing" the global variable "problem" made one of my 
problems go away.  Now I just can't get a file to open inside the editor pane 
of my gui...


Updated at: 2020-12-10 08:47 UTC