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

25
ILSpy/Search/SearchPane.cs

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

Loading…
Cancel
Save