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 18 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
return true; return true;
return false; return false;
break;
case 1: case 1:
return ((WorkbenchSingleton.Workbench.ActiveViewContent != null) && (ProjectService.CurrentProject.FindFile(item.FileName) != null)); return ((WorkbenchSingleton.Workbench.ActiveViewContent != null) && (ProjectService.CurrentProject.FindFile(item.FileName) != null));
case 2: case 2:

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

@ -40,7 +40,9 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
static int GetLineNumberFromMember(IDocument document, IMember member) static int GetLineNumberFromMember(IDocument document, IMember member)
{ {
int line = member.Region.BeginLine - 1; 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; return document.TotalNumberOfLines - 1;
else else
return line; return line;
@ -82,11 +84,22 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
} }
public ClassBookmark(IDocument document, IClass @class) public ClassBookmark(IDocument document, IClass @class)
: base(document, Math.Max(@class.Region.BeginLine - 1, 0)) : base(document, GetLineNumberFromClass(document, @class))
{ {
this.@class = @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 const string ContextMenuPath = "/SharpDevelop/ViewContent/DefaultTextEditor/ClassBookmarkContextMenu";
public override bool Click(Control parent, MouseEventArgs e) 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
public ResolveResult ResolveInternal(Expression expr, ExpressionContext context) public ResolveResult ResolveInternal(Expression expr, ExpressionContext context)
{ {
if (expr is IdentifierExpression)
return ResolveIdentifier(expr as IdentifierExpression, context);
ResolveVisitor resolveVisitor = new ResolveVisitor(this); ResolveVisitor resolveVisitor = new ResolveVisitor(this);
return resolveVisitor.Resolve(expr); return resolveVisitor.Resolve(expr);
} }

Loading…
Cancel
Save