From 7054bbe7f15e555d0b4e7b1fb8b4c6e6cc5de57d Mon Sep 17 00:00:00 2001 From: Adam Tao Date: Mon, 17 Apr 2023 08:07:23 +0800 Subject: [PATCH] feat(Server.fs): Use SymbolDisplayFormat to format Name of HierarchyItem Signed-off-by: Adam Tao --- src/CSharpLanguageServer/Server.fs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/CSharpLanguageServer/Server.fs b/src/CSharpLanguageServer/Server.fs index 65aa43bb..55c96857 100644 --- a/src/CSharpLanguageServer/Server.fs +++ b/src/CSharpLanguageServer/Server.fs @@ -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...