Skip to content

Commit

Permalink
upgrading to Monaco 0.17.0
Browse files Browse the repository at this point in the history
Signed-off-by: Anton Kosyakov <[email protected]>
  • Loading branch information
akosyakov committed Aug 13, 2019
1 parent 0751947 commit 1e1e82b
Show file tree
Hide file tree
Showing 40 changed files with 265 additions and 298 deletions.
6 changes: 3 additions & 3 deletions packages/console/src/browser/console-keybinding-contexts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ export class ConsoleNavigationBackEnabled extends ConsoleInputFocusContext {
return false;
}
const editor = console.input.getControl();
return editor.getPosition().equals({ lineNumber: 1, column: 1 });
return editor.getPosition()!.equals({ lineNumber: 1, column: 1 });
}

}
Expand All @@ -98,10 +98,10 @@ export class ConsoleNavigationForwardEnabled extends ConsoleInputFocusContext {
return false;
}
const editor = console.input.getControl();
const model = console.input.getControl().getModel();
const model = console.input.getControl().getModel()!;
const lineNumber = model.getLineCount();
const column = model.getLineMaxColumn(lineNumber);
return editor.getPosition().equals({ lineNumber, column });
return editor.getPosition()!.equals({ lineNumber, column });
}

}
4 changes: 2 additions & 2 deletions packages/console/src/browser/console-widget.ts
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,8 @@ export class ConsoleWidget extends BaseWidget implements StatefulWidget {
const value = this.history.next || '';
const editor = this.input.getControl();
editor.setValue(value);
const lineNumber = editor.getModel().getLineCount();
const column = editor.getModel().getLineMaxColumn(lineNumber);
const lineNumber = editor.getModel()!.getLineCount();
const column = editor.getModel()!.getLineMaxColumn(lineNumber);
editor.setPosition({ lineNumber, column });
}

