Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support XS6 #45

Merged
merged 6 commits into from Nov 14, 2016

Conversation

@rdavisau
Copy link
Collaborator

commented May 12, 2016

(Not ready to merge!)

This PR aims to update Continuous to support XS6 by making the changes required to support the new Roslyn based architecture. It addresses #43. As I understand it, we need to do the following:

  • Update non-core code to be compatible with changes in the v6 IDE apis
  • Modify the ContinuousEnv.MonoDevelop.cs file to add Rosyln-based type identification
  • Modify the ContinuousEnv.MonoDevelop.cs file to add Roslyn-based watch expression functionality
  • Test it all properly, make sure things still work as expected
  • Check this doesn't break the VS side of things

To get it up and running, I skipped the watch expression functionality, so at this point we have working live-reload that I have tested in basic scenarios. I will look to add back the watch functionality and test it in more complicated ways in the coming days; to me it all looks pretty achievable.

With XS6 support we will finally have the holy grail -- live reload + dark theme support. The future really is now!

@rdavisau

This comment has been minimized.

Copy link
Collaborator Author

commented May 13, 2016

Ok - I've added back the watch functionality for declarations/assignments and it looks to be working well. As with the live reload I haven't tested it in anger though.

I have to confess I'm not sure what these lines handle, and my XS5 setup is too busted for me to experiment with it. If you let me know what that block does, I can include it here. 🎉

@rdavisau

This comment has been minimized.

Copy link
Collaborator Author

commented May 14, 2016

Naively I had ignored the dependency identification problem and that became clear after some testing 🚑. I have added that in - with a potentially controversial deviation from the original. The "dependencies" are taken at the document root, rather than within declaration. This is incorrect (not all the types identified are dependencies), but in testing it results in a more resilient/longer lived coding session because adding new files or classes does not require a reload. I don't believe this was possible previously without nesting the class in an already 'known' class.

I haven't noticed any issues with this less targeted approach; but I'll keep testing to see whether it is a reasonable change to make. Also interested in your views on it!

@SmartyP

This comment has been minimized.

Copy link

commented Jul 21, 2016

Is this in a usable state currently with XS6?

@rdavisau

This comment has been minimized.

Copy link
Collaborator Author

commented Jul 22, 2016

Howdy - I just pushed a change to the version of XS that the addin targets - with that you can build this branch and install the add in manually. I use it most days. Because of the comment above, it is a little 'greedier' than the XS5 version, but there is only one line to change in the source if you prefer the old behaviour.

@praeclarum

This comment has been minimized.

Copy link
Owner

commented Nov 14, 2016

❤️❤️❤️

@praeclarum praeclarum merged commit 154891d into praeclarum:master Nov 14, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.