Browse Source

Preparations for highlighting the search match.

pull/1/head
Daniel Grunwald 15 years ago
parent
commit
b338c41e15
  1. 9
      ILSpy/MainWindow.xaml.cs
  2. 2
      ILSpy/TreeNodes/AssemblyTreeNode.cs
  3. 2
      ILSpy/TreeNodes/EventTreeNode.cs
  4. 2
      ILSpy/TreeNodes/FieldTreeNode.cs
  5. 6
      ILSpy/TreeNodes/ILSpyTreeNode.cs
  6. 3
      ILSpy/TreeNodes/MethodTreeNode.cs
  7. 2
      ILSpy/TreeNodes/NamespaceTreeNode.cs
  8. 2
      ILSpy/TreeNodes/PropertyTreeNode.cs
  9. 2
      ILSpy/TreeNodes/TypeTreeNode.cs

9
ILSpy/MainWindow.xaml.cs

@ -90,7 +90,7 @@ namespace ICSharpCode.ILSpy
if (assemblyList.Assemblies.Count == 0) if (assemblyList.Assemblies.Count == 0)
LoadInitialAssemblies(); LoadInitialAssemblies();
SelectNode(FindNodeByPath(sessionSettings.ActiveTreeViewPath)); SelectNode(FindNodeByPath(sessionSettings.ActiveTreeViewPath, true));
} }
void LoadInitialAssemblies() void LoadInitialAssemblies()
@ -138,17 +138,22 @@ namespace ICSharpCode.ILSpy
} }
} }
SharpTreeNode FindNodeByPath(string[] path) SharpTreeNode FindNodeByPath(string[] path, bool returnBestMatch)
{ {
if (path == null) if (path == null)
return null; return null;
SharpTreeNode node = treeView.Root; SharpTreeNode node = treeView.Root;
SharpTreeNode bestMatch = node;
foreach (var element in path) { foreach (var element in path) {
if (node == null) if (node == null)
break; break;
bestMatch = node;
node.EnsureLazyChildren(); node.EnsureLazyChildren();
node = node.Children.FirstOrDefault(c => c.ToString() == element); node = node.Children.FirstOrDefault(c => c.ToString() == element);
} }
if (returnBestMatch)
return node ?? bestMatch;
else
return node; return node;
} }

2
ILSpy/TreeNodes/AssemblyTreeNode.cs

@ -74,7 +74,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
} }
public override object Text { public override object Text {
get { return shortName; } get { return HighlightSearchMatch(shortName); }
} }
public override object Icon { public override object Icon {

2
ILSpy/TreeNodes/EventTreeNode.cs

@ -42,7 +42,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
} }
public override object Text { public override object Text {
get { return ev.Name + " : " + this.Language.TypeToString(ev.EventType); } get { return HighlightSearchMatch(ev.Name, " : " + this.Language.TypeToString(ev.EventType)); }
} }
public override object Icon { public override object Icon {

2
ILSpy/TreeNodes/FieldTreeNode.cs

@ -41,7 +41,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
} }
public override object Text { public override object Text {
get { return field.Name + " : " + this.Language.TypeToString(field.FieldType); } get { return HighlightSearchMatch(field.Name, " : " + this.Language.TypeToString(field.FieldType)); }
} }
public override object Icon { public override object Icon {

6
ILSpy/TreeNodes/ILSpyTreeNode.cs

@ -61,6 +61,12 @@ namespace ICSharpCode.ILSpy.TreeNodes
return FilterResult.Hidden; return FilterResult.Hidden;
} }
protected object HighlightSearchMatch(string text, string suffix = null)
{
// TODO: implement highlighting the search match
return text + suffix;
}
public virtual void Decompile(Language language, ITextOutput output, DecompilationOptions options) public virtual void Decompile(Language language, ITextOutput output, DecompilationOptions options)
{ {
} }

3
ILSpy/TreeNodes/MethodTreeNode.cs

@ -44,7 +44,6 @@ namespace ICSharpCode.ILSpy.TreeNodes
public override object Text { public override object Text {
get { get {
StringBuilder b = new StringBuilder(); StringBuilder b = new StringBuilder();
b.Append(method.Name);
b.Append('('); b.Append('(');
for (int i = 0; i < method.Parameters.Count; i++) { for (int i = 0; i < method.Parameters.Count; i++) {
if (i > 0) b.Append(", "); if (i > 0) b.Append(", ");
@ -52,7 +51,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
} }
b.Append(") : "); b.Append(") : ");
b.Append(this.Language.TypeToString(method.ReturnType)); b.Append(this.Language.TypeToString(method.ReturnType));
return b.ToString(); return HighlightSearchMatch(method.Name, b.ToString());
} }
} }

2
ILSpy/TreeNodes/NamespaceTreeNode.cs

@ -41,7 +41,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
} }
public override object Text { public override object Text {
get { return name; } get { return HighlightSearchMatch(name); }
} }
public override object Icon { public override object Icon {

2
ILSpy/TreeNodes/PropertyTreeNode.cs

@ -44,7 +44,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
} }
public override object Text { public override object Text {
get { return property.Name + " : " + this.Language.TypeToString(property.PropertyType); } get { return HighlightSearchMatch(property.Name, " : " + this.Language.TypeToString(property.PropertyType)); }
} }
public override object Icon { public override object Icon {

2
ILSpy/TreeNodes/TypeTreeNode.cs

@ -59,7 +59,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
} }
public override object Text { public override object Text {
get { return type.Name; } get { return HighlightSearchMatch(type.Name); }
} }
public bool IsPublicAPI { public bool IsPublicAPI {

Loading…
Cancel
Save