diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts index d165c520e12..10f4cd7150e 100644 --- a/extensions/git/src/commands.ts +++ b/extensions/git/src/commands.ts @@ -11,7 +11,7 @@ import { Repository, Resource, Status, CommitOptions, ResourceGroupType, Reposit import { Model } from './model'; import { toGitUri, fromGitUri } from './uri'; import { grep, eventToPromise, isDescendant } from './util'; -import { applyLineChanges, intersectDiffWithRange, toLineRanges, invertLineChange } from './staging'; +import { applyLineChanges, intersectDiffWithRange, toLineRanges, invertLineChange, getModifiedRange } from './staging'; import * as path from 'path'; import { lstat, Stats } from 'fs'; import * as os from 'os'; @@ -736,10 +736,7 @@ export class CommandCenter { const modifiedDocument = textEditor.document; const selections = textEditor.selections; const selectedChanges = changes.filter(change => { - const modifiedRange = change.modifiedEndLineNumber === 0 - ? new Range(modifiedDocument.lineAt(change.modifiedStartLineNumber - 1).range.end, modifiedDocument.lineAt(change.modifiedStartLineNumber).range.start) - : new Range(modifiedDocument.lineAt(change.modifiedStartLineNumber - 1).range.start, modifiedDocument.lineAt(change.modifiedEndLineNumber - 1).range.end); - + const modifiedRange = getModifiedRange(modifiedDocument, change); return selections.every(selection => !selection.intersection(modifiedRange)); }); diff --git a/extensions/git/src/staging.ts b/extensions/git/src/staging.ts index 863d9f6591b..70c7ca71941 100644 --- a/extensions/git/src/staging.ts +++ b/extensions/git/src/staging.ts @@ -72,7 +72,7 @@ export function toLineRanges(selections: Selection[], textDocument: TextDocument return result; } -function getModifiedRange(textDocument: TextDocument, diff: LineChange): Range { +export function getModifiedRange(textDocument: TextDocument, diff: LineChange): Range { if (diff.modifiedEndLineNumber === 0) { if (diff.modifiedStartLineNumber === 0) { return new Range(textDocument.lineAt(diff.modifiedStartLineNumber).range.end, textDocument.lineAt(diff.modifiedStartLineNumber).range.start);