Skip to content

Add new client/server API for the host process #64

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

Merged
merged 3 commits into from
Dec 11, 2015

Conversation

daviwil
Copy link
Contributor

@daviwil daviwil commented Dec 10, 2015

This set of changes introduces a new client/server API which makes it much easier to create a language server or debug adapter implementation with matching C# client. It also abstracts a "channel" model which enables different transport channels to be used with this client/server API. For now only the standard I/O channel is implemented but other channels could easily be added.

@daviwil
Copy link
Contributor Author

daviwil commented Dec 10, 2015

Still finishing up this PR, need to clean up a few things and merge Doug's latest PR.

@adamdriscoll: Take a look at the changes in src\PowerShellEditorServices.Protocol\MessageProtocol\Channel and see if you think the HTTP/WebSockets implementation could be based on ChannelBase.

# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
# Visual Studio 14
VisualStudioVersion = 14.0.24720.0
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like the solution opens in VS 2013 with no complaints, will leave it like this.

@daviwil daviwil force-pushed the daviwil/client-server-api branch 2 times, most recently from f6e931b to 1706b17 Compare December 10, 2015 16:56
This change introduces a new set of classes that make it much easier to
write a language server or debug adapter and clients for either type of
server.  All client/server logic has been moved to the Protocol library so
that it can be used in other host applications outside of the provided
host process.
@daviwil daviwil force-pushed the daviwil/client-server-api branch from 1706b17 to 8fbd01c Compare December 10, 2015 17:31
This change adds a couple lines to appveyor.yml that can be used to enable
RDP access to the build server when something goes wrong.  To use this
configuration, the developer must uncomment the two lines and make another
commit to their PR branch.  Details are included in the config file.
@daviwil daviwil force-pushed the daviwil/client-server-api branch from ec7fd00 to 9c90e98 Compare December 10, 2015 18:53
This change adds a new /logPath parameter to the host process which is
used to provide unique log paths for host process tests.  These new log
paths will help diagnose issues with individual tests, especially when
running on AppVeyor.
@daviwil daviwil force-pushed the daviwil/client-server-api branch 2 times, most recently from 74e38c0 to 29a560f Compare December 11, 2015 00:22
@daviwil
Copy link
Contributor Author

daviwil commented Dec 11, 2015

After fighting with test failures all day, finally merging this!

daviwil added a commit that referenced this pull request Dec 11, 2015
Add new client/server API for the host process
@daviwil daviwil merged commit bd920c3 into master Dec 11, 2015
@adamdriscoll
Copy link
Contributor

Sweet! Looks great!

@daviwil
Copy link
Contributor Author

daviwil commented Dec 11, 2015

Thanks! I'll finally get NuGet packages posted sometime next week :) Until then you might be able to get by with hacking in the host process while you're writing your new channel implementation.

@daviwil daviwil deleted the daviwil/client-server-api branch December 11, 2015 00:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants