Skip to content

Commit

Permalink
8969-upgrade-monaco-editor-core-to-standalone-0.23.x
Browse files Browse the repository at this point in the history
In preparation for upgrading monaco-editor-core to standalone/0.23.x these changes were implemented:
1) signatures alignment to standalone/0.23.x
2) editor preferences synced with standalone/0.23.x
3) Changes to theme services based on changes in 0.23.x
4) Removal of QuickOpen modules and implementing QuickInput instead
  • Loading branch information
danarad05 committed May 4, 2021
1 parent f20dcac commit 2692400
Show file tree
Hide file tree
Showing 123 changed files with 4,249 additions and 5,190 deletions.
2 changes: 1 addition & 1 deletion packages/bulk-edit/src/browser/bulk-edit-contribution.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import { BulkEditCommands } from './bulk-edit-commands';
import { MonacoBulkEditService } from '@theia/monaco/lib/browser/monaco-bulk-edit-service';
import { TabBarToolbarContribution, TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
import { BulkEditTreeWidget, BULK_EDIT_TREE_WIDGET_ID } from './bulk-edit-tree';
import { QuickViewService } from '@theia/core/lib/browser/quick-view-service';
import { QuickViewService } from '@theia/core/lib/browser';

export const BULK_EDIT_WIDGET_NAME = 'Refactor Preview';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import { injectable, inject } from '@theia/core/shared/inversify';
import {
TreeWidget, TreeProps, ContextMenuRenderer, TreeNode, TreeModel,
CompositeTreeNode, NodeProps
CompositeTreeNode, NodeProps, QuickViewService
} from '@theia/core/lib/browser';
import * as React from '@theia/core/shared/react';
import { BulkEditInfoNode, BulkEditNode } from './bulk-edit-tree';
Expand All @@ -28,7 +28,6 @@ import { EditorWidget, EditorManager, EditorOpenerOptions } from '@theia/editor/
import { DiffUris } from '@theia/core/lib/browser';
import { MEMORY_TEXT } from './in-memory-text-resource';
import { Disposable } from '@theia/core/lib/common/disposable';
import { QuickViewService } from '@theia/core/lib/browser/quick-view-service';

export const BULK_EDIT_TREE_WIDGET_ID = 'bulkedit';
export const BULK_EDIT_WIDGET_NAME = 'Refactor Preview';
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/browser/color-application-contribution.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,10 @@ export class ColorApplicationContribution implements FrontendApplicationContribu
}

this.updateThemeBackground();
ThemeService.get().onThemeChange(() => this.updateThemeBackground());
ThemeService.get().onDidColorThemeChange(() => this.updateThemeBackground());

this.update();
ThemeService.get().onThemeChange(() => this.update());
ThemeService.get().onDidColorThemeChange(() => this.update());
this.colors.onDidChange(() => this.update());
}

Expand Down
122 changes: 59 additions & 63 deletions packages/core/src/browser/common-frontend-contribution.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ import { ResourceContextKey } from './resource-context-key';
import { UriSelection } from '../common/selection';
import { StorageService } from './storage-service';
import { Navigatable } from './navigatable';
import { QuickViewService } from './quick-view-service';
import { PrefixQuickOpenService, QuickOpenItem, QuickOpenMode, QuickOpenService, QuickOpenGroupItem } from './quick-open';
import { QuickViewService } from './quick-input/quick-view-service';
import { environment } from '@theia/application-package/lib/environment';
import { IconThemeService } from './icon-theme-service';
import { ColorContribution } from './color-application-contribution';
Expand All @@ -53,6 +52,7 @@ import { UTF8 } from '../common/encodings';
import { EnvVariablesServer } from '../common/env-variables';
import { AuthenticationService } from './authentication-service';
import { FormatType } from './saveable';
import { QuickInputService, QuickPickItem } from './quick-input';

