Skip to content

Commit fde9b4f

Browse files
authored
Remove symbolNode.ts (#657)
Signed-off-by: sheche <[email protected]>
1 parent 6d48fad commit fde9b4f

File tree

4 files changed

+46
-109
lines changed

4 files changed

+46
-109
lines changed

src/views/DragAndDropController.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import * as path from "path";
55
import * as fse from "fs-extra";
66
import { DataTransfer, DataTransferItem, TreeDragAndDropController, Uri, window, workspace, WorkspaceEdit } from "vscode";
77
import { Explorer } from "../constants";
8-
import { BaseSymbolNode } from "./baseSymbolNode";
98
import { ContainerNode, ContainerType } from "./containerNode";
109
import { DataNode } from "./dataNode";
1110
import { ExplorerNode } from "./explorerNode";
@@ -19,6 +18,7 @@ import { ProjectNode } from "./projectNode";
1918
import { WorkspaceNode } from "./workspaceNode";
2019
import { addLibraryGlobs } from "../controllers/libraryController";
2120
import { sendError, sendInfo } from "vscode-extension-telemetry-wrapper";
21+
import { DocumentSymbolNode } from "./documentSymbolNode";
2222

2323
export class DragAndDropController implements TreeDragAndDropController<ExplorerNode> {
2424

@@ -91,10 +91,10 @@ export class DragAndDropController implements TreeDragAndDropController<Explorer
9191
private addDragToEditorDataTransfer(node: ExplorerNode, treeDataTransfer: DataTransfer) {
9292
if ((node instanceof PrimaryTypeNode || node instanceof FileNode) && node.uri) {
9393
treeDataTransfer.set(Explorer.Mime.TextUriList, new DataTransferItem(node.uri));
94-
} else if ((node instanceof BaseSymbolNode)) {
94+
} else if ((node instanceof DocumentSymbolNode)) {
9595
const parent = (node.getParent() as PrimaryTypeNode);
9696
if (parent.uri) {
97-
const range = (node as BaseSymbolNode).range;
97+
const range = (node as DocumentSymbolNode).range;
9898
const fragment = `#L${range.start.line + 1},${range.start.character + 1}`;
9999
const uri = parent.uri + fragment;
100100
treeDataTransfer.set(Explorer.Mime.TextUriList, new DataTransferItem(uri));
@@ -246,7 +246,7 @@ export class DragAndDropController implements TreeDragAndDropController<Explorer
246246
}
247247
if (node instanceof WorkspaceNode || node instanceof ProjectNode
248248
|| node instanceof PackageRootNode || node instanceof ContainerNode
249-
|| node instanceof BaseSymbolNode) {
249+
|| node instanceof DocumentSymbolNode) {
250250
return false;
251251
}
252252

@@ -289,7 +289,7 @@ export class DragAndDropController implements TreeDragAndDropController<Explorer
289289
}
290290

291291
if (node instanceof WorkspaceNode || node instanceof ProjectNode
292-
|| node instanceof BaseSymbolNode) {
292+
|| node instanceof DocumentSymbolNode) {
293293
return false;
294294
}
295295

src/views/baseSymbolNode.ts

Lines changed: 0 additions & 47 deletions
This file was deleted.

src/views/documentSymbolNode.ts

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,37 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT license.
33

4-
import { DocumentSymbol, Range, TreeItem, TreeItemCollapsibleState } from "vscode";
4+
import { Command, DocumentSymbol, Range, SymbolKind, ThemeIcon, TreeItem, TreeItemCollapsibleState } from "vscode";
5+
import { Commands } from "../commands";
56
import { Explorer } from "../constants";
6-
import { BaseSymbolNode } from "./baseSymbolNode";
77
import { ExplorerNode } from "./explorerNode";
88
import { PrimaryTypeNode } from "./PrimaryTypeNode";
99

10-
export class DocumentSymbolNode extends BaseSymbolNode {
10+
export class DocumentSymbolNode extends ExplorerNode {
1111

12-
constructor(symbolInfo: DocumentSymbol, parent: PrimaryTypeNode) {
13-
super(symbolInfo, parent);
12+
private readonly _iconMap: Map<SymbolKind, string> = new Map([
13+
[SymbolKind.Package, "package"],
14+
[SymbolKind.Class, "class"],
15+
[SymbolKind.Interface, "interface"],
16+
[SymbolKind.Enum, "enum"],
17+
[SymbolKind.EnumMember, "enum-member"],
18+
[SymbolKind.Constant, "constant"],
19+
[SymbolKind.Method, "method"],
20+
[SymbolKind.Function, "method"],
21+
[SymbolKind.Constructor, "method"],
22+
[SymbolKind.Field, "field"],
23+
[SymbolKind.Property, "property"],
24+
[SymbolKind.Variable, "variable"],
25+
]);
26+
27+
constructor(private readonly symbolInfo: DocumentSymbol, parent: PrimaryTypeNode) {
28+
super(parent);
1429
}
1530

1631
public getChildren(): ExplorerNode[] | Promise<ExplorerNode[]> {
1732
const res: ExplorerNode[] = [];
18-
if (this.symbolInfo && (<DocumentSymbol>this.symbolInfo).children && (<DocumentSymbol>this.symbolInfo).children.length) {
19-
(<DocumentSymbol>this.symbolInfo).children.forEach((child) => {
33+
if (this.symbolInfo?.children?.length) {
34+
this.symbolInfo.children.forEach((child) => {
2035
res.push(new DocumentSymbolNode(child, this.getParent() as PrimaryTypeNode));
2136
});
2237
}
@@ -25,19 +40,35 @@ export class DocumentSymbolNode extends BaseSymbolNode {
2540

2641
public getTreeItem(): TreeItem | Promise<TreeItem> {
2742
const item = new TreeItem(this.symbolInfo.name,
28-
((<DocumentSymbol>this.symbolInfo).children && (<DocumentSymbol>this.symbolInfo).children.length)
29-
? TreeItemCollapsibleState.Collapsed : TreeItemCollapsibleState.None);
43+
this.symbolInfo?.children?.length ? TreeItemCollapsibleState.Collapsed
44+
: TreeItemCollapsibleState.None);
3045
item.iconPath = this.iconPath;
3146
item.command = this.command;
3247
return item;
3348
}
3449

3550
public get range(): Range {
3651
// Using `selectionRange` instead of `range` to make sure the cursor will be pointing to the codes, not the comments
37-
return (<DocumentSymbol>this.symbolInfo).selectionRange;
52+
return this.symbolInfo.selectionRange;
3853
}
3954

4055
public computeContextValue(): string | undefined {
4156
return `java:${Explorer.ContextValueType.Symbol}`;
4257
}
58+
59+
protected get iconPath(): ThemeIcon {
60+
if (this._iconMap.has(this.symbolInfo.kind)) {
61+
const symbolKind = this._iconMap.get(this.symbolInfo.kind);
62+
return new ThemeIcon(`symbol-${symbolKind}`);
63+
}
64+
return new ThemeIcon("symbol-misc");
65+
}
66+
67+
protected get command(): Command {
68+
return {
69+
title: "Go to outline",
70+
command: Commands.VIEW_PACKAGE_OUTLINE,
71+
arguments: [(this.getParent() as PrimaryTypeNode).uri, this.range],
72+
};
73+
}
4374
}

src/views/symbolNode.ts

Lines changed: 0 additions & 47 deletions
This file was deleted.

0 commit comments

Comments
 (0)