Get declaration list symbols#4204
Conversation
Now that we can include all entities for top level completions, the grouping function can incorrectly group types with the same display name as function overloads. Use the compiled name instead as this includes the namespace.
src/fsharp/service/service.fsi
Outdated
| /// </param> | ||
| /// <param name="userOpName">An optional string used for tracing compiler operations associated with this request.</param> | ||
| member GetDeclarationListSymbols : ParsedFileResultsOpt:FSharpParseFileResults option * line: int * lineText:string * partialName: PartialLongName * ?hasTextChangedSinceLastTypecheck: (obj * range -> bool) * ?userOpName: string -> Async<FSharpSymbolUse list list> | ||
| member GetDeclarationListSymbols : ParsedFileResultsOpt:FSharpParseFileResults option * line: int * lineText:string * partialName: PartialLongName * getAllSymbols: (unit -> AssemblySymbol list) * ?hasTextChangedSinceLastTypecheck: (obj * range -> bool) * ?userOpName: string -> Async<FSharpSymbolUse list list> |
There was a problem hiding this comment.
Can you make getAllSymbols optional please? The default should just be to return empty
@vasily-kirichenko or @auduchinok Can you review too please?
Thanks
|
@KevinRansom That's no problem at all - I think that I am the only consumer of this API. I wanted to know if I should change Just seems a little odd if one API has |
Yes please, thank you |
Also renamed getAllSymbols to getAllEntities everywhere for consistency
|
OK, done. |
|
@dotnet-bot Test Ubuntu14.04 Release_fcs Build please |
auduchinok
left a comment
There was a problem hiding this comment.
Changes look good for me.
Making getAllEntities optional in GetDeclarationListInfo will add a lot of changes, it could be in a separate PR.
|
Thank you Kevin |
Mirror the change that was made to GetDeclarationListInfo API to add a function that gets all entities to GetDeclarationListSymbols.
Also changed the overload grouping mechanism to include the namespace. Previously this was grouping on DisplayName only, but this doesn't work when you return multiple types with the same DisplayName.