Skip to content

Commit

Permalink
Git gutter not shown in workspace with multiple folders (#176754) (#1…
Browse files Browse the repository at this point in the history
…76952)

* Git gutter not shown in workspace with multiple folders
Fixes #176738

* Use UriIdentityService
  • Loading branch information
alexr00 committed Mar 14, 2023
1 parent 3486ed4 commit 8cb6281
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/vs/workbench/api/browser/mainThreadSCM.ts
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ class MainThreadSCMProvider implements ISCMProvider, QuickDiffProvider {
}

dispose(): void {

this._quickDiff?.dispose();
}
}

Expand Down
7 changes: 6 additions & 1 deletion src/vs/workbench/contrib/scm/common/quickDiffService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { isEqualOrParent } from 'vs/base/common/resources';
import { score } from 'vs/editor/common/languageSelector';
import { Emitter } from 'vs/base/common/event';
import { withNullAsUndefined } from 'vs/base/common/types';
import { IUriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentity';

function createProviderComparer(uri: URI): (a: QuickDiffProvider, b: QuickDiffProvider) => number {
return (a, b) => {
Expand Down Expand Up @@ -43,6 +44,10 @@ export class QuickDiffService extends Disposable implements IQuickDiffService {
private readonly _onDidChangeQuickDiffProviders = this._register(new Emitter<void>());
readonly onDidChangeQuickDiffProviders = this._onDidChangeQuickDiffProviders.event;

constructor(@IUriIdentityService private readonly uriIdentityService: IUriIdentityService) {
super();
}

addQuickDiffProvider(quickDiff: QuickDiffProvider): IDisposable {
this.quickDiffProviders.add(quickDiff);
this._onDidChangeQuickDiffProviders.fire();
Expand All @@ -60,7 +65,7 @@ export class QuickDiffService extends Disposable implements IQuickDiffService {

async getQuickDiffs(uri: URI, language: string = '', isSynchronized: boolean = false): Promise<QuickDiff[]> {
const providers = Array.from(this.quickDiffProviders)
.filter(provider => !provider.rootUri || isEqualOrParent(uri, provider.rootUri))
.filter(provider => !provider.rootUri || this.uriIdentityService.extUri.isEqualOrParent(uri, provider.rootUri))
.sort(createProviderComparer(uri));

const diffs = await Promise.all(providers.map(async provider => {
Expand Down

0 comments on commit 8cb6281

Please sign in to comment.