Skip to content

Commit e94bee0

Browse files
committed
Better LDC Search
Strings should be searched with case sensitivity rather than exact comparison
1 parent f3ccf93 commit e94bee0

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

  • src/main/java/the/bytecode/club/bytecodeviewer/searching/impl

src/main/java/the/bytecode/club/bytecodeviewer/searching/impl/LDCSearch.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,11 @@ public JPanel getPanel()
7070

7171
@Override
7272
public void search(final ResourceContainer container, final ClassNode node, final SearchResultNotifier srn,
73-
boolean exact)
73+
boolean caseSensitive)
7474
{
7575
final Iterator<MethodNode> methods = node.methods.iterator();
7676
final String srchText = searchText.getText();
77+
final String srchTextLowerCase = searchText.getText().toLowerCase();
7778

7879
if (srchText.isEmpty())
7980
return;
@@ -97,7 +98,14 @@ public void search(final ResourceContainer container, final ClassNode node, fina
9798
desc2 = method.desc;
9899
} catch (ArrayIndexOutOfBoundsException ignored) { }
99100

100-
if ((exact && ldcString.equals(srchText)) || (!exact && ldcString.contains(srchText)))
101+
//TODO re-add this at some point when the search pane is redone
102+
boolean exact = false;
103+
final boolean exactMatch = exact && ldcString.equals(srchText);
104+
final boolean caseInsensitiveMatch = !exact && caseSensitive && ldcString.contains(srchText);
105+
final boolean caseSensitiveMatch = !exact && !caseSensitive && ldcString.toLowerCase().contains(srchTextLowerCase);
106+
final boolean anyMatch = exactMatch || caseInsensitiveMatch || caseSensitiveMatch;
107+
108+
if (anyMatch)
101109
{
102110
srn.notifyOfResult(container.name + ">" + node.name + "." + method.name
103111
+ desc2

0 commit comments

Comments
 (0)