Expand Down
6 changes: 3 additions & 3 deletions packages/debug/src/browser/debug-configuration-manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ export class DebugConfigurationManager {
},
onArrayBegin: offset => {
if (lastProperty === 'configurations' && depthInArray === 0) {
position = editor.getModel().getPositionAt(offset + 1);
position = editor.getModel()!.getPositionAt(offset + 1);
}
depthInArray++;
},
Expand All @@ -220,12 +220,12 @@ export class DebugConfigurationManager {
return;
}
// Check if there are more characters on a line after a "configurations": [, if yes enter a newline
if (editor.getModel().getLineLastNonWhitespaceColumn(position.lineNumber) > position.column) {
if (editor.getModel()!.getLineLastNonWhitespaceColumn(position.lineNumber) > position.column) {
editor.setPosition(position);
editor.trigger('debug', 'lineBreakInsert', undefined);
}
// Check if there is already an empty line to insert suggest, if yes just place the cursor
if (editor.getModel().getLineLastNonWhitespaceColumn(position.lineNumber + 1) === 0) {
if (editor.getModel()!.getLineLastNonWhitespaceColumn(position.lineNumber + 1) === 0) {
editor.setPosition({ lineNumber: position.lineNumber + 1, column: 1 << 30 });
await commandService.executeCommand('editor.action.deleteLines');
}
Expand Down
30 changes: 21 additions & 9 deletions packages/debug/src/browser/editor/debug-breakpoint-widget.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -89,19 +89,30 @@ export class DebugBreakpointWidget implements Disposable {
return;
}
this.toDispose.push(input);
this.toDispose.push(monaco.modes.SuggestRegistry.register({ scheme: input.uri.scheme }, {
this.toDispose.push(monaco.modes.CompletionProviderRegistry.register({ scheme: input.uri.scheme }, {
provideCompletionItems: async (model, position, context, token) => {
const suggestions = [];
if ((this.context === 'condition' || this.context === 'logMessage')
&& input.uri.toString() === model.uri.toString()) {
const editor = this.editor.getControl();
const items = await monaco.suggest.provideSuggestionItems(
editor.getModel(),
new monaco.Position(editor.getPosition().lineNumber, 1),
'none', undefined, context, token);
editor.getModel()!,
new monaco.Position(editor.getPosition()!.lineNumber, 1),
new monaco.suggest.CompletionOptions(undefined, new Set<monaco.languages.CompletionItemKind>().add(monaco.languages.CompletionItemKind.Snippet)),
context, token);
let overwriteBefore = 0;
if (this.context === 'condition') {
overwriteBefore = position.column - 1;
} else {
// Inside the currly brackets, need to count how many useful characters are behind the position so they would all be taken into account
const value = editor.getModel()!.getValue();
while ((position.column - 2 - overwriteBefore >= 0)
&& value[position.column - 2 - overwriteBefore] !== '{' && value[position.column - 2 - overwriteBefore] !== ' ') {
overwriteBefore++;
}
}
for (const { suggestion } of items) {
suggestion.overwriteAfter = 0;
suggestion.overwriteBefore = position.column - 1;
suggestion.range = monaco.Range.fromPositions(position.delta(0, -overwriteBefore), position);
suggestions.push(suggestion);
}
}
Expand All @@ -110,7 +121,7 @@ export class DebugBreakpointWidget implements Disposable {
}));
this.toDispose.push(this.zone.onDidLayoutChange(dimension => this.layout(dimension)));
this.toDispose.push(input.getControl().onDidChangeModelContent(() => {
const heightInLines = input.getControl().getModel().getLineCount() + 1;
const heightInLines = input.getControl().getModel()!.getLineCount() + 1;
this.zone.layout(heightInLines);
this.updatePlaceholder();
}));
Expand Down Expand Up @@ -152,9 +163,9 @@ export class DebugBreakpointWidget implements Disposable {
const afterLineNumber = breakpoint ? breakpoint.line : position!.lineNumber;
const afterColumn = breakpoint ? breakpoint.column : position!.column;
const editor = this._input.getControl();
const heightInLines = editor.getModel().getLineCount() + 1;
const heightInLines = editor.getModel()!.getLineCount() + 1;
this.zone.show({ afterLineNumber, afterColumn, heightInLines, frameWidth: 1 });
editor.setPosition(editor.getModel().getPositionAt(editor.getModel().getValueLength()));
editor.setPosition(editor.getModel()!.getPositionAt(editor.getModel()!.getValueLength()));
this._input.focus();
}

Expand Down Expand Up @@ -207,6 +218,7 @@ export class DebugBreakpointWidget implements Disposable {
}
const value = this._input.getControl().getValue();
const decorations: monaco.editor.IDecorationOptions[] = !!value ? [] : [{
color: undefined,
range: {
startLineNumber: 0,
endLineNumber: 0,
Expand Down
26 changes: 13 additions & 13 deletions packages/debug/src/browser/editor/debug-editor-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,15 +79,15 @@ export class DebugEditorModel implements Disposable {

@postConstruct()
protected init(): void {
this.uri = new URI(this.editor.getControl().getModel().uri.toString());
this.uri = new URI(this.editor.getControl().getModel()!.uri.toString());
this.toDispose.pushAll([
this.hover,
this.breakpointWidget,
this.editor.getControl().onMouseDown(event => this.handleMouseDown(event)),
this.editor.getControl().onMouseMove(event => this.handleMouseMove(event)),
this.editor.getControl().onMouseLeave(event => this.handleMouseLeave(event)),
this.editor.getControl().onKeyDown(() => this.hover.hide({ immediate: false })),
this.editor.getControl().getModel().onDidChangeDecorations(() => this.updateBreakpoints()),
this.editor.getControl().getModel()!.onDidChangeDecorations(() => this.updateBreakpoints()),
this.sessions.onDidChange(() => this.renderFrames())
]);
this.renderFrames();
Expand Down Expand Up @@ -176,7 +176,7 @@ export class DebugEditorModel implements Disposable {
protected updateBreakpointRanges(): void {
this.breakpointRanges.clear();
for (const decoration of this.breakpointDecorations) {
const range = this.editor.getControl().getModel().getDecorationRange(decoration);
const range = this.editor.getControl().getModel()!.getDecorationRange(decoration)!;
this.breakpointRanges.set(decoration, range);
}
}
Expand Down Expand Up @@ -214,7 +214,7 @@ export class DebugEditorModel implements Disposable {
return false;
}
for (const decoration of this.breakpointDecorations) {
const range = this.editor.getControl().getModel().getDecorationRange(decoration);
const range = this.editor.getControl().getModel()!.getDecorationRange(decoration);
const oldRange = this.breakpointRanges.get(decoration)!;
if (!range || !range.equalsRange(oldRange)) {
return true;
Expand All @@ -227,7 +227,7 @@ export class DebugEditorModel implements Disposable {
const lines = new Set<number>();
const breakpoints: SourceBreakpoint[] = [];
for (const decoration of this.breakpointDecorations) {
const range = this.editor.getControl().getModel().getDecorationRange(decoration);
const range = this.editor.getControl().getModel()!.getDecorationRange(decoration);
if (range && !lines.has(range.startLineNumber)) {
const line = range.startLineNumber;
const oldRange = this.breakpointRanges.get(decoration);
Expand All @@ -242,7 +242,7 @@ export class DebugEditorModel implements Disposable {

protected _position: monaco.Position | undefined;
get position(): monaco.Position {
return this._position || this.editor.getControl().getPosition();
return this._position || this.editor.getControl().getPosition()!;
}
get breakpoint(): DebugBreakpoint | undefined {
return this.getBreakpoint();
Expand Down Expand Up @@ -285,12 +285,12 @@ export class DebugEditorModel implements Disposable {
protected handleMouseDown(event: monaco.editor.IEditorMouseEvent): void {
if (event.target && event.target.type === monaco.editor.MouseTargetType.GUTTER_GLYPH_MARGIN) {
if (event.event.rightButton) {
this._position = event.target.position;
this._position = event.target.position!;
this.contextMenu.render(DebugEditorModel.CONTEXT_MENU, event.event.browserEvent, () =>
setTimeout(() => this._position = undefined)
);
} else {
this.doToggleBreakpoint(event.target.position);
this.doToggleBreakpoint(event.target.position!);
}
}
this.hintBreakpoint(event);
Expand All @@ -299,7 +299,7 @@ export class DebugEditorModel implements Disposable {
this.showHover(event);
this.hintBreakpoint(event);
}
protected handleMouseLeave(event: monaco.editor.IEditorMouseEvent): void {
protected handleMouseLeave(event: monaco.editor.IPartialEditorMouseEvent): void {
this.hideHover(event);
this.deltaHintDecorations([]);
}
Expand All @@ -313,7 +313,7 @@ export class DebugEditorModel implements Disposable {
this.hintDecorations = this.deltaDecorations(this.hintDecorations, hintDecorations);
}
protected createHintDecorations(event: monaco.editor.IEditorMouseEvent): monaco.editor.IModelDeltaDecoration[] {
if (event.target && event.target.type === monaco.editor.MouseTargetType.GUTTER_GLYPH_MARGIN) {
if (event.target && event.target.type === monaco.editor.MouseTargetType.GUTTER_GLYPH_MARGIN && event.target.position) {
const lineNumber = event.target.position.lineNumber;
if (!!this.sessions.getBreakpoint(this.uri, lineNumber)) {
return [];
Expand All @@ -337,14 +337,14 @@ export class DebugEditorModel implements Disposable {
}
if (targetType === monaco.editor.MouseTargetType.CONTENT_TEXT) {
this.hover.show({
selection: mouseEvent.target.range,
selection: mouseEvent.target.range!,
immediate: false
});
} else {
this.hover.hide({ immediate: false });
}
}
protected hideHover({ event }: monaco.editor.IEditorMouseEvent): void {
protected hideHover({ event }: monaco.editor.IPartialEditorMouseEvent): void {
const rect = this.hover.getDomNode().getBoundingClientRect();
if (event.posx < rect.left || event.posx > rect.right || event.posy < rect.top || event.posy > rect.bottom) {
this.hover.hide({ immediate: false });
Expand All @@ -354,7 +354,7 @@ export class DebugEditorModel implements Disposable {
protected deltaDecorations(oldDecorations: string[], newDecorations: monaco.editor.IModelDeltaDecoration[]): string[] {
this.updatingDecorations = true;
try {
return this.editor.getControl().getModel().deltaDecorations(oldDecorations, newDecorations);
return this.editor.getControl().getModel()!.deltaDecorations(oldDecorations, newDecorations);
} finally {
this.updatingDecorations = false;
}
Expand Down
8 changes: 4 additions & 4 deletions packages/debug/src/browser/editor/debug-editor-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ export class DebugEditorService {
if (!(editor instanceof MonacoEditor)) {
return;
}
const uri = editor.getControl().getModel().uri.toString();
const uri = editor.getControl().getModel()!.uri.toString();
const debugModel = this.factory(editor);
this.models.set(uri, debugModel);
editor.getControl().onDidDispose(() => {
Expand Down Expand Up @@ -122,15 +122,15 @@ export class DebugEditorService {
showHover(): void {
const { model } = this;
if (model) {
const selection = model.editor.getControl().getSelection();
const selection = model.editor.getControl().getSelection()!;
model.hover.show({ selection, focus: true });
}
}
canShowHover(): boolean {
const { model } = this;
if (model) {
const selection = model.editor.getControl().getSelection();
return !!model.editor.getControl().getModel().getWordAtPosition(selection.getStartPosition());
const selection = model.editor.getControl().getSelection()!;
return !!model.editor.getControl().getModel()!.getWordAtPosition(selection.getStartPosition());
}
return false;
}
Expand Down
6 changes: 3 additions & 3 deletions packages/debug/src/browser/editor/debug-hover-widget.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ export class DebugHoverWidget extends SourceTreeWidget implements monaco.editor.
}
super.show();
this.options = options;
const expression = this.expressionProvider.get(this.editor.getControl().getModel(), options.selection);
const expression = this.expressionProvider.get(this.editor.getControl().getModel()!, options.selection);
if (!expression) {
this.hide();
return;
Expand All @@ -181,15 +181,15 @@ export class DebugHoverWidget extends SourceTreeWidget implements monaco.editor.
protected isEditorFrame(): boolean {
const { currentFrame } = this.sessions;
return !!currentFrame && !!currentFrame.source &&
this.editor.getControl().getModel().uri.toString() === currentFrame.source.uri.toString();
this.editor.getControl().getModel()!.uri.toString() === currentFrame.source.uri.toString();
}

getPosition(): monaco.editor.IContentWidgetPosition {
if (!this.isVisible) {
return undefined!;
}
const position = this.options && this.options.selection.getStartPosition();
const word = position && this.editor.getControl().getModel().getWordAtPosition(position);
const word = position && this.editor.getControl().getModel()!.getWordAtPosition(position);
return position && word ? {
position: new monaco.Position(position.lineNumber, word.startColumn),
preference: [
Expand Down
2 changes: 1 addition & 1 deletion packages/editor/src/browser/editor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ export interface MouseTarget {
/**
* The target element
*/
readonly element: Element;
readonly element?: Element;
/**
* The target type
*/
Expand Down
2 changes: 1 addition & 1 deletion packages/languages/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"@theia/output": "^0.9.0",
"@theia/process": "^0.9.0",
"@theia/workspace": "^0.9.0",
"@typefox/monaco-editor-core": "^0.14.6",
"@typefox/monaco-editor-core": "next",
"@types/uuid": "^3.4.3",
"monaco-languageclient": "next",
"uuid": "^3.2.1"
Expand Down
2 changes: 1 addition & 1 deletion packages/monaco/src/browser/monaco-bulk-edit-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export class MonacoBulkEditService implements monaco.editor.IBulkEditService {
@inject(MonacoWorkspace)
protected readonly workspace: MonacoWorkspace;

apply(edit: monaco.languages.WorkspaceEdit): monaco.Promise<monaco.editor.IBulkEditResult> {
apply(edit: monaco.languages.WorkspaceEdit): Promise<monaco.editor.IBulkEditResult> {
return this.workspace.applyBulkEdit(edit);
}

Expand Down
12 changes: 4 additions & 8 deletions packages/monaco/src/browser/monaco-command-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,20 +51,16 @@ export class MonacoCommandService implements ICommandService {
}

// tslint:disable-next-line:no-any
executeCommand(commandId: any, ...args: any[]): monaco.Promise<any> {
async executeCommand(commandId: any, ...args: any[]): Promise<any> {
const handler = this.commandRegistry.getActiveHandler(commandId, ...args);
if (handler) {
try {
this._onWillExecuteCommand.fire({ commandId });
return monaco.Promise.wrap(handler.execute(...args));
} catch (err) {
return monaco.Promise.wrapError(err);
}
this._onWillExecuteCommand.fire({ commandId });
return handler.execute(...args);
}
if (this.delegate) {
return this.delegate.executeCommand(commandId, ...args);
}
return monaco.Promise.wrapError(new Error(`command '${commandId}' not found`));
throw new Error(`command '${commandId}' not found`);
}

}
3 changes: 1 addition & 2 deletions packages/monaco/src/browser/monaco-command.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import { EditorCommands } from '@theia/editor/lib/browser';
import { MonacoEditor } from './monaco-editor';
import { MonacoCommandRegistry, MonacoEditorCommandHandler } from './monaco-command-registry';
import MenuRegistry = monaco.actions.MenuRegistry;
import MenuId = monaco.actions.MenuId;

export type MonacoCommand = Command & { delegate?: string };
export namespace MonacoCommands {
Expand Down Expand Up @@ -72,7 +71,7 @@ export namespace MonacoCommands {
'find.history.showPrevious',
]);
const iconClasses = new Map<string, string>();
for (const menuItem of MenuRegistry.getMenuItems(MenuId.EditorContext)) {
for (const menuItem of MenuRegistry.getMenuItems(7)) {
if (menuItem.command.iconClass) {
iconClasses.set(menuItem.command.id, menuItem.command.iconClass);
}
Expand Down
5 changes: 3 additions & 2 deletions packages/monaco/src/browser/monaco-editor-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,8 +181,9 @@ export class MonacoEditorModel implements ITextEditorModel, TextEditorDocument {
return this.model;
}

load(): monaco.Promise<MonacoEditorModel> {
return monaco.Promise.wrap(this.resolveModel).then(() => this);
async load(): Promise<MonacoEditorModel> {
await this.resolveModel;
return this;
}

save(): Promise<void> {
Expand Down
2 changes: 1 addition & 1 deletion packages/monaco/src/browser/monaco-editor-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ export class MonacoEditorProvider {
referencesController._editorService.openCodeEditor({
resource: ref.uri,
options: { selection: range }
}, control).done(openedEditor => {
}, control).then(openedEditor => {
referencesController._ignoreModelChangeEvent = false;
if (!openedEditor) {
referencesController.closeWidget();
Expand Down
Loading

0 comments on commit 1e1e82b

Please sign in to comment.