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

Added Roslyn Completion Service #1534

Merged
merged 4 commits into from
Sep 15, 2016
Merged

Added Roslyn Completion Service #1534

merged 4 commits into from
Sep 15, 2016

Conversation

OmarTawfik
Copy link
Contributor

@OmarTawfik OmarTawfik commented Sep 13, 2016

@Microsoft/visualfsharp

In this PR:

  • Added Completion Service
  • Fixed tests to run against Roslyn version of VS binaries

@Pilchie
Copy link
Member

Pilchie commented Sep 13, 2016

Also tagging @dotnet/roslyn-ide to take a look (@CyrusNajmabadi, @jasonmalinowski, @rchande, @mattwar)

open Microsoft.FSharp.Compiler.Range
open Microsoft.FSharp.Compiler.SourceCodeServices

type internal FSharpCompletionProvider(workspace: Workspace, serviceProvider: SVsServiceProvider) =
Copy link

Choose a reason for hiding this comment

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

serviceProvider: SVsServiceProvider [](start = 61, length = 35)

This is sort of a layering violation. Is there no other way to implement this without accessing other VS layer services?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

AFAIK, no, in the existing implementation (see XmlDocumentation.fs). Can you please explain?

Copy link
Member

Choose a reason for hiding this comment

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

Is the IVsXMLMemberIndexService the only reason for the layer violation? Seems like an abstraction could be added to solve this.

Copy link

Choose a reason for hiding this comment

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

The general idea for these providers is that they are not dependent on VS, so they can work outside of VS, either to run out of proc or be used within a different host.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes. We can log a future work item for redesigning this.

Copy link
Member

Choose a reason for hiding this comment

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

Yup. @OmarTawfik and I chatted about that easier. For now, this is VS-only, and we can factor it differently after this goes in.

Copy link

Choose a reason for hiding this comment

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

okay, that was my only hesitation.

@OmarTawfik
Copy link
Contributor Author

@dotnet-bot test this please

@OmarTawfik OmarTawfik merged commit fd874f2 into dotnet:roslyn Sep 15, 2016
@OmarTawfik OmarTawfik deleted the roslyn-completion branch September 15, 2016 19:48
@CyrusNajmabadi
Copy link
Member

Looks ok to me.

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.

7 participants