diff --git a/platform/vcs-api/src/com/intellij/openapi/localVcs/UpToDateLineNumberProvider.java b/platform/vcs-api/src/com/intellij/openapi/localVcs/UpToDateLineNumberProvider.java index a10f34645ab6..e367ad0ecf7b 100644 --- a/platform/vcs-api/src/com/intellij/openapi/localVcs/UpToDateLineNumberProvider.java +++ b/platform/vcs-api/src/com/intellij/openapi/localVcs/UpToDateLineNumberProvider.java @@ -19,6 +19,7 @@ public interface UpToDateLineNumberProvider { int ABSENT_LINE_NUMBER = -1; int FAKE_LINE_NUMBER = -2; + int getLineCount(); int getLineNumber(int currentNumber); boolean isLineChanged(int currentNumber); boolean isRangeChanged(final int start, final int end); diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateDiffViewerAction.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateDiffViewerAction.java index c172a7dca544..9768edae6d92 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateDiffViewerAction.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateDiffViewerAction.java @@ -515,6 +515,11 @@ public class AnnotateDiffViewerAction extends ToggleAction implements DumbAware } return myLocalChangesProvider.isRangeChanged(line1, line2); } + + @Override + public int getLineCount() { + return myLocalChangesProvider.getLineCount(); + } } private static class ThreesideAnnotatorFactory extends ThreesideViewerAnnotatorFactory { diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/UpToDateLineNumberProviderImpl.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/UpToDateLineNumberProviderImpl.java index 921d6432da7c..a53fa7a1019c 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/UpToDateLineNumberProviderImpl.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/UpToDateLineNumberProviderImpl.java @@ -58,4 +58,13 @@ public class UpToDateLineNumberProviderImpl implements UpToDateLineNumberProvide } return tracker.transferLineToVcs(currentNumber, false); } + + @Override + public int getLineCount() { + LineStatusTracker tracker = myLineStatusTrackerManagerI.getLineStatusTracker(myDocument); + if (tracker == null || !tracker.isOperational()) { + return myDocument.getLineCount(); + } + return tracker.getVcsDocument().getLineCount(); + } }