Browse Source

Fix find in files exception when search matches file without highlighting.

When find in files matches text in a .txt file then EditorControlService.Instance.CreateHighlighter() returns null since .txt files have no syntax highlighting.
pull/28/head
Matt Ward 13 years ago
parent
commit
51f2ab9e20
  1. 2
      src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchManager.cs
  2. 12
      src/Main/Base/Project/Src/Editor/Search/SearchResultMatch.cs

2
src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchManager.cs

@ -215,7 +215,7 @@ namespace SearchAndReplace @@ -215,7 +215,7 @@ namespace SearchAndReplace
var start = document.GetLocation(result.Offset).ToLocation();
var end = document.GetLocation(result.Offset + result.Length).ToLocation();
var builder = SearchResultsPad.CreateInlineBuilder(start, end, document, highlighter);
results.Add(new AvalonEditSearchResultMatch(fileName, start, end, result.Offset, result.Length, builder, highlighter.DefaultTextColor, result));
results.Add(new AvalonEditSearchResultMatch(fileName, start, end, result.Offset, result.Length, builder, highlighter, result));
}
if (results.Count > 0)
return new SearchedFile(fileName, results);

12
src/Main/Base/Project/Src/Editor/Search/SearchResultMatch.cs

@ -110,8 +110,8 @@ namespace ICSharpCode.SharpDevelop.Editor.Search @@ -110,8 +110,8 @@ namespace ICSharpCode.SharpDevelop.Editor.Search
{
ICSharpCode.AvalonEdit.Search.ISearchResult match;
public AvalonEditSearchResultMatch(FileName fileName, Location startLocation, Location endLocation, int offset, int length, HighlightedInlineBuilder builder, HighlightingColor defaultTextColor, ICSharpCode.AvalonEdit.Search.ISearchResult match)
: base(fileName, startLocation, endLocation, offset, length, builder, defaultTextColor)
public AvalonEditSearchResultMatch(FileName fileName, Location startLocation, Location endLocation, int offset, int length, HighlightedInlineBuilder builder, ISyntaxHighlighter highlighter, ICSharpCode.AvalonEdit.Search.ISearchResult match)
: base(fileName, startLocation, endLocation, offset, length, builder, GetDefaultHighlightTextColor(highlighter))
{
this.match = match;
}
@ -120,6 +120,14 @@ namespace ICSharpCode.SharpDevelop.Editor.Search @@ -120,6 +120,14 @@ namespace ICSharpCode.SharpDevelop.Editor.Search
{
return match.ReplaceWith(pattern);
}
static HighlightingColor GetDefaultHighlightTextColor(ISyntaxHighlighter highlighter)
{
if (highlighter != null) {
return highlighter.DefaultTextColor;
}
return null;
}
}
public class SearchedFile

Loading…
Cancel
Save