Code Monkey home page Code Monkey logo

continuous's People

Contributors

praeclarum avatar rdavisau avatar sushihangover avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

continuous's Issues

System.NotSupportedException

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

Partial Classes Support

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.

Show Private Fields in Object Inspector

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.

Ctrl-Shift-Return / Ctrl-Shift-C / typing gives unexpected result

When trying out Continuous by following your guidelines in the README I can't get my changes appear. When I select a complete function and press Ctrl-Shift-Return then debugging is stopped. If I press Ctrl-Shift-Return / Ctrl-Shift-C I get the following screen:
screen shot 2015-12-23 at 20 31 59

What do I do wrong?

Object Method View

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.

Assert Trace Values

I want to close the gap between testing and continuous coding.

To do that, I want to "assert" traced values from #23.

These assertions then become a test that we can code gen.

The context of the asserts are the object initialization (#14) or method calls (#16).

Xamarin.Forms XAML Support

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...

Version 1 Work Items

This is a working document of remaining tasks to completed for version 1.

This document is also soliciting feedback because this list of features is pretty old and I'm curious what real users want.

On with the features.

Desired Features

  • #6 State Restoration
  • #7 Network Discovery

Opt out of Class Hierarchies

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.

The import type 'Foo' is defined multiple times

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.

Look in Unopened Files to Find Types

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!

F# Support

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. :-)

List of Previous Types in GUI

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.

Visual Studio Support

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.

State Restoration

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.

Remember the Path of Viewed Object

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.

NotSupportedException in CSharp.Evaluator.Evaluate from VM.Eval

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 

UIView Flickering When Editing

When editing UIViews, they flicker on the screen.

I think they need to be hosted in navcontroller whose root can be swapped out easily.

Evaluate Selection in Context of the Object

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.

Automatically Clear Edits When the App Runs

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.

Improve Navigation Bar Display

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 :-)

Plugin System Proposal

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!

Network Discovery

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?

Object Initialization Support

Let's allow developers to specify constructor args and other init statements for objects. This removes the necessity to create "test" classes in code.

Newly added class isn't sent to be evaluated

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 missingSingleFileSolution' using directive?

SingleFile_cs.txt

screenshot 2015-11-20 10 26 31

Show Trace Values in Editor

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.

Bump MD Add-in nuget

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.

UIView Preview Flickers

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.

Improve Error Display in GUI

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.

Commented code with // is not ignored

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; */

C# 6 Support

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.

Watchdog on Execution

Infinite loops are too easy to write. The evaluator should have a watchdog that calls "Interrupt" if execution goes too long.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.