praeclarum / continuous Goto Github PK
View Code? Open in Web Editor NEWContinuous IDE Addin enables live coding from Xamarin Studio and Visual Studio
License: MIT License
Continuous IDE Addin enables live coding from Xamarin Studio and Visual Studio
License: MIT License
Selections are currently evaluated at the top level. It would be more convenient if they were executed in the context of the class so that you can quickly inspect fields and run methods.
Currently the server binds to 127.0.0.1 and listens on a fixed port. The client connects to 127.0.0.1 with that port.
This works great for the iOS simulator, but pretty much nowhere else.
It would be nice if the clients and servers can discover each other. This would enable Visual Studio bridging scenarios and also running on Android devices. It would also enable previewing objects on multiple platforms simultaneously.
So, we need a network discoverability layer that works on many platforms. Any ideas?
When editing UIViews, the screen flickers. It's super annoying, yo.
To fix - host the view in a View Controller which is hosted in a nav controller, then swap out the root. This is actually how things used to work.
I have an auto-generated ViewController from a storyboard. The ViewController has a code-behind ".designer.cs" file, which is a partial class for the ViewController. I have my outlets defined there, and when those are referenced from the main part of the class (not the designer file), it gives an error like this when trying to visualize the class:
error: The name `blahTableView' does not exist in the current context
In addition, when you get this error in a popup, not only will the live-coding not work for that class due to the error, but the Tools menu in Xamarin Studio still says "Stop visualizing BlahView", so it didn't recognize the error case.
When attempting to visualize a ViewController that uses Views defined in the same source file, the plugin appears to have trouble finding the view.
In my case, I have a "SingleFile" template that contains the View, VC, AppDelegate, and Main. When attempting to visualize the SimpleViewController
, I get:
error: The type or namespace name ContentView' could not be found. Are you missing
SingleFileSolution' using directive?
The Done button is a vestige and should be removed.
Also, the bar should not be shown for in certain scenarios. What are those? I dunno. Help me out. Let me know when to and when not to show the bar by default.
Of course, really real apps should control the bar appearance in the ViewWillAppear method :-)
It looks like the evaluator is not ignoring commented code with double slashes
// cameraButton.Text = value.SourceElement;
2015-12-30 13:40:49.099 LongoMatch.Mobile[37301:3366304] ERROR: The name `cameraButton' does not exist in the current context
2015-12-30 13:40:49.102 LongoMatch.Mobile[37301:3366304] EVAL ERROR: Mono.CSharp.FatalException: The name `cameraButton' does not exist in the current context
Instead if I comment it with /* */ it's ignored correctly.
/* cameraButton.Text = value.SourceElement; */
I want to view the result of method calls as I edit the function. (Bonus points if trace points are added and integrated into the editor.)
I'm not quite sure where to specify the arg values, but this feature would really extend the utility of Continuous.
The Object Inspector is meant to be a development aid but is currently limited to showing public fields and properties. During development its best to see everything though.
This feature is generally easy but I would like to filter out compiler generated fields that are reflected in properties.
The evaluator trips over
using Foo = System.String
Continuous currently only sees type definitions that have been opened in the editor. This severely limits its ability to find dependencies.
I am not sure what the perf implications are of scanning whole solutions in Xam Studio or VS so some care must be taken not to cause problems with these editors.
I also don't actually know how to do this in XS, hints are welcome!
I like to bounce around from class to class as I'm editing and it's annoying to have to move the cursor to preview a class.
I imagine keeping a sorted history and giving an easy way for the user to select classes.
As in title.
When editing UIViews, they flicker on the screen.
I think they need to be hosted in navcontroller whose root can be swapped out easily.
At startup I get the following error:
ERROR IN vm.Eval
System.NotSupportedException: Specified method is not supported.
at Mono.CSharp.AssemblyDefinitionDynamic.Create (System.AppDomain domain, AssemblyBuilderAccess access) [0x00000] in /Users/builder/data/lanes/2356/3c0ec355/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/mcs/reflection.cs:223
at Mono.CSharp.Evaluator.CompileBlock (Mono.CSharp.Class host, Mono.CSharp.Undo undo, Mono.CSharp.Report Report) [0x00066] in /Users/builder/data/lanes/2356/3c0ec355/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/mcs/eval.cs:705
at Mono.CSharp.Evaluator.Compile (System.String input, Mono.CSharp.CompiledMethod& compiled) [0x000e3] in /Users/builder/data/lanes/2356/3c0ec355/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/mcs/eval.cs:263
at Mono.CSharp.Evaluator.Evaluate (System.String input, System.Object& result, System.Boolean& result_set) [0x00006] in /Users/builder/data/lanes/2356/3c0ec355/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/mcs/eval.cs:354
at LiveCode.Server.VM.InitIfNeeded () [0x00096] in <filename unknown>:0
at LiveCode.Server.VM.Eval (System.String code) [0x0001c] in <filename unknown>:0
at LiveCode.Server.HttpServer+<HandleRequest>c__async1+<HandleRequest>c__AnonStorey3.<>m__0 () [0x00006] in <filename unknown>:0
I've added the nuget package and the "new LiveCode.Server.HttpServer().Run();" line to my FinishedLaunching but I always get the exception.
XamarinStudio version: 5.10 (build 871)
Xamarin Inspector version: 0.3.2.3
What is the source code License for Continuous?
When building for Xamarin Studio 6, my app fails to watch a type.
It seems like Mono.CSharp is not being swapped out by the inspector anymore. I have run with Inspector and it is able to execute code dynamically, but Continuous is not able to.
@rdavisau are you seeing this error?
error: System.NotSupportedException: Specified method is not supported.
at Mono.CSharp.AssemblyDefinitionDynamic.Create (System.AppDomain domain, System.Reflection.Emit.AssemblyBuilderAccess access) [0x00000] in /Users/builder/data/lanes/3985/62816dd6/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/mcs/reflection.cs:223
at Mono.CSharp.Evaluator.CompileBlock (Mono.CSharp.Class host, Mono.CSharp.Undo undo, Mono.CSharp.Report Report) [0x00066] in /Users/builder/data/lanes/3985/62816dd6/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/mcs/eval.cs:707
at Mono.CSharp.Evaluator.Compile (System.String input, Mono.CSharp.CompiledMethod& compiled) [0x000e3] in /Users/builder/data/lanes/3985/62816dd6/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/mcs/eval.cs:268
at Mono.CSharp.Evaluator.Evaluate (System.String input, System.Object& result, System.Boolean& result_set) [0x00006] in /Users/builder/data/lanes/3985/62816dd6/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/mcs/eval.cs:359
at Continuous.Server.VM.Eval (System.String code) [0x00069] in /Users/fak/Dropbox/Projects/Continuous/Continuous.Server.Core/VM.cs:37
I would like to install the add-in in Xamarin Studio 6.4.1 (build 1), but fails with the install with the message: The installation failed!
Errors are currently shown in the console output of apps and in pop up dialogs.
This is a bit annoying. It would be nice to show the last error in the GUI with a link to the source line.
At Startup I have this page
https://www.dropbox.com/s/eb88uumttnjzfvo/Screenshot%202015-12-25%2022.22.20.png?dl=0
If I press "Visualize Class" menu, I have this
https://www.dropbox.com/s/j5dzen5nral2m1l/Screenshot%202015-12-25%2022.23.44.png?dl=0
Is it correct?
Title says it all.
I would say a clone of the UI built in XS should suffice - once that's been settled.
For this to work with iOS, we will also have to figure out #7 Network Discovery.
We want XAML previews!
I have made progress adding markup to the tracked information of classes. Just need a server endpoint that knows what to do with it.
So close...
Hi.
I receive this exception when try to use Continuous on IOS6 simulator.
Got it installed by downloading from https://www.nuget.org/packages/Continuous/, and create new file-based NuGet repository on a directory containing the downloaded package.
When visualizing an object it would be nice if state from its previous version was propagated to the new version.
This would decrease the need to write default constructors that populate test data and could also help with writing interaction logic.
Whenever trying to visualize a ViewController which inherits from a base class of type MvxViewController a null object exception is thrown from the main application. I suspect the MVVM cross framework is not reloaded when using visualization of single class. Any suggestions on how to address?
Debug :
You can dig through an object graph using the object inspector. But your position in the graph is reset to the root object whenever you make an edit. It would be more useful if the inspector remembered your path and tried to walk it again to show you the same screen as you had before the edit.
Infinite loops are too easy to write. The evaluator should have a watchdog that calls "Interrupt" if execution goes too long.
I created a project at http://addins.monodevelop.com/Project/Index/209
Now I just need to make sure the repo is organized correctly.
Let's allow developers to specify constructor args and other init statements for objects. This removes the necessity to create "test" classes in code.
Nothing much we can do here aside from switching to an assembly based process (see #9).
Let's hope the Inspector team does our work for us.
Was watching this video and this project really intrigued me.
Is there a possibility of adding support for Jetbrains Rider?
Would love to be able to use Continuous in Visual Studio 2015
This is the grand ultimate feature I want out of Continuous:
I want to see variable values as I type a method - inline in the editor would be ideal.
Sometimes the dependency tracker gets a little greedy and pulls in too much. It would be nice to have a manual "black list" of classes not to ever pull in.
From Ryan Davis:
Getting long term here, but with some thought you might be able to enable a plugin-architecture so that people can build more specific functionality into Continuous for different use cases without polluting the core api and experience. For example, a SpriteKit plugin might intercept the reload process and rather than reloading a scene entirely when a class changes, it could replace existing nodes in the scene of that class with their new implementation. Or, a Refit plugin might intercept changes to a refit api definition and invoke the required compilation steps in order to be able to send a valid new implementation. An iOS nib plugin might watch for viewcontroller .xib changes, then invoke ibtool to compile them and send them up. Obviously this could get pretty complicated, especially if you need to support XS and VS; it might not be feasible.
I love this idea but am not sure how to go about designing the API. Proposals are welcome!
The MD add-in nuget is out of date and should be updated to 0.3
But when I do this, I lose async functions. Not sure what's going on.
When you run the app, presumably, all your edits are now baked into the app's assemblies. This means Continuous can safely clear its cache of edits and reduce the number of types it has to send to the device.
I used statics because I was lazy. But now that there's a ContinuousEnv
, we can create an instance TypeCode store and use that.
The Xamarin Inspector team informs me that the F# compiler doesn't currently work on iOS.
To make F# work we need to send newly compiled assemblies instead of sending code to the device.
I haven't experimented at all with this and just hope we can make it work. :-)
I am experiencing the following error when I try to visualize a class:
2015-12-29 19:55:37.754 LongoMatch.Mobile[35844:3225971] ERROR: The imported type `LongoMatch.Drawing.Widgets.TeamTagger' is defined multiple times
Let me know how can I add more details to help you, because that's the only error I see in the ouput, no exception is raised or stack trace printed in the output logs.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.