Browse Source

Assembly search option limited to NameOrFileName, FullName and FilePath

pull/1708/head
Jan Kučera 6 years ago
parent
commit
5d4a4b81da
  1. 22
      ILSpy/Search/AssemblySearchStrategy.cs
  2. 25
      ILSpy/Search/SearchPane.cs

22
ILSpy/Search/AssemblySearchStrategy.cs

@ -33,19 +33,28 @@ namespace ICSharpCode.ILSpy.Search @@ -33,19 +33,28 @@ namespace ICSharpCode.ILSpy.Search
public override void Search(PEFile module, CancellationToken cancellationToken)
{
cancellationToken.ThrowIfCancellationRequested();
string name = GetNameToMatch(module);
if (searchKind == AssemblySearchKind.NameOrFileName) {
string localName = GetNameToMatch(module, AssemblySearchKind.Name);
string fileName = Path.GetFileName(GetNameToMatch(module, AssemblySearchKind.FilePath));
if (IsMatch(localName) || IsMatch(fileName))
OnFoundResult(module);
return;
}
string name = GetNameToMatch(module, searchKind);
if (IsMatch(name))
OnFoundResult(module);
}
string GetNameToMatch(PEFile module)
string GetNameToMatch(PEFile module, AssemblySearchKind kind)
{
switch (searchKind) {
switch (kind) {
case AssemblySearchKind.FullName:
return module.FullName;
case AssemblySearchKind.Name:
return module.Name;
case AssemblySearchKind.FileName:
case AssemblySearchKind.FilePath:
return module.FileName;
}
@ -55,7 +64,7 @@ namespace ICSharpCode.ILSpy.Search @@ -55,7 +64,7 @@ namespace ICSharpCode.ILSpy.Search
var metadata = module.Metadata;
var definition = module.Metadata.GetAssemblyDefinition();
switch (searchKind) {
switch (kind) {
case AssemblySearchKind.Culture:
if (definition.Culture.IsNil)
return "neutral";
@ -89,9 +98,10 @@ namespace ICSharpCode.ILSpy.Search @@ -89,9 +98,10 @@ namespace ICSharpCode.ILSpy.Search
enum AssemblySearchKind
{
NameOrFileName,
Name,
FullName,
FileName,
FilePath,
Culture,
Version,
PublicKey,

25
ILSpy/Search/SearchPane.cs

@ -348,28 +348,13 @@ namespace ICSharpCode.ILSpy @@ -348,28 +348,13 @@ namespace ICSharpCode.ILSpy
return new ResourceSearchStrategy(apiVisibility, resultQueue, searchTerm[0].Substring(2));
if (searchTerm[0].StartsWith("a:", StringComparison.Ordinal))
return new AssemblySearchStrategy(searchTerm[0].Substring(2), resultQueue, AssemblySearchKind.Name);
if (searchTerm[0].StartsWith("afn:", StringComparison.Ordinal))
return new AssemblySearchStrategy(searchTerm[0].Substring(4), resultQueue, AssemblySearchKind.FullName);
return new AssemblySearchStrategy(searchTerm[0].Substring(2), resultQueue, AssemblySearchKind.NameOrFileName);
if (searchTerm[0].StartsWith("af:", StringComparison.Ordinal))
return new AssemblySearchStrategy(searchTerm[0].Substring(3), resultQueue, AssemblySearchKind.FileName);
if (searchTerm[0].StartsWith("ac:", StringComparison.Ordinal))
return new AssemblySearchStrategy(searchTerm[0].Substring(3), resultQueue, AssemblySearchKind.Culture);
if (searchTerm[0].StartsWith("av:", StringComparison.Ordinal))
return new AssemblySearchStrategy(searchTerm[0].Substring(3), resultQueue, AssemblySearchKind.Version);
if (searchTerm[0].StartsWith("apk:", StringComparison.Ordinal))
return new AssemblySearchStrategy(searchTerm[0].Substring(4), resultQueue, AssemblySearchKind.PublicKey);
if (searchTerm[0].StartsWith("aha:", StringComparison.Ordinal))
return new AssemblySearchStrategy(searchTerm[0].Substring(4), resultQueue, AssemblySearchKind.HashAlgorithm);
return new AssemblySearchStrategy(searchTerm[0].Substring(3), resultQueue, AssemblySearchKind.FilePath);
if (searchTerm[0].StartsWith("afl:", StringComparison.Ordinal))
return new AssemblySearchStrategy(searchTerm[0].Substring(4), resultQueue, AssemblySearchKind.Flags);
if (searchTerm[0].StartsWith("an:", StringComparison.Ordinal))
return new AssemblySearchStrategy(searchTerm[0].Substring(3), resultQueue, AssemblySearchKind.FullName);
}
switch (searchMode)
@ -395,7 +380,7 @@ namespace ICSharpCode.ILSpy @@ -395,7 +380,7 @@ namespace ICSharpCode.ILSpy
case SearchMode.Resource:
return new ResourceSearchStrategy(apiVisibility, resultQueue, searchTerm);
case SearchMode.Assembly:
return new AssemblySearchStrategy(resultQueue, searchTerm, AssemblySearchKind.Name);
return new AssemblySearchStrategy(resultQueue, searchTerm, AssemblySearchKind.NameOrFileName);
}
return null;

Loading…
Cancel
Save