Skip to content

Commit 1da16dd

Browse files
author
SlavaRa
authored
Merge pull request #157 from SlavaRa/feature/search_tags
Added aliases: `constructor` and `new` to search for the constructor
2 parents ee6b1f1 + f597a0e commit 1da16dd

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

QuickNavigate/Forms/QuickOutlineForm.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ void FillNodes(TreeNodeCollection nodes, FileModel inFile, MemberList members, b
143143
void FillNodes(TreeNodeCollection nodes, FileModel inFile, MemberList members, bool isHaxe, bool currentClass, string search)
144144
{
145145
var items = FilterTypes(members.Items.ToList());
146-
items = SearchUtil.FindAll(items, search);
146+
items = SearchUtil.FindAll(items, search, isHaxe);
147147
foreach (var it in items)
148148
{
149149
nodes.Add(NodeFactory.CreateTreeNode(inFile, isHaxe, it));

QuickNavigate/SearchUtil.cs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,28 @@ public static List<string> FindAll([NotNull] List<string> items, [NotNull] strin
1111
{
1212
var length = search.Length;
1313
if (length == 0) return items;
14-
var result = items.FindAll(it =>
15-
{
16-
var score = PluginCore.Controls.CompletionList.SmartMatch(it, search, length);
17-
return score > 0 && score < 6;
18-
});
14+
var result = items.FindAll(it => IsMatch(it, search, length));
1915
return result;
2016
}
2117

2218
[NotNull]
23-
public static List<MemberModel> FindAll([NotNull] List<MemberModel> items, [NotNull] string search)
19+
public static List<MemberModel> FindAll([NotNull] List<MemberModel> items, [NotNull] string search) => FindAll(items, search, false);
20+
21+
[NotNull]
22+
public static List<MemberModel> FindAll([NotNull] List<MemberModel> items, [NotNull] string search, bool isHaxe)
2423
{
2524
var length = search.Length;
2625
if (length == 0) return items;
27-
var result = items.FindAll(it =>
28-
{
29-
var score = PluginCore.Controls.CompletionList.SmartMatch(it.FullName, search, length);
30-
return score > 0 && score < 6;
31-
});
26+
var result = items.FindAll(it => IsMatch(it.FullName, search, length)
27+
|| ((it.Flags & FlagType.Constructor) != 0
28+
&& (IsMatch("constructor", search, length) || (isHaxe && IsMatch("new", search, length)))));
3229
return result;
3330
}
31+
32+
static bool IsMatch(string word, string search, int length)
33+
{
34+
var score = PluginCore.Controls.CompletionList.SmartMatch(word, search, length);
35+
return score > 0 && score < 6;
36+
}
3437
}
3538
}

0 commit comments

Comments
 (0)