Skip to content

Commit

Permalink
feat(Server.fs): Use SymbolDisplayFormat to format Name of HierarchyItem
Browse files Browse the repository at this point in the history
Signed-off-by: Adam Tao <tcx4c70@gmail.com>
  • Loading branch information
tcx4c70 committed Apr 17, 2023
1 parent 993b8a7 commit 7054bbe
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/CSharpLanguageServer/Server.fs
Original file line number Diff line number Diff line change
Expand Up @@ -1283,9 +1283,14 @@ let setupServerHandlers settings (lspClient: LspClient) =
}

let toHierarchyItem (symbol: ISymbol) (location: Location): HierarchyItem =
let displayStyle = SymbolDisplayFormat(
typeQualificationStyle = SymbolDisplayTypeQualificationStyle.NameAndContainingTypesAndNamespaces,
genericsOptions = SymbolDisplayGenericsOptions.IncludeTypeParameters,
memberOptions = (SymbolDisplayMemberOptions.IncludeParameters ||| SymbolDisplayMemberOptions.IncludeExplicitInterface),
parameterOptions = (SymbolDisplayParameterOptions.IncludeParamsRefOut ||| SymbolDisplayParameterOptions.IncludeExtensionThis ||| SymbolDisplayParameterOptions.IncludeType),
miscellaneousOptions = SymbolDisplayMiscellaneousOptions.UseSpecialTypes)
let (detail, kind) = getSymbolNameAndKind None None symbol
{ Name = symbol.Name // TODO: 1. It might be empty string?
// 2. For constructor, it will show ".ctor"
{ Name = symbol.ToDisplayString(displayStyle)
Kind = kind
Tags = None
Detail = detail |> Some // TODO: It's sooo long...
Expand Down

0 comments on commit 7054bbe

Please sign in to comment.