[MonoDevelop] C# REPL Addin

Scott Stephens stephens.js at gmail.com
Mon Feb 11 03:40:07 UTC 2013

I've got everything in basically working order now.  You can fire up an
interactive session either with the same references as a project you're
working on, or just a generic one, send code to it from the editor, or type
it directly in.

I've only done a little testing at this point, and only on Mac OS X, so
it's probably still buggy.  I hope to put it to some use in the coming
week, so by the end of the week I ought to have a more informed opinion of
its stability or lack thereof.

On Tue, Feb 5, 2013 at 10:43 PM, Scott Stephens <stephens.js at gmail.com>wrote:

> I've become more convinced that the exceptions I'm seeing are handled
> exceptions, and the dialogs I'm seeing are essentially a quirk or a bug in
> MonoDevelop.
> I also solved my output problem, which means that at this point the Addin
> is basically functional: you can get a C# REPL pad inside MD, type in stuff
> and see the results all in the pad.  It's probably still quite unstable, so
> that's the next item on the list, then I'll add in the ability to send text
> to it from the editor pads, at which point I will reach my goal for the
> first version of this thing.
> On Tue, Feb 5, 2013 at 9:40 AM, Scott Stephens <stephens.js at gmail.com>wrote:
>> I'm not using XML serialization.  I do use System.Text.Encoding.UTF8,
>> perhaps that calls into some System.Xml stuff under the hood?
>> To a certain extent the continuation after the exception messages makes
>> me think they must be handled too, but I'm not sure why MD would break on
>> them in that case.  I've never messed with the Exceptions menu before (took
>> me about 20 minutes just to find it just now), and it seems like the
>> default is to not break on any unhandled exceptions.  But I can't be sure
>> it's not set to something weird as I'm not on my home computer at the
>> moment.  I'll check this out for sure when I get home tonight.
>> On Tue, Feb 5, 2013 at 7:03 AM, Adam Connelly <adam.rpconnelly at gmail.com>wrote:
>>> You're not using XML serialisation, are you? In that case, the
>>> exceptions could be when the serialisation assembly is initially being
>>> generated. What happens in that case is that you get a
>>> FileNotFoundException (I think), and then a serialisation assembly is
>>> generated. After this point you don't get the exception anymore.
>>> If you are able to continue, it's probably because it's a handled rather
>>> than unhandled exception, and you just need to tell monodevelop not to
>>> break on handled exceptions.
>>> That's one possibility anyway.
>>> On 4 Feb 2013, at 23:45, Scott Stephens <stephens.js at gmail.com> wrote:
>>> Hi all,
>>> I've been working on an MD Addin to provide a C# REPL.  It's by no means
>>> complete, but it's now reached the "kind of working" stage, where the
>>> project would benefit from other developers' inputs, should anyone be so
>>> inclined.
>>> Anyhow, if anyone wants to take a look, you can find it here:
>>> https://github.com/scottstephens/CSharpReplAddin
>>> I should emphasize that at this point even basic features are not yet
>>> complete, it is very lightly tested on Mac OS X only, there's no
>>> documentation, and it's probably quite buggy and unstable.  But it's a
>>> start :-)
>>> Some implementation details for the curious: it's basically a thin
>>> wrapper around Mono.CSharp.Evaluator.  It requires Mono 3.0.x.  A separate
>>> process is launched to host the interactive session.  The MD process
>>> communicates with that process over a TCP loopback connection.  The key
>>> basic feature that it currently lacks is the ability to send standard
>>> output from the process that hosts the interactive session to the MD Pad.
>>>  An attempt at this has been implemented using the output stream
>>> redirection facilities of System.Diagnostics.Process, but it doesn't work,
>>> and I don't know why yet.  I'm also getting exceptions sometimes when I run
>>> the addin in debug mode. They are from attempting to load System.Xml and
>>> Microsoft.CSharp assemblies, and it appears that they are trying to be
>>> found in the build directory of my project.  Curiously, they do not show up
>>> in release mode, nor do they prevent the proper functioning of the program
>>> if I just continue on.  If anybody has any insight on those two issues,
>>> they would be of particular interest to me, but I'd be interested in any
>>> comments you might have.
>>> -- Scott
>>> _______________________________________________
>>> Monodevelop-list mailing list
>>> Monodevelop-list at lists.ximian.com
>>> http://lists.ximian.com/mailman/listinfo/monodevelop-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/monodevelop-list/attachments/20130210/d2529c68/attachment.html>

More information about the Monodevelop-list mailing list