Skip to content

Commit 9171520

Browse files
author
SlavaRa
committed
WIP
1 parent 0399f1d commit 9171520

File tree

5 files changed

+29
-24
lines changed

5 files changed

+29
-24
lines changed

QuickNavigate/Forms/Nodes.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,33 @@
11
using System.IO;
22
using System.Text.RegularExpressions;
33
using System.Windows.Forms;
4+
using ASCompletion;
45
using ASCompletion.Model;
56
using JetBrains.Annotations;
67

78
namespace QuickNavigate.Forms
89
{
10+
public class NodeFactory
11+
{
12+
public static TreeNode CreateTreeNode(FileModel inFile, bool isHaxe, MemberModel it)
13+
{
14+
var flags = it.Flags;
15+
var icon = PluginUI.GetIcon(flags, it.Access);
16+
var constrDecl = isHaxe && (flags & FlagType.Constructor) > 0 ? "new" : it.FullName;
17+
var node = new MemberNode(it.ToString(), icon, icon)
18+
{
19+
InFile = inFile,
20+
Tag = $"{constrDecl}@{it.LineFrom}"
21+
};
22+
return node;
23+
}
24+
25+
public static TreeNode CreateTreeNode(ClassModel classModel)
26+
{
27+
return new ClassNode(classModel, PluginUI.GetIcon(classModel.Flags, classModel.Access));
28+
}
29+
}
30+
931
public class MemberNode : TreeNode
1032
{
1133
public FileModel InFile;

QuickNavigate/Forms/QuickOutlineForm.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ void FillTree()
112112
if (InFile.Members.Count > 0) AddMembers(tree.Nodes, InFile, InFile.Members, isHaxe);
113113
foreach (var classModel in InFile.Classes)
114114
{
115-
var node = FormHelper.CreateTreeNode(classModel);
115+
var node = NodeFactory.CreateTreeNode(classModel);
116116
tree.Nodes.Add(node);
117117
AddMembers(node.Nodes, InFile, classModel.Members, isHaxe, classModel.Equals(InClass));
118118
}
@@ -156,7 +156,7 @@ void AddMembers(TreeNodeCollection nodes, FileModel inFile, MemberList members,
156156
if (searchIsNotEmpty) items = SearchUtil.FindAll(items, search);
157157
foreach (var it in items)
158158
{
159-
nodes.Add(FormHelper.CreateTreeNode(inFile, isHaxe, it));
159+
nodes.Add(NodeFactory.CreateTreeNode(inFile, isHaxe, it));
160160
}
161161
if ((searchIsNotEmpty && SelectedNode == null || currentClass) && nodes.Count > 0)
162162
tree.SelectedNode = nodes[0];

QuickNavigate/Forms/TypeExplorerForm.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ void RefreshTree()
137137
ClassNode selectedNode = null;
138138
if (search.Length > 1 && search.Contains('.') && tree.Nodes.Count > 0)
139139
{
140-
var node = SelectedNode as ClassNode ?? (ClassNode)tree.Nodes[0];
140+
var node = SelectedNode as ClassNode ?? (ClassNode) tree.Nodes[0];
141141
var parts = search.Split('.');
142142
if (node.Name == parts[0])
143143
{
@@ -151,7 +151,7 @@ void RefreshTree()
151151
{
152152
if (search.Length == 0) FillTree();
153153
else FillTree(search);
154-
if (tree.Nodes.Count > 0) tree.SelectedNode = tree.Nodes[0];
154+
tree.SelectedNode = tree.TopNode;
155155
}
156156
else
157157
{
@@ -206,7 +206,7 @@ void FillTree(ClassNode node, string search)
206206
if (search.Length > 0) items = SearchUtil.FindAll(items, search);
207207
foreach (var it in items)
208208
{
209-
nodes.Add(FormHelper.CreateTreeNode(inFile, isHaxe, it));
209+
nodes.Add(NodeFactory.CreateTreeNode(inFile, isHaxe, it));
210210
}
211211
}
212212

@@ -232,7 +232,7 @@ static IEnumerable<ClassNode> CreateNodes([NotNull] IEnumerable<string> matches,
232232
static ClassNode CreateNode([NotNull] string type)
233233
{
234234
var classModel = TypeToClassModel[type];
235-
return (ClassNode) FormHelper.CreateTreeNode(classModel);
235+
return (ClassNode) NodeFactory.CreateTreeNode(classModel);
236236
}
237237

238238
[NotNull]

QuickNavigate/Helpers/FormHelper.cs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -123,24 +123,6 @@ static T GetPluginUI<T>(string pluginGUID)
123123
}
124124
return default(T);
125125
}
126-
127-
public static TreeNode CreateTreeNode(FileModel inFile, bool isHaxe, MemberModel it)
128-
{
129-
var flags = it.Flags;
130-
var icon = PluginUI.GetIcon(flags, it.Access);
131-
var constrDecl = isHaxe && (flags & FlagType.Constructor) > 0 ? "new" : it.FullName;
132-
var node = new MemberNode(it.ToString(), icon, icon)
133-
{
134-
InFile = inFile,
135-
Tag = $"{constrDecl}@{it.LineFrom}"
136-
};
137-
return node;
138-
}
139-
140-
public static TreeNode CreateTreeNode(ClassModel classModel)
141-
{
142-
return new ClassNode(classModel, PluginUI.GetIcon(classModel.Flags, classModel.Access));
143-
}
144126
}
145127

146128
class ShortcutId

QuickNavigate/SearchUtil.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public static List<string> FindAll([NotNull] List<string> source, [NotNull] stri
2222
public static List<MemberModel> FindAll([NotNull] List<MemberModel> items, [NotNull] string search)
2323
{
2424
var length = search.Length;
25+
if (length == 0) return items;
2526
var result = items.FindAll(it =>
2627
{
2728
var score = PluginCore.Controls.CompletionList.SmartMatch(it.FullName, search, length);

0 commit comments

Comments
 (0)