提交 c339a560 编写于 作者: P Peng Lyu

optional clipboard service for diff editor widget.

上级 71754fbb
...@@ -79,7 +79,7 @@ class VisualEditorState { ...@@ -79,7 +79,7 @@ class VisualEditorState {
constructor( constructor(
private _contextMenuService: IContextMenuService, private _contextMenuService: IContextMenuService,
private _clipboardService: IClipboardService private _clipboardService: IClipboardService | null
) { ) {
this._zones = []; this._zones = [];
this.inlineDiffMargins = []; this.inlineDiffMargins = [];
...@@ -129,7 +129,7 @@ class VisualEditorState { ...@@ -129,7 +129,7 @@ class VisualEditorState {
this._zones.push(zoneId); this._zones.push(zoneId);
this._zonesMap[String(zoneId)] = true; this._zonesMap[String(zoneId)] = true;
if (newDecorations.zones[i].diff && viewZone.marginDomNode) { if (newDecorations.zones[i].diff && viewZone.marginDomNode && this._clipboardService) {
this.inlineDiffMargins.push(new InlineDiffMargin(zoneId, viewZone.marginDomNode, editor, newDecorations.zones[i].diff!, this._contextMenuService, this._clipboardService)); this.inlineDiffMargins.push(new InlineDiffMargin(zoneId, viewZone.marginDomNode, editor, newDecorations.zones[i].diff!, this._contextMenuService, this._clipboardService));
} }
} }
...@@ -214,6 +214,7 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE ...@@ -214,6 +214,7 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE
constructor( constructor(
domElement: HTMLElement, domElement: HTMLElement,
options: editorOptions.IDiffEditorOptions, options: editorOptions.IDiffEditorOptions,
clipboardService: IClipboardService | null,
@IEditorWorkerService editorWorkerService: IEditorWorkerService, @IEditorWorkerService editorWorkerService: IEditorWorkerService,
@IContextKeyService contextKeyService: IContextKeyService, @IContextKeyService contextKeyService: IContextKeyService,
@IInstantiationService instantiationService: IInstantiationService, @IInstantiationService instantiationService: IInstantiationService,
...@@ -221,7 +222,6 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE ...@@ -221,7 +222,6 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE
@IThemeService themeService: IThemeService, @IThemeService themeService: IThemeService,
@INotificationService notificationService: INotificationService, @INotificationService notificationService: INotificationService,
@IContextMenuService contextMenuService: IContextMenuService, @IContextMenuService contextMenuService: IContextMenuService,
@IClipboardService clipboardService: IClipboardService
) { ) {
super(); super();
......
...@@ -80,7 +80,7 @@ export class EmbeddedDiffEditorWidget extends DiffEditorWidget { ...@@ -80,7 +80,7 @@ export class EmbeddedDiffEditorWidget extends DiffEditorWidget {
@IContextMenuService contextMenuService: IContextMenuService, @IContextMenuService contextMenuService: IContextMenuService,
@IClipboardService clipboardService: IClipboardService @IClipboardService clipboardService: IClipboardService
) { ) {
super(domElement, parentEditor.getRawConfiguration(), editorWorkerService, contextKeyService, instantiationService, codeEditorService, themeService, notificationService, contextMenuService, clipboardService); super(domElement, parentEditor.getRawConfiguration(), clipboardService, editorWorkerService, contextKeyService, instantiationService, codeEditorService, themeService, notificationService, contextMenuService);
this._parentEditor = parentEditor; this._parentEditor = parentEditor;
this._overwriteOptions = options; this._overwriteOptions = options;
......
...@@ -23,7 +23,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur ...@@ -23,7 +23,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur
import { ContextKeyExpr, IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { ContextKeyExpr, IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
import { IContextViewService, IContextMenuService } from 'vs/platform/contextview/browser/contextView'; import { IContextViewService, IContextMenuService } from 'vs/platform/contextview/browser/contextView';
import { ContextViewService } from 'vs/platform/contextview/browser/contextViewService'; import { ContextViewService } from 'vs/platform/contextview/browser/contextViewService';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IInstantiationService, optional } from 'vs/platform/instantiation/common/instantiation';
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
import { INotificationService } from 'vs/platform/notification/common/notification'; import { INotificationService } from 'vs/platform/notification/common/notification';
import { IThemeService } from 'vs/platform/theme/common/themeService'; import { IThemeService } from 'vs/platform/theme/common/themeService';
...@@ -376,7 +376,7 @@ export class StandaloneDiffEditor extends DiffEditorWidget implements IStandalon ...@@ -376,7 +376,7 @@ export class StandaloneDiffEditor extends DiffEditorWidget implements IStandalon
@INotificationService notificationService: INotificationService, @INotificationService notificationService: INotificationService,
@IConfigurationService configurationService: IConfigurationService, @IConfigurationService configurationService: IConfigurationService,
@IContextMenuService contextMenuService: IContextMenuService, @IContextMenuService contextMenuService: IContextMenuService,
@IClipboardService clipboardService: IClipboardService @optional(IClipboardService) clipboardService: IClipboardService | null,
) { ) {
applyConfigurationValues(configurationService, options, true); applyConfigurationValues(configurationService, options, true);
options = options || {}; options = options || {};
...@@ -384,7 +384,7 @@ export class StandaloneDiffEditor extends DiffEditorWidget implements IStandalon ...@@ -384,7 +384,7 @@ export class StandaloneDiffEditor extends DiffEditorWidget implements IStandalon
options.theme = themeService.setTheme(options.theme); options.theme = themeService.setTheme(options.theme);
} }
super(domElement, options, editorWorkerService, contextKeyService, instantiationService, codeEditorService, themeService, notificationService, contextMenuService, clipboardService); super(domElement, options, clipboardService, editorWorkerService, contextKeyService, instantiationService, codeEditorService, themeService, notificationService, contextMenuService);
this._contextViewService = <ContextViewService>contextViewService; this._contextViewService = <ContextViewService>contextViewService;
this._configurationService = configurationService; this._configurationService = configurationService;
......
...@@ -38,7 +38,6 @@ import { INotificationService } from 'vs/platform/notification/common/notificati ...@@ -38,7 +38,6 @@ import { INotificationService } from 'vs/platform/notification/common/notificati
import { IOpenerService } from 'vs/platform/opener/common/opener'; import { IOpenerService } from 'vs/platform/opener/common/opener';
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
import { clearAllFontInfos } from 'vs/editor/browser/config/configuration'; import { clearAllFontInfos } from 'vs/editor/browser/config/configuration';
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
...@@ -121,7 +120,7 @@ export function createDiffEditor(domElement: HTMLElement, options?: IDiffEditorC ...@@ -121,7 +120,7 @@ export function createDiffEditor(domElement: HTMLElement, options?: IDiffEditorC
services.get(INotificationService), services.get(INotificationService),
services.get(IConfigurationService), services.get(IConfigurationService),
services.get(IContextMenuService), services.get(IContextMenuService),
services.get(IClipboardService) null
); );
}); });
} }
......
...@@ -32,6 +32,7 @@ import { CancellationToken } from 'vs/base/common/cancellation'; ...@@ -32,6 +32,7 @@ import { CancellationToken } from 'vs/base/common/cancellation';
import { EditorMemento } from 'vs/workbench/browser/parts/editor/baseEditor'; import { EditorMemento } from 'vs/workbench/browser/parts/editor/baseEditor';
import { IWindowService } from 'vs/platform/windows/common/windows'; import { IWindowService } from 'vs/platform/windows/common/windows';
import { EditorActivation } from 'vs/platform/editor/common/editor'; import { EditorActivation } from 'vs/platform/editor/common/editor';
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
/** /**
* The text editor that leverages the diff text editor for the editing experience. * The text editor that leverages the diff text editor for the editing experience.
...@@ -52,7 +53,8 @@ export class TextDiffEditor extends BaseTextEditor implements ITextDiffEditor { ...@@ -52,7 +53,8 @@ export class TextDiffEditor extends BaseTextEditor implements ITextDiffEditor {
@IThemeService themeService: IThemeService, @IThemeService themeService: IThemeService,
@IEditorGroupsService editorGroupService: IEditorGroupsService, @IEditorGroupsService editorGroupService: IEditorGroupsService,
@ITextFileService textFileService: ITextFileService, @ITextFileService textFileService: ITextFileService,
@IWindowService windowService: IWindowService @IWindowService windowService: IWindowService,
@IClipboardService private _clipboardService: IClipboardService,
) { ) {
super(TextDiffEditor.ID, telemetryService, instantiationService, storageService, configurationService, themeService, textFileService, editorService, editorGroupService, windowService); super(TextDiffEditor.ID, telemetryService, instantiationService, storageService, configurationService, themeService, textFileService, editorService, editorGroupService, windowService);
} }
...@@ -70,7 +72,7 @@ export class TextDiffEditor extends BaseTextEditor implements ITextDiffEditor { ...@@ -70,7 +72,7 @@ export class TextDiffEditor extends BaseTextEditor implements ITextDiffEditor {
} }
createEditorControl(parent: HTMLElement, configuration: ICodeEditorOptions): IDiffEditor { createEditorControl(parent: HTMLElement, configuration: ICodeEditorOptions): IDiffEditor {
return this.instantiationService.createInstance(DiffEditorWidget, parent, configuration); return this.instantiationService.createInstance(DiffEditorWidget, parent, configuration, this._clipboardService);
} }
async setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Promise<void> { async setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Promise<void> {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册