export namespace CommonMenus {

Expand Down Expand Up @@ -307,18 +307,15 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
@inject(QuickViewService)
protected readonly quickView: QuickViewService;

@inject(PrefixQuickOpenService)
protected readonly quickOpen: PrefixQuickOpenService;
@inject(QuickInputService)
protected readonly quickInputService: QuickInputService;

@inject(IconThemeService)
protected readonly iconThemes: IconThemeService;

@inject(ThemeService)
protected readonly themeService: ThemeService;

@inject(QuickOpenService)
protected readonly quickOpenService: QuickOpenService;

@inject(CorePreferences)
protected readonly preferences: CorePreferences;

Expand Down Expand Up @@ -363,7 +360,7 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
this.updateThemeFromPreference(e.preferenceName);
}
});
this.themeService.onThemeChange(() => this.updateThemePreference('workbench.colorTheme'));
this.themeService.onDidColorThemeChange(() => this.updateThemePreference('workbench.colorTheme'));
this.iconThemes.onDidChangeCurrent(() => this.updateThemePreference('workbench.iconTheme'));

app.shell.leftPanelHandler.addMenu({
Expand Down Expand Up @@ -765,7 +762,7 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
});

commandRegistry.registerCommand(CommonCommands.OPEN_VIEW, {
execute: () => this.quickOpen.open(this.quickView.prefix)
execute: () => this.quickInputService.open(this.quickView.prefix)
});

