Skip to content

Commit 2cbebec

Browse files
committed
Simplify code
1 parent 39fc7dd commit 2cbebec

File tree

1 file changed

+9
-15
lines changed

1 file changed

+9
-15
lines changed

src/features/documentSymbolProvider.ts

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,26 +46,19 @@ function createSymbols(elements: Structure.CodeElement[], parentElement?: Struct
4646
return results;
4747
}
4848

49-
function getNameAndDetailsForElement(element: Structure.CodeElement, parentElement?: Structure.CodeElement): { name: string, details: string } {
49+
function getNameForElement(element: Structure.CodeElement, parentElement?: Structure.CodeElement): string {
5050
switch (element.Kind) {
5151
case SymbolKinds.Class:
5252
case SymbolKinds.Delegate:
5353
case SymbolKinds.Enum:
5454
case SymbolKinds.Interface:
5555
case SymbolKinds.Struct:
56+
return element.Name;
57+
5658
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;
6962

7063
case SymbolKinds.Constant:
7164
case SymbolKinds.Constructor:
@@ -79,14 +72,15 @@ function getNameAndDetailsForElement(element: Structure.CodeElement, parentEleme
7972
case SymbolKinds.Property:
8073
case SymbolKinds.Unknown:
8174
default:
82-
return { name: element.DisplayName, details: '' };
75+
return element.DisplayName;
8376
}
8477
}
8578

8679
function createSymbolForElement(element: Structure.CodeElement, parentElement?: Structure.CodeElement): vscode.DocumentSymbol {
8780
const fullRange = element.Ranges[SymbolRangeNames.Full];
8881
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;
9084

9185
return new vscode.DocumentSymbol(name, details, toSymbolKind(element.Kind), toRange3(fullRange), toRange3(nameRange));
9286
}

0 commit comments

Comments
 (0)