mirror of
https://github.com/ckaczor/vscode-gitlens.git
synced 2026-01-15 01:25:42 -05:00
Splits showQuickCommitDetails into showQuickCommitDetails and showQuickCommitFileDetails Adds closeUnchangedFiles command Adds openChangedFiles command Adds diffDirectory command Adds contextual description to the `go back` commands Fixes #44 by adding a warning message about Git version requirements Fixes intermittent errors when adding active line annotations Fixes intermittent errors when opening multiple files via quick picks Updates dependencies Preps v2.11.0
54 lines
1.6 KiB
TypeScript
54 lines
1.6 KiB
TypeScript
'use strict';
|
|
import { TextDocument, TextEditor, Uri } from 'vscode';
|
|
|
|
abstract class Comparer<T> {
|
|
abstract equals(lhs: T, rhs: T): boolean;
|
|
}
|
|
|
|
class UriComparer extends Comparer<Uri> {
|
|
|
|
equals(lhs: Uri, rhs: Uri) {
|
|
if (!lhs && !rhs) return true;
|
|
if ((lhs && !rhs) || (!lhs && rhs)) return false;
|
|
|
|
return lhs.scheme === rhs.scheme && lhs.fsPath === rhs.fsPath;
|
|
}
|
|
}
|
|
|
|
class TextDocumentComparer extends Comparer<TextDocument> {
|
|
|
|
equals(lhs: TextDocument, rhs: TextDocument) {
|
|
if (!lhs && !rhs) return true;
|
|
if ((lhs && !rhs) || (!lhs && rhs)) return false;
|
|
|
|
return uriComparer.equals(lhs.uri, rhs.uri);
|
|
}
|
|
}
|
|
|
|
class TextEditorComparer extends Comparer<TextEditor> {
|
|
|
|
equals(lhs: TextEditor, rhs: TextEditor, options: { useId: boolean, usePosition: boolean } = { useId: false, usePosition: false }) {
|
|
if (!lhs && !rhs) return true;
|
|
if ((lhs && !rhs) || (!lhs && rhs)) return false;
|
|
|
|
if (options.usePosition && (lhs.viewColumn !== rhs.viewColumn)) return false;
|
|
|
|
if (options.useId && (!lhs.document || !rhs.document)) {
|
|
if ((lhs as any)._id !== (rhs as any)._id) return false;
|
|
|
|
return true;
|
|
}
|
|
|
|
return textDocumentComparer.equals(lhs.document, rhs.document);
|
|
}
|
|
}
|
|
|
|
const textDocumentComparer = new TextDocumentComparer();
|
|
const textEditorComparer = new TextEditorComparer();
|
|
const uriComparer = new UriComparer();
|
|
export {
|
|
textDocumentComparer as TextDocumentComparer,
|
|
textEditorComparer as TextEditorComparer,
|
|
uriComparer as UriComparer
|
|
};
|