commandRegistry.registerCommand(CommonCommands.SELECT_COLOR_THEME, {
Expand Down Expand Up @@ -991,82 +988,81 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
let resetTo: string | undefined = this.iconThemes.current;
const previewTheme = debounce((id: string) => this.iconThemes.current = id, 200);

let items: (QuickOpenItem & { id: string })[] = [];
let items: Array<QuickPickItem> = [];
for (const iconTheme of this.iconThemes.definitions) {
const item = Object.assign(new QuickOpenItem({
items.push({
id: iconTheme.id,
label: iconTheme.label,
description: iconTheme.description,
run: (mode: QuickOpenMode) => {
if (mode === QuickOpenMode.OPEN) {
resetTo = undefined;
}
previewTheme(iconTheme.id);
return true;
}
}), { id: iconTheme.id });
items.push(item);
});
}
items = items.sort((a, b) => {
if (a.id === 'none') {
return -1;
}
return a.getLabel()!.localeCompare(b.getLabel()!);
});
this.quickOpenService.open({
onType: (_, accept) => accept(items)
}, {
placeholder: 'Select File Icon Theme',
fuzzyMatchLabel: true,
selectIndex: () => items.findIndex(item => item.id === this.iconThemes.current),
onClose: () => {
if (resetTo) {
previewTheme.cancel();
this.iconThemes.current = resetTo;
}
}
return a.label!.localeCompare(b.label!);
});

this.quickInputService.showQuickPick(items,
{
placeholder: 'Select File Icon Theme',
activeItem: items.find(item => item.id === resetTo),
// eslint-disable-next-line @typescript-eslint/no-explicit-any
onDidChangeSelection: (quickPick: any, selectedItems: Array<QuickPickItem>) => {
resetTo = undefined;
previewTheme(selectedItems[0].id!);
},
// eslint-disable-next-line @typescript-eslint/no-explicit-any
onDidChangeActive: (quickPick: any, activeItems: Array<QuickPickItem>) => {
previewTheme(activeItems[0].id!);
},
onDidHide: () => {
if (resetTo) {
this.iconThemes.current = resetTo;
}
}
});
}

protected selectColorTheme(): void {
let resetTo: string | undefined = this.themeService.getCurrentTheme().id;
const previewTheme = debounce((id: string) => this.themeService.setCurrentTheme(id), 200);

type ThemeQuickOpenItem = QuickOpenItem & { id: string };
const itemsByTheme: { light: ThemeQuickOpenItem[], dark: ThemeQuickOpenItem[], hc: ThemeQuickOpenItem[] } = { light: [], dark: [], hc: [] };
const itemsByTheme: { light: Array<QuickPickItem>, dark: Array<QuickPickItem>, hc: Array<QuickPickItem> } = { light: [], dark: [], hc: [] };
for (const theme of this.themeService.getThemes().sort((a, b) => a.label.localeCompare(b.label))) {
const themeItems = itemsByTheme[theme.type];
const groupLabel = themeItems.length === 0 ? (theme.type === 'hc' ? 'high contrast' : theme.type) + ' themes' : undefined;
themeItems.push(Object.assign(new QuickOpenGroupItem({
if (themeItems.length === 0) {
themeItems.push({
type: 'separator',
label: (theme.type === 'hc' ? 'high contrast' : theme.type) + ' themes'
});
}
themeItems.push({
id: theme.id,
label: theme.label,
description: theme.description,
run: (mode: QuickOpenMode) => {
if (mode === QuickOpenMode.OPEN) {
resetTo = undefined;
}
previewTheme(theme.id);
return true;
},
groupLabel,
showBorder: !!groupLabel && theme.type !== 'light'
}), { id: theme.id }));
});
}
const items = [...itemsByTheme.light, ...itemsByTheme.dark, ...itemsByTheme.hc];
this.quickOpenService.open({
onType: (_, accept) => accept(items)
}, {
placeholder: 'Select Color Theme (Up/Down Keys to Preview)',
fuzzyMatchLabel: true,
selectIndex: () => {
const current = this.themeService.getCurrentTheme().id;
return items.findIndex(item => item.id === current);
},
onClose: () => {
if (resetTo) {
previewTheme.cancel();
this.themeService.setCurrentTheme(resetTo);
this.quickInputService.showQuickPick(items,
{
placeholder: 'Select Color Theme (Up/Down Keys to Preview)',
activeItem: items.find((item: QuickPickItem) => item.id === resetTo),
// eslint-disable-next-line @typescript-eslint/no-explicit-any
onDidChangeSelection: (quickPick: any, selectedItems: Array<QuickPickItem>) => {
resetTo = undefined;
previewTheme(selectedItems[0].id!);
},
// eslint-disable-next-line @typescript-eslint/no-explicit-any
onDidChangeActive: (quickPick: any, activeItems: Array<QuickPickItem>) => {
previewTheme(activeItems[0].id!);
},
onDidHide: () => {
if (resetTo) {
this.themeService.setCurrentTheme(resetTo);
}
}
}
});
});
}

registerColors(colors: ColorRegistry): void {
Expand Down
42 changes: 20 additions & 22 deletions packages/core/src/browser/frontend-application-module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,6 @@ import { FrontendApplication, FrontendApplicationContribution, DefaultFrontendAp
import { DefaultOpenerService, OpenerService, OpenHandler } from './opener-service';
import { HttpOpenHandler } from './http-open-handler';
import { CommonFrontendContribution } from './common-frontend-contribution';
import {
QuickOpenService, QuickCommandService, QuickCommandFrontendContribution, QuickOpenContribution,
QuickOpenHandlerRegistry, CommandQuickOpenContribution, HelpQuickOpenHandler,
QuickOpenFrontendContribution, PrefixQuickOpenService, QuickInputService
} from './quick-open';
import { LocalStorageService, StorageService } from './storage-service';
import { WidgetFactory, WidgetManager } from './widget-manager';
import {
Expand All @@ -65,16 +60,13 @@ import { FrontendApplicationStateService } from './frontend-application-state';
import { JsonSchemaStore, JsonSchemaContribution, DefaultJsonSchemaContribution } from './json-schema-store';
import { TabBarToolbarRegistry, TabBarToolbarContribution, TabBarToolbarFactory, TabBarToolbar } from './shell/tab-bar-toolbar';
import { bindCorePreferences } from './core-preferences';
import { QuickPickServiceImpl } from './quick-open/quick-pick-service-impl';
import { QuickPickService, quickPickServicePath } from '../common/quick-pick-service';
import { ContextKeyService } from './context-key-service';
import { ResourceContextKey } from './resource-context-key';
import { KeyboardLayoutService } from './keyboard/keyboard-layout-service';
import { MimeService } from './mime-service';
import { ApplicationShellMouseTracker } from './shell/application-shell-mouse-tracker';
import { ViewContainer, ViewContainerIdentifier } from './view-container';
import { QuickViewService } from './quick-view-service';
import { QuickTitleBar } from './quick-open/quick-title-bar';
import { QuickViewService } from './quick-input/quick-view-service';
import { DialogOverlayService } from './dialogs';
import { ProgressLocationService } from './progress-location-service';
import { ProgressClient } from '../common/progress-service-protocol';
Expand All @@ -97,6 +89,12 @@ import { LanguageService } from './language-service';
import { EncodingRegistry } from './encoding-registry';
import { EncodingService } from '../common/encoding-service';
import { AuthenticationService, AuthenticationServiceImpl } from '../browser/authentication-service';
import {
QuickCommandService, QuickEditorService, QuickHelpService, QuickInputContribution, QuickInputFrontendContribution,
QuickInputService, QuickPickService, QuickPickServiceImpl, quickPickServicePath
} from './quick-input';
import { QuickCommandFrontendContribution } from './quick-input/quick-command-frontend-contribution';
import { QuickHelpFrontendContribution } from './quick-input/quick-help-frontend-contribution';

export { bindResourceProvider, bindMessageService, bindPreferenceService };

Expand Down Expand Up @@ -195,7 +193,6 @@ export const frontendApplicationModule = new ContainerModule((bind, unbind, isBo
});
bind(CommandService).toService(CommandRegistry);
bindContributionProvider(bind, CommandContribution);
bind(QuickOpenContribution).to(CommandQuickOpenContribution);

bind(ContextKeyService).toSelf().inSingletonScope();

Expand Down Expand Up @@ -224,28 +221,29 @@ export const frontendApplicationModule = new ContainerModule((bind, unbind, isBo
bind(serviceIdentifier).toService(CommonFrontendContribution)
);

bind(QuickOpenService).toSelf().inSingletonScope();
// bind(QuickTitleBar).toSelf().inSingletonScope();

bind(QuickInputService).toSelf().inSingletonScope();
bind(QuickTitleBar).toSelf().inSingletonScope();
bind(QuickCommandService).toSelf().inSingletonScope();
bind(QuickHelpService).toSelf().inSingletonScope();
bind(QuickEditorService).toSelf().inSingletonScope();

bind(QuickCommandFrontendContribution).toSelf().inSingletonScope();
[CommandContribution, KeybindingContribution, MenuContribution].forEach(serviceIdentifier =>
[CommandContribution, KeybindingContribution, MenuContribution, QuickInputContribution].forEach(serviceIdentifier =>
bind(serviceIdentifier).toService(QuickCommandFrontendContribution)
);

bind(QuickHelpFrontendContribution).toSelf().inSingletonScope();
bind(QuickInputContribution).toService(QuickHelpFrontendContribution);

bind(QuickPickService).to(QuickPickServiceImpl).inSingletonScope().onActivation(({ container }, quickPickService: QuickPickService) => {
WebSocketConnectionProvider.createProxy(container, quickPickServicePath, quickPickService);
return quickPickService;
});

bind(PrefixQuickOpenService).toSelf().inSingletonScope();
bindContributionProvider(bind, QuickOpenContribution);
bind(QuickOpenHandlerRegistry).toSelf().inSingletonScope();
bind(QuickOpenFrontendContribution).toSelf().inSingletonScope();
bind(FrontendApplicationContribution).toService(QuickOpenFrontendContribution);

bind(HelpQuickOpenHandler).toSelf().inSingletonScope();
bind(QuickOpenContribution).toService(HelpQuickOpenHandler);
bindContributionProvider(bind, QuickInputContribution);
bind(QuickInputFrontendContribution).toSelf().inSingletonScope();
bind(FrontendApplicationContribution).toService(QuickInputFrontendContribution);

bind(LocalStorageService).toSelf().inSingletonScope();
bind(StorageService).toService(LocalStorageService);
Expand Down Expand Up @@ -318,7 +316,7 @@ export const frontendApplicationModule = new ContainerModule((bind, unbind, isBo
});

bind(QuickViewService).toSelf().inSingletonScope();
bind(QuickOpenContribution).toService(QuickViewService);
bind(QuickInputContribution).toService(QuickViewService);

bind(DialogOverlayService).toSelf().inSingletonScope();
bind(FrontendApplicationContribution).toService(DialogOverlayService);
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/browser/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export * from './tree';
export * from './messaging';
export * from './endpoint';
export * from './common-frontend-contribution';
export * from './quick-open';
export * from './quick-input';
export * from './widget-manager';
export * from './saveable';
export * from './storage-service';
Expand Down
Loading

0 comments on commit 2692400

Please sign in to comment.