Browse Source

Fixed exception when "Find references" finds a result in unsaved Designer.cs file.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@3657 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
707294326e
  1. 4
      src/Main/Base/Project/Src/Gui/Pads/SearchResultPad/SearchResultMatch.cs
  2. 13
      src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs

4
src/Main/Base/Project/Src/Gui/Pads/SearchResultPad/SearchResultMatch.cs

@ -64,12 +64,12 @@ namespace SearchAndReplace
public virtual TextLocation GetStartPosition(IDocument document) public virtual TextLocation GetStartPosition(IDocument document)
{ {
return document.OffsetToPosition(Offset); return document.OffsetToPosition(Math.Min(Offset, document.TextLength));
} }
public virtual TextLocation GetEndPosition(IDocument document) public virtual TextLocation GetEndPosition(IDocument document)
{ {
return document.OffsetToPosition(Offset + Length); return document.OffsetToPosition(Math.Min(Offset + Length, document.TextLength));
} }
/// <summary> /// <summary>

13
src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs

@ -243,11 +243,14 @@ namespace ICSharpCode.SharpDevelop.Refactoring
#region Common helper functions #region Common helper functions
public static ProvidedDocumentInformation GetDocumentInformation(string fileName) public static ProvidedDocumentInformation GetDocumentInformation(string fileName)
{ {
foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) { OpenedFile file = FileService.GetOpenedFile(fileName);
if (content is ITextEditorControlProvider && if (file != null) {
FileUtility.IsEqualFileName(content.PrimaryFileName, fileName)) IFileDocumentProvider documentProvider = file.CurrentView as IFileDocumentProvider;
{ if (documentProvider != null) {
return new ProvidedDocumentInformation(((ITextEditorControlProvider)content).TextEditorControl.Document, fileName, 0); IDocument document = documentProvider.GetDocumentForFile(file);
if (document != null) {
return new ProvidedDocumentInformation(document, fileName, 0);
}
} }
} }
ITextBufferStrategy strategy = StringTextBufferStrategy.CreateTextBufferFromFile(fileName); ITextBufferStrategy strategy = StringTextBufferStrategy.CreateTextBufferFromFile(fileName);

Loading…
Cancel
Save