Browse Source

Fixed exception when a file was modified externally so that the old start position of a class is on an invalid line.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@3039 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
6b13b051c1
  1. 1
      src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs
  2. 17
      src/Main/Base/Project/Src/TextEditor/Bookmarks/ClassMemberBookmark.cs
  3. 3
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs

1
src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs

@ -182,7 +182,6 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -182,7 +182,6 @@ namespace ICSharpCode.SharpDevelop.Gui
return true;
return false;
break;
case 1:
return ((WorkbenchSingleton.Workbench.ActiveViewContent != null) && (ProjectService.CurrentProject.FindFile(item.FileName) != null));
case 2:

17
src/Main/Base/Project/Src/TextEditor/Bookmarks/ClassMemberBookmark.cs

@ -40,7 +40,9 @@ namespace ICSharpCode.SharpDevelop.Bookmarks @@ -40,7 +40,9 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
static int GetLineNumberFromMember(IDocument document, IMember member)
{
int line = member.Region.BeginLine - 1;
if (document != null && line >= document.TotalNumberOfLines)
if (line < 0)
return 0;
else if (document != null && line >= document.TotalNumberOfLines)
return document.TotalNumberOfLines - 1;
else
return line;
@ -82,11 +84,22 @@ namespace ICSharpCode.SharpDevelop.Bookmarks @@ -82,11 +84,22 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
}
public ClassBookmark(IDocument document, IClass @class)
: base(document, Math.Max(@class.Region.BeginLine - 1, 0))
: base(document, GetLineNumberFromClass(document, @class))
{
this.@class = @class;
}
static int GetLineNumberFromClass(IDocument document, IClass @class)
{
int line = @class.Region.BeginLine - 1;
if (line < 0)
return 0;
else if (document != null && line >= document.TotalNumberOfLines)
return document.TotalNumberOfLines - 1;
else
return line;
}
public const string ContextMenuPath = "/SharpDevelop/ViewContent/DefaultTextEditor/ClassBookmarkContextMenu";
public override bool Click(Control parent, MouseEventArgs e)

3
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs

@ -383,9 +383,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -383,9 +383,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
public ResolveResult ResolveInternal(Expression expr, ExpressionContext context)
{
if (expr is IdentifierExpression)
return ResolveIdentifier(expr as IdentifierExpression, context);
ResolveVisitor resolveVisitor = new ResolveVisitor(this);
return resolveVisitor.Resolve(expr);
}

Loading…
Cancel
Save