Skip to content

Commit e5d6b0b

Browse files
committed
Rework logic for name/details creation for document symbols
1 parent 090acf0 commit e5d6b0b

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/features/documentSymbolProvider.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,21 @@ function createSymbolForElement(element: Structure.CodeElement): vscode.Document
5050
const fullRange = element.Ranges[SymbolRangeNames.Full];
5151
const nameRange = element.Ranges[SymbolRangeNames.Name];
5252

53-
return new vscode.DocumentSymbol(element.DisplayName, /*detail*/ "", toSymbolKind(element.Kind), toRange3(fullRange), toRange3(nameRange));
53+
var name = element.DisplayName;
54+
switch (element.Kind) {
55+
case SymbolKinds.Class:
56+
case SymbolKinds.Delegate:
57+
case SymbolKinds.Enum:
58+
case SymbolKinds.Interface:
59+
case SymbolKinds.Struct:
60+
name = element.Name;
61+
break;
62+
default:
63+
break;
64+
}
65+
const details = name == element.DisplayName ? "" : element.DisplayName;
66+
67+
return new vscode.DocumentSymbol(name, details, toSymbolKind(element.Kind), toRange3(fullRange), toRange3(nameRange));
5468
}
5569

5670
const kinds: { [kind: string]: vscode.SymbolKind; } = {};

0 commit comments

Comments
 (0)