mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-03-31 01:00:29 -04:00
Merge from vscode 2e5312cd61ff99c570299ecc122c52584265eda2
This commit is contained in:
committed by
Anthony Dresser
parent
3603f55d97
commit
7f1d8fc32f
@@ -156,9 +156,12 @@ export class SCMStatusController implements IWorkbenchContribution {
|
||||
|
||||
const disposables = new DisposableStore();
|
||||
for (const c of commands) {
|
||||
const tooltip = `${label} - ${c.tooltip}`;
|
||||
|
||||
disposables.add(this.statusbarService.addEntry({
|
||||
text: c.title,
|
||||
tooltip: `${label} - ${c.tooltip}`,
|
||||
ariaLabel: c.tooltip || label,
|
||||
tooltip,
|
||||
command: c
|
||||
}, 'status.scm', localize('status.scm', "Source Control"), MainThreadStatusBarAlignment.LEFT, 10000));
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ import { ActionBar, ActionViewItem } from 'vs/base/browser/ui/actionbar/actionba
|
||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||
import { attachBadgeStyler } from 'vs/platform/theme/common/styler';
|
||||
import { Command } from 'vs/editor/common/modes';
|
||||
import { renderCodicons } from 'vs/base/common/codicons';
|
||||
import { renderCodicons, Codicon } from 'vs/base/common/codicons';
|
||||
import { escape } from 'vs/base/common/strings';
|
||||
import { WorkbenchList } from 'vs/platform/list/browser/listService';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
@@ -203,13 +203,21 @@ export class MainPane extends ViewPane {
|
||||
const renderer = this.instantiationService.createInstance(ProviderRenderer);
|
||||
const identityProvider = { getId: (r: ISCMRepository) => r.provider.id };
|
||||
|
||||
this.list = <WorkbenchList<ISCMRepository>>this.instantiationService.createInstance(WorkbenchList, `SCM Main`, container, delegate, [renderer], {
|
||||
this.list = this.instantiationService.createInstance(WorkbenchList, `SCM Main`, container, delegate, [renderer], {
|
||||
identityProvider,
|
||||
horizontalScrolling: false,
|
||||
overrideStyles: {
|
||||
listBackground: SIDE_BAR_BACKGROUND
|
||||
},
|
||||
accessibilityProvider: {
|
||||
getAriaLabel(r: ISCMRepository) {
|
||||
return r.provider.label;
|
||||
},
|
||||
getWidgetAriaLabel() {
|
||||
return MainPane.TITLE;
|
||||
}
|
||||
}
|
||||
});
|
||||
}) as WorkbenchList<ISCMRepository>;
|
||||
|
||||
this._register(renderer.onDidRenderElement(e => this.list.updateWidth(this.viewModel.repositories.indexOf(e)), null));
|
||||
this._register(this.list.onDidChangeSelection(this.onListSelectionChange, this));
|
||||
@@ -242,6 +250,7 @@ export class MainPane extends ViewPane {
|
||||
}
|
||||
|
||||
protected layoutBody(height: number, width: number): void {
|
||||
super.layoutBody(height, width);
|
||||
this.list.layout(height, width);
|
||||
}
|
||||
|
||||
@@ -328,6 +337,7 @@ export class MainPaneDescriptor implements IViewDescriptor {
|
||||
|
||||
readonly id = MainPane.ID;
|
||||
readonly name = MainPane.TITLE;
|
||||
readonly containerIcon = Codicon.sourceControl.classNames;
|
||||
readonly ctorDescriptor: SyncDescriptor<MainPane>;
|
||||
readonly canToggleVisibility = true;
|
||||
readonly hideByDefault = false;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
import 'vs/css!./media/scmViewlet';
|
||||
import { Event, Emitter } from 'vs/base/common/event';
|
||||
import { basename, isEqual } from 'vs/base/common/resources';
|
||||
import { basename, dirname, isEqual } from 'vs/base/common/resources';
|
||||
import { IDisposable, Disposable, DisposableStore, combinedDisposable } from 'vs/base/common/lifecycle';
|
||||
import { ViewPane, IViewPaneOptions } from 'vs/workbench/browser/parts/views/viewPaneContainer';
|
||||
import { append, $, addClass, toggleClass, trackFocus, removeClass } from 'vs/base/browser/dom';
|
||||
@@ -27,7 +27,7 @@ import { ActionBar, IActionViewItemProvider } from 'vs/base/browser/ui/actionbar
|
||||
import { IThemeService, LIGHT, registerThemingParticipant, IFileIconTheme } from 'vs/platform/theme/common/themeService';
|
||||
import { isSCMResource, isSCMResourceGroup, connectPrimaryMenuToInlineActionBar } from './util';
|
||||
import { attachBadgeStyler } from 'vs/platform/theme/common/styler';
|
||||
import { WorkbenchCompressibleObjectTree } from 'vs/platform/list/browser/listService';
|
||||
import { WorkbenchCompressibleObjectTree, TreeResourceNavigator, IOpenEvent } from 'vs/platform/list/browser/listService';
|
||||
import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configuration/common/configuration';
|
||||
import { disposableTimeout, ThrottledDelayer } from 'vs/base/common/async';
|
||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
@@ -71,6 +71,9 @@ import { ColorDetector } from 'vs/editor/contrib/colorPicker/colorDetector';
|
||||
import { LinkDetector } from 'vs/editor/contrib/links/links';
|
||||
import { IOpenerService } from 'vs/platform/opener/common/opener';
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { IListAccessibilityProvider } from 'vs/base/browser/ui/list/listWidget';
|
||||
import { IModeService } from 'vs/editor/common/services/modeService';
|
||||
import { ILabelService } from 'vs/platform/label/common/label';
|
||||
|
||||
type TreeElement = ISCMResourceGroup | IResourceNode<ISCMResource, ISCMResourceGroup> | ISCMResource;
|
||||
|
||||
@@ -388,6 +391,39 @@ class SCMResourceIdentityProvider implements IIdentityProvider<TreeElement> {
|
||||
}
|
||||
}
|
||||
|
||||
export class SCMAccessibilityProvider implements IListAccessibilityProvider<TreeElement> {
|
||||
|
||||
constructor(@ILabelService private readonly labelService: ILabelService) { }
|
||||
|
||||
getWidgetAriaLabel(): string {
|
||||
return localize('scm', "Source Control Management");
|
||||
}
|
||||
|
||||
getAriaLabel(element: TreeElement): string {
|
||||
if (ResourceTree.isResourceNode(element)) {
|
||||
return this.labelService.getUriLabel(element.uri, { relative: true, noPrefix: true }) || element.name;
|
||||
} else if (isSCMResourceGroup(element)) {
|
||||
return element.label;
|
||||
} else {
|
||||
const result: string[] = [];
|
||||
|
||||
if (element.decorations.tooltip) {
|
||||
result.push(element.decorations.tooltip);
|
||||
}
|
||||
|
||||
result.push(basename(element.sourceUri));
|
||||
|
||||
const path = this.labelService.getUriLabel(dirname(element.sourceUri), { relative: true, noPrefix: true });
|
||||
|
||||
if (path) {
|
||||
result.push(path);
|
||||
}
|
||||
|
||||
return result.join(', ');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
interface IGroupItem {
|
||||
readonly group: ISCMResourceGroup;
|
||||
readonly resources: ISCMResource[];
|
||||
@@ -635,6 +671,7 @@ export class RepositoryPane extends ViewPane {
|
||||
@IMenuService protected menuService: IMenuService,
|
||||
@IStorageService private storageService: IStorageService,
|
||||
@IModelService private modelService: IModelService,
|
||||
@IModeService private modeService: IModeService,
|
||||
@IOpenerService openerService: IOpenerService,
|
||||
@ITelemetryService telemetryService: ITelemetryService,
|
||||
) {
|
||||
@@ -772,7 +809,9 @@ export class RepositoryPane extends ViewPane {
|
||||
});
|
||||
|
||||
this.configurationService.updateValue('editor.wordBasedSuggestions', false, { resource: uri }, ConfigurationTarget.MEMORY);
|
||||
this.inputModel = this.modelService.getModel(uri) || this.modelService.createModel('', null, uri);
|
||||
|
||||
const mode = this.modeService.create('scminput');
|
||||
this.inputModel = this.modelService.getModel(uri) || this.modelService.createModel('', mode, uri);
|
||||
this.inputEditor.setModel(this.inputModel);
|
||||
|
||||
this._register(this.inputEditor.onDidChangeCursorPosition(triggerValidation));
|
||||
@@ -784,6 +823,7 @@ export class RepositoryPane extends ViewPane {
|
||||
return;
|
||||
}
|
||||
this.inputModel.setValue(value);
|
||||
this.inputEditor.setPosition(this.inputModel.getFullModelRange().getEndPosition());
|
||||
}));
|
||||
|
||||
// Keep API in sync with model and update placeholder and validation
|
||||
@@ -801,9 +841,7 @@ export class RepositoryPane extends ViewPane {
|
||||
const onDidChangeContentHeight = Event.filter(this.inputEditor.onDidContentSizeChange, e => e.contentHeightChanged);
|
||||
this._register(onDidChangeContentHeight(() => this.layoutBody()));
|
||||
|
||||
if (this.repository.provider.onDidChangeCommitTemplate) {
|
||||
this._register(this.repository.provider.onDidChangeCommitTemplate(this.onDidChangeCommitTemplate, this));
|
||||
}
|
||||
this._register(this.repository.provider.onDidChangeCommitTemplate(this.onDidChangeCommitTemplate, this));
|
||||
|
||||
this.onDidChangeCommitTemplate();
|
||||
|
||||
@@ -845,7 +883,7 @@ export class RepositoryPane extends ViewPane {
|
||||
const keyboardNavigationLabelProvider = new SCMTreeKeyboardNavigationLabelProvider();
|
||||
const identityProvider = new SCMResourceIdentityProvider();
|
||||
|
||||
this.tree = <WorkbenchCompressibleObjectTree<TreeElement, FuzzyScore>>this.instantiationService.createInstance(
|
||||
this.tree = this.instantiationService.createInstance(
|
||||
WorkbenchCompressibleObjectTree,
|
||||
'SCM Tree Repo',
|
||||
this.listContainer,
|
||||
@@ -859,13 +897,12 @@ export class RepositoryPane extends ViewPane {
|
||||
keyboardNavigationLabelProvider,
|
||||
overrideStyles: {
|
||||
listBackground: SIDE_BAR_BACKGROUND
|
||||
}
|
||||
});
|
||||
},
|
||||
accessibilityProvider: this.instantiationService.createInstance(SCMAccessibilityProvider)
|
||||
}) as WorkbenchCompressibleObjectTree<TreeElement, FuzzyScore>;
|
||||
|
||||
this._register(Event.chain(this.tree.onDidOpen)
|
||||
.map(e => e.elements[0])
|
||||
.filter<ISCMResource>((e): e is ISCMResource => !!e && !isSCMResourceGroup(e) && !ResourceTree.isResourceNode(e))
|
||||
.on(this.open, this));
|
||||
const navigator = this._register(new TreeResourceNavigator(this.tree, { openOnSelection: false }));
|
||||
this._register(navigator.onDidOpenResource(this.open, this));
|
||||
|
||||
this._register(Event.chain(this.tree.onDidPin)
|
||||
.map(e => e.elements[0])
|
||||
@@ -875,7 +912,7 @@ export class RepositoryPane extends ViewPane {
|
||||
this._register(this.tree.onContextMenu(this.onListContextMenu, this));
|
||||
this._register(this.tree);
|
||||
|
||||
let mode = this.configurationService.getValue<'tree' | 'list'>('scm.defaultViewMode') === 'list' ? ViewModelMode.List : ViewModelMode.Tree;
|
||||
let viewMode = this.configurationService.getValue<'tree' | 'list'>('scm.defaultViewMode') === 'list' ? ViewModelMode.List : ViewModelMode.Tree;
|
||||
|
||||
const rootUri = this.repository.provider.rootUri;
|
||||
|
||||
@@ -883,11 +920,11 @@ export class RepositoryPane extends ViewPane {
|
||||
const storageMode = this.storageService.get(`scm.repository.viewMode:${rootUri.toString()}`, StorageScope.WORKSPACE) as ViewModelMode;
|
||||
|
||||
if (typeof storageMode === 'string') {
|
||||
mode = storageMode;
|
||||
viewMode = storageMode;
|
||||
}
|
||||
}
|
||||
|
||||
this.viewModel = this.instantiationService.createInstance(ViewModel, this.repository.provider.groups, this.tree, mode);
|
||||
this.viewModel = this.instantiationService.createInstance(ViewModel, this.repository.provider.groups, this.tree, viewMode);
|
||||
this._register(this.viewModel);
|
||||
|
||||
addClass(this.listContainer, 'file-icon-themable-tree');
|
||||
@@ -929,6 +966,10 @@ export class RepositoryPane extends ViewPane {
|
||||
return;
|
||||
}
|
||||
|
||||
if (width !== undefined) {
|
||||
super.layoutBody(height, width);
|
||||
}
|
||||
|
||||
this.cachedHeight = height;
|
||||
this.cachedWidth = width;
|
||||
|
||||
@@ -1005,8 +1046,12 @@ export class RepositoryPane extends ViewPane {
|
||||
return this.repository.provider;
|
||||
}
|
||||
|
||||
private open(e: ISCMResource): void {
|
||||
e.open();
|
||||
private open(e: IOpenEvent<TreeElement | null>): void {
|
||||
if (!e.element || isSCMResourceGroup(e.element) || ResourceTree.isResourceNode(e.element)) {
|
||||
return;
|
||||
}
|
||||
|
||||
e.element.open(!!e.editorOptions.preserveFocus);
|
||||
}
|
||||
|
||||
private pin(): void {
|
||||
|
||||
@@ -26,17 +26,25 @@ import { SCMService } from 'vs/workbench/contrib/scm/common/scmService';
|
||||
import { IViewContainersRegistry, ViewContainerLocation, Extensions as ViewContainerExtensions } from 'vs/workbench/common/views';
|
||||
import { SCMViewPaneContainer } from 'vs/workbench/contrib/scm/browser/scmViewlet';
|
||||
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
|
||||
import { ModesRegistry } from 'vs/editor/common/modes/modesRegistry';
|
||||
import { Codicon } from 'vs/base/common/codicons';
|
||||
|
||||
class OpenSCMViewletAction extends ShowViewletAction {
|
||||
|
||||
static readonly ID = VIEWLET_ID;
|
||||
static readonly LABEL = localize('toggleGitViewlet', "Show Git");
|
||||
static readonly LABEL = localize('toggleSCMViewlet', "Show SCM");
|
||||
|
||||
constructor(id: string, label: string, @IViewletService viewletService: IViewletService, @IEditorGroupsService editorGroupService: IEditorGroupsService, @IWorkbenchLayoutService layoutService: IWorkbenchLayoutService) {
|
||||
super(id, label, VIEWLET_ID, viewletService, editorGroupService, layoutService);
|
||||
}
|
||||
}
|
||||
|
||||
ModesRegistry.registerLanguage({
|
||||
id: 'scminput',
|
||||
extensions: [],
|
||||
mimetypes: ['text/x-scm-input']
|
||||
});
|
||||
|
||||
Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench)
|
||||
.registerWorkbenchContribution(DirtyDiffWorkbenchController, LifecyclePhase.Restored);
|
||||
|
||||
@@ -44,7 +52,9 @@ Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegis
|
||||
id: VIEWLET_ID,
|
||||
name: localize('source control', "Source Control"),
|
||||
ctorDescriptor: new SyncDescriptor(SCMViewPaneContainer),
|
||||
icon: 'codicon-source-control',
|
||||
storageId: 'workbench.scm.views.state',
|
||||
icon: Codicon.sourceControl.classNames,
|
||||
alwaysUseContainerInfo: true,
|
||||
order: 12 // {{SQL CARBON EDIT}}
|
||||
}, ViewContainerLocation.Sidebar);
|
||||
|
||||
@@ -53,7 +63,7 @@ Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench)
|
||||
|
||||
// Register Action to Open Viewlet
|
||||
Registry.as<IWorkbenchActionRegistry>(WorkbenchActionExtensions.WorkbenchActions).registerWorkbenchAction(
|
||||
SyncActionDescriptor.create(OpenSCMViewletAction, VIEWLET_ID, localize('toggleSCMViewlet', "Show SCM"), {
|
||||
SyncActionDescriptor.from(OpenSCMViewletAction, {
|
||||
primary: 0,
|
||||
win: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_G },
|
||||
linux: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_G },
|
||||
|
||||
@@ -24,16 +24,16 @@ import { INotificationService } from 'vs/platform/notification/common/notificati
|
||||
import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService';
|
||||
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
|
||||
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
|
||||
import { IViewsRegistry, Extensions, IViewDescriptorService, IViewDescriptor } from 'vs/workbench/common/views';
|
||||
import { IViewsRegistry, Extensions, IViewDescriptorService, IViewDescriptor, IAddedViewDescriptorRef, IViewDescriptorRef } from 'vs/workbench/common/views';
|
||||
import { Registry } from 'vs/platform/registry/common/platform';
|
||||
import { RepositoryPane, RepositoryViewDescriptor } from 'vs/workbench/contrib/scm/browser/repositoryPane';
|
||||
import { MainPaneDescriptor, MainPane, IViewModel } from 'vs/workbench/contrib/scm/browser/mainPane';
|
||||
import { ViewPaneContainer, IViewPaneOptions, ViewPane } from 'vs/workbench/browser/parts/views/viewPaneContainer';
|
||||
import type { IAddedViewDescriptorRef, IViewDescriptorRef } from 'vs/workbench/browser/parts/views/views';
|
||||
import { debounce } from 'vs/base/common/decorators';
|
||||
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
|
||||
import { IOpenerService } from 'vs/platform/opener/common/opener';
|
||||
import { addClass } from 'vs/base/browser/dom';
|
||||
import { Codicon } from 'vs/base/common/codicons';
|
||||
|
||||
export interface ISpliceEvent<T> {
|
||||
index: number;
|
||||
@@ -69,6 +69,7 @@ export class EmptyPane extends ViewPane {
|
||||
export class EmptyPaneDescriptor implements IViewDescriptor {
|
||||
readonly id = EmptyPane.ID;
|
||||
readonly name = EmptyPane.TITLE;
|
||||
readonly containerIcon = Codicon.sourceControl.classNames;
|
||||
readonly ctorDescriptor = new SyncDescriptor(EmptyPane);
|
||||
readonly canToggleVisibility = true;
|
||||
readonly hideByDefault = false;
|
||||
@@ -79,8 +80,6 @@ export class EmptyPaneDescriptor implements IViewDescriptor {
|
||||
|
||||
export class SCMViewPaneContainer extends ViewPaneContainer implements IViewModel {
|
||||
|
||||
private static readonly STATE_KEY = 'workbench.scm.views.state';
|
||||
|
||||
private menus: SCMMenus;
|
||||
private _repositories: ISCMRepository[] = [];
|
||||
|
||||
@@ -103,7 +102,7 @@ export class SCMViewPaneContainer extends ViewPaneContainer implements IViewMode
|
||||
}
|
||||
|
||||
get onDidChangeVisibleRepositories(): Event<ISCMRepository[]> {
|
||||
const modificationEvent = Event.debounce(Event.any(this.viewsModel.onDidAdd, this.viewsModel.onDidRemove), () => null, 0);
|
||||
const modificationEvent = Event.debounce(Event.any(this.viewContainerModel.onDidAddVisibleViewDescriptors, this.viewContainerModel.onDidRemoveVisibleViewDescriptors), () => null, 0);
|
||||
return Event.map(modificationEvent, () => this.visibleRepositories);
|
||||
}
|
||||
|
||||
@@ -125,7 +124,7 @@ export class SCMViewPaneContainer extends ViewPaneContainer implements IViewMode
|
||||
@IContextKeyService contextKeyService: IContextKeyService,
|
||||
@IViewDescriptorService viewDescriptorService: IViewDescriptorService
|
||||
) {
|
||||
super(VIEWLET_ID, SCMViewPaneContainer.STATE_KEY, { mergeViewWithContainerWhenSingleView: true }, instantiationService, configurationService, layoutService, contextMenuService, telemetryService, extensionService, themeService, storageService, contextService, viewDescriptorService);
|
||||
super(VIEWLET_ID, { mergeViewWithContainerWhenSingleView: true }, instantiationService, configurationService, layoutService, contextMenuService, telemetryService, extensionService, themeService, storageService, contextService, viewDescriptorService);
|
||||
|
||||
this.menus = instantiationService.createInstance(SCMMenus, undefined);
|
||||
this._register(this.menus.onDidChangeTitle(this.updateTitleArea, this));
|
||||
@@ -142,14 +141,14 @@ export class SCMViewPaneContainer extends ViewPaneContainer implements IViewMode
|
||||
|
||||
this._register(configurationService.onDidChangeConfiguration(e => {
|
||||
if (e.affectsConfiguration('scm.alwaysShowProviders') && configurationService.getValue<boolean>('scm.alwaysShowProviders')) {
|
||||
this.viewsModel.setVisible(MainPane.ID, true);
|
||||
this.viewContainerModel.setVisible(MainPane.ID, true);
|
||||
}
|
||||
}));
|
||||
|
||||
this.repositoryCountKey = contextKeyService.createKey('scm.providerCount', 0);
|
||||
|
||||
this._register(this.viewsModel.onDidAdd(this.onDidShowView, this));
|
||||
this._register(this.viewsModel.onDidRemove(this.onDidHideView, this));
|
||||
this._register(this.viewContainerModel.onDidAddVisibleViewDescriptors(this.onDidShowView, this));
|
||||
this._register(this.viewContainerModel.onDidRemoveVisibleViewDescriptors(this.onDidHideView, this));
|
||||
}
|
||||
|
||||
create(parent: HTMLElement): void {
|
||||
@@ -216,8 +215,8 @@ export class SCMViewPaneContainer extends ViewPaneContainer implements IViewMode
|
||||
|
||||
@debounce(0)
|
||||
private afterOnDidHideView(): void {
|
||||
if (this.repositoryCountKey.get()! > 0 && this.viewDescriptors.every(d => !this.viewsModel.isVisible(d.id))) {
|
||||
this.viewsModel.setVisible(this.viewDescriptors[0].id, true);
|
||||
if (this.repositoryCountKey.get()! > 0 && this.viewDescriptors.every(d => !this.viewContainerModel.isVisible(d.id))) {
|
||||
this.viewContainerModel.setVisible(this.viewDescriptors[0].id, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -284,9 +283,9 @@ export class SCMViewPaneContainer extends ViewPaneContainer implements IViewMode
|
||||
}
|
||||
|
||||
setVisibleRepositories(repositories: ISCMRepository[]): void {
|
||||
const visibleViewDescriptors = this.viewsModel.visibleViewDescriptors;
|
||||
const visibleViewDescriptors = this.viewContainerModel.visibleViewDescriptors;
|
||||
|
||||
const toSetVisible = this.viewsModel.viewDescriptors
|
||||
const toSetVisible = this.viewContainerModel.activeViewDescriptors
|
||||
.filter((d): d is RepositoryViewDescriptor => d instanceof RepositoryViewDescriptor && repositories.indexOf(d.repository) > -1 && visibleViewDescriptors.indexOf(d) === -1);
|
||||
|
||||
const toSetInvisible = visibleViewDescriptors
|
||||
@@ -304,11 +303,11 @@ export class SCMViewPaneContainer extends ViewPaneContainer implements IViewMode
|
||||
}
|
||||
}
|
||||
|
||||
this.viewsModel.setVisible(viewDescriptor.id, false);
|
||||
this.viewContainerModel.setVisible(viewDescriptor.id, false);
|
||||
}
|
||||
|
||||
for (const viewDescriptor of toSetVisible) {
|
||||
this.viewsModel.setVisible(viewDescriptor.id, true, size);
|
||||
this.viewContainerModel.setVisible(viewDescriptor.id, true, size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ export interface ISCMResource {
|
||||
readonly resourceGroup: ISCMResourceGroup;
|
||||
readonly sourceUri: URI;
|
||||
readonly decorations: ISCMResourceDecorations;
|
||||
open(): Promise<void>;
|
||||
open(preserveFocus: boolean): Promise<void>;
|
||||
}
|
||||
|
||||
export interface ISCMResourceGroup extends ISequence<ISCMResource> {
|
||||
|
||||
Reference in New Issue
Block a user