Skip to content

Commit 7fcfb2f

Browse files
authored
Use active editor and show progress when sharing (microsoft#183603)
Use active editor and show progress
1 parent 648c3c8 commit 7fcfb2f

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

src/vs/workbench/contrib/share/browser/share.contribution.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { Action2, MenuId, MenuRegistry, registerAction2 } from 'vs/platform/acti
1313
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
1414
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
1515
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
16+
import { EditorResourceAccessor, SideBySideEditor } from 'vs/workbench/common/editor';
1617
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
1718
import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/common/extensions';
1819
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
@@ -26,6 +27,8 @@ import { Extensions, IWorkbenchContributionsRegistry } from 'vs/workbench/common
2627
import { ShareProviderCountContext, ShareService } from 'vs/workbench/contrib/share/browser/shareService';
2728
import { IShareService } from 'vs/workbench/contrib/share/common/share';
2829
import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle';
30+
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
31+
import { IProgressService, ProgressLocation } from 'vs/platform/progress/common/progress';
2932

3033
const targetMenus = [
3134
MenuId.EditorContextShare,
@@ -73,15 +76,23 @@ class ShareWorkbenchContribution {
7376

7477
override async run(accessor: ServicesAccessor, ...args: any[]): Promise<void> {
7578
const shareService = accessor.get(IShareService);
76-
const resourceUri = accessor.get(IWorkspaceContextService).getWorkspace().folders[0].uri;
79+
const activeEditor = accessor.get(IEditorService)?.activeEditor;
80+
const resourceUri = (activeEditor && EditorResourceAccessor.getOriginalUri(activeEditor, { supportSideBySide: SideBySideEditor.PRIMARY }))
81+
?? accessor.get(IWorkspaceContextService).getWorkspace().folders[0].uri;
7782
const clipboardService = accessor.get(IClipboardService);
7883
const dialogService = accessor.get(IDialogService);
7984
const urlService = accessor.get(IOpenerService);
85+
const progressService = accessor.get(IProgressService);
8086

8187
const uri = await shareService.provideShare({ resourceUri }, new CancellationTokenSource().token);
8288
if (uri) {
8389
const uriText = uri.toString();
84-
await clipboardService.writeText(uriText);
90+
91+
await progressService.withProgress({
92+
location: ProgressLocation.Window,
93+
detail: localize('generating link', 'Generating link...')
94+
}, () => clipboardService.writeText(uriText));
95+
8596
dialogService.prompt(
8697
{
8798
type: Severity.Info,

0 commit comments

Comments
 (0)