@@ -46,26 +46,19 @@ function createSymbols(elements: Structure.CodeElement[], parentElement?: Struct
46
46
return results ;
47
47
}
48
48
49
- function getNameAndDetailsForElement ( element : Structure . CodeElement , parentElement ?: Structure . CodeElement ) : { name : string , details : string } {
49
+ function getNameForElement ( element : Structure . CodeElement , parentElement ?: Structure . CodeElement ) : string {
50
50
switch ( element . Kind ) {
51
51
case SymbolKinds . Class :
52
52
case SymbolKinds . Delegate :
53
53
case SymbolKinds . Enum :
54
54
case SymbolKinds . Interface :
55
55
case SymbolKinds . Struct :
56
+ return element . Name ;
57
+
56
58
case SymbolKinds . Namespace :
57
- if ( typeof parentElement === 'undefined' ) {
58
- return { name : element . DisplayName , details : '' } ;
59
- }
60
- const prefix = `${ parentElement . DisplayName } .` ;
61
- if ( ! element . DisplayName . startsWith ( prefix ) ) {
62
- return { name : element . DisplayName , details : '' } ;
63
- }
64
- const name = element . DisplayName . slice ( prefix . length ) ;
65
- if ( name === element . DisplayName ) {
66
- return { name : element . DisplayName , details : '' } ;
67
- }
68
- return { name, details : element . DisplayName } ;
59
+ return typeof parentElement !== 'undefined' && element . DisplayName . startsWith ( `${ parentElement . DisplayName } .` )
60
+ ? element . DisplayName . slice ( parentElement . DisplayName . length + 1 )
61
+ : element . DisplayName ;
69
62
70
63
case SymbolKinds . Constant :
71
64
case SymbolKinds . Constructor :
@@ -79,14 +72,15 @@ function getNameAndDetailsForElement(element: Structure.CodeElement, parentEleme
79
72
case SymbolKinds . Property :
80
73
case SymbolKinds . Unknown :
81
74
default :
82
- return { name : element . DisplayName , details : '' } ;
75
+ return element . DisplayName ;
83
76
}
84
77
}
85
78
86
79
function createSymbolForElement ( element : Structure . CodeElement , parentElement ?: Structure . CodeElement ) : vscode . DocumentSymbol {
87
80
const fullRange = element . Ranges [ SymbolRangeNames . Full ] ;
88
81
const nameRange = element . Ranges [ SymbolRangeNames . Name ] ;
89
- const { name, details } = getNameAndDetailsForElement ( element , parentElement ) ;
82
+ const name = getNameForElement ( element , parentElement ) ;
83
+ const details = name === element . DisplayName ? '' : element . DisplayName ;
90
84
91
85
return new vscode . DocumentSymbol ( name , details , toSymbolKind ( element . Kind ) , toRange3 ( fullRange ) , toRange3 ( nameRange ) ) ;
92
86
}
0 commit comments