[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sc-dev] library config

On Wed, Dec 17, 2003 at 04:03:08PM +0100, Arve Knudsen wrote:
> Perhaps the LanguageClient is still a little too tied to console 
> semantics, like parseOptions and printUsage? I'm thinking it should rather 
> contain minimal functionality, common among clients (graphical, console, 
> whatever).

command line parsing is optional, you can use the defaults or pass in
an option struct. i'm working on a gui application that uses the
language client base and does its own command line parsing in addition
to options parsed by the base class (just like the terminal client).

> It offers what I identified as basic services, such as interpreting 
> command lines. I don't know SuperCollider very well yet though, so I could 
> be way off. I implemented it as a concrete class as well, because I dont 
> _think_ it would be necessary to make these services part of the deriving 
> class' interface (the Liskov IS-A principle).

i need the notifications from the library in my subclass to define
primitives etc. without subclassing you'd have to pass function
pointers, which may or may not be more tedious ...

> I'm attaching my version of SC_TerminalClient.cpp and
> SC_ClientBase.cpp in case you care to comment (keep in mind the
> interface could probably use some work).

the language 'user' needs to redefine behavior of two more
aspects, depending on the particular application:

in a gui application the post routines will write to some text output

the tick method needs to be called from the application main loop. i
just realized that AppClock is _not_ supposed to run in a separate
thread, so the terminal client needs to dispatch in its input loop to
periodically trigger the AppClock driver.

> I don't really know how the integration is done with Emacs (there are some 
> SC language files involved from what I can see), but I played around with 
> scripting SC from within Vim (with Python), with an interface to 
> SC_ClientBase generated by SWIG.

emacs just reads from sclang's stdout, passes code to stdin and uses a
fifo to get information back from the language.

> I'm currently able to evaluate blocks/lines of code at least. There
> isnt any existing Vim plugin for SC is there?

none that i know of. i do know some vi freaks, however, who probably
would be very interested in something like that ;)