On Sun, May 31, 2015 at 12:19:51PM -0400, Hendrik Boom wrote: > On Thu, May 28, 2015 at 07:16:55PM -0700, Isaac Dunham wrote: > > On Wed, May 27, 2015 at 04:54:53PM +0200, Laurent Bercot wrote: > > > On 27/05/2015 12:12, Hendrik Boom wrote: > > > >I'm in the process of writing (yet) a(nother) editor and output > > > >formatter, > > > >and on reading this, I started to wonder -- just how could one separate > > > >a command-line version from the UI? I can see that the output > > > >formatter can be so separated (and very usefully), but the actual > > > >editing? > > > > > > Maybe I'm misunderstanding the question, as I'm unfamiliar with the > > > internal of editors. But IIUC, an editor is, by definition, a user > > > interface, so the command-line / UI separation looks impossible or > > > irrelevant to me here. > > > However, there are still some separations that you can perform when > > > designing an editor. Right off the top of my head: > > > - Core functions vs. actual interface, which could be terminal-based > > > or X-based. Think vim vs. gvim, or emacs -nw. > > > - programmable editor commands vs. interface to enter those commands. > > > Think the sed engine in vi, or the LISP engine in emacs. > > > > > > If you factor your work correctly, it should be trivial for a program > > > to get access to your editor commands via a library function call - and > > > you can make a command-line tool to wrap useful calls. Also, there could > > > > nvi (the Berkeley rewrite of vi, after abandoning their first version) > > uses a shared backend (vi-ipc) connected to the frontend via pipe(). > > There are about four frontends: terminfo-based (curses was derived > > from the code for this), tk, motif, and gtk. > > I ended up finding out this as a result of making the motif frontend > > build/work again. > > Thanks. I should probably look into that. It might be illumination. > Which version of the code or inteernal documentation should I be > looking for? And where?
I think what I used was http://repo.or.cz/w/nvi.git, and the vi-ipc code is in ipc/. However, I'm not seeing much of anything by way of documentation. HTH, Isaac Dunham _______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng