Skip to content

Commit

Permalink
[monaco] fix #4058: fixed cross editor navigation
Browse files Browse the repository at this point in the history
Signed-off-by: Anton Kosyakov <anton.kosyakov@typefox.io>
  • Loading branch information
akosyakov committed Jan 15, 2019
1 parent 096f2a3 commit ff6b355
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 3 deletions.
9 changes: 8 additions & 1 deletion packages/monaco/src/browser/monaco-editor-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,14 @@ export class MonacoEditorProvider {
@inject(EditorPreferences) protected readonly editorPreferences: EditorPreferences,
@inject(MonacoQuickOpenService) protected readonly quickOpenService: MonacoQuickOpenService,
@inject(MonacoDiffNavigatorFactory) protected readonly diffNavigatorFactory: MonacoDiffNavigatorFactory
) { }
) {
const init = monaco.services.StaticServices.init.bind(monaco.services.StaticServices);
monaco.services.StaticServices.init = o => {
const result = init(o);
result[0].set(monaco.services.ICodeEditorService, codeEditorService);
return result;
};
}

protected async getModel(uri: URI, toDispose: DisposableCollection): Promise<MonacoEditorModel> {
const reference = await this.textModelService.createModelReference(uri);
Expand Down
5 changes: 3 additions & 2 deletions packages/monaco/src/browser/monaco-loader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,16 +67,17 @@ export function loadMonaco(vsRequire: any): Promise<void> {
'vs/editor/contrib/find/findController',
'vs/editor/contrib/rename/rename',
'vs/editor/contrib/snippet/snippetParser',
'vs/editor/browser/services/codeEditorService',
'vs/editor/browser/services/codeEditorServiceImpl'
], (css: any, html: any, commands: any, actions: any, registry: any, resolver: any, resolvedKeybinding: any,
keyCodes: any, editorExtensions: any, simpleServices: any, standaloneServices: any, quickOpen: any, quickOpenWidget: any, quickOpenModel: any,
filters: any, styler: any, platform: any, modes: any, suggest: any, suggestController: any, findController: any, rename: any, snippetParser: any,
codeEditorServiceImpl: any) => {
codeEditorService: any, codeEditorServiceImpl: any) => {
const global: any = self;
global.monaco.commands = commands;
global.monaco.actions = actions;
global.monaco.keybindings = Object.assign({}, registry, resolver, resolvedKeybinding, keyCodes);
global.monaco.services = Object.assign({}, simpleServices, standaloneServices, codeEditorServiceImpl);
global.monaco.services = Object.assign({}, simpleServices, standaloneServices, codeEditorService, codeEditorServiceImpl);
global.monaco.quickOpen = Object.assign({}, quickOpen, quickOpenWidget, quickOpenModel);
global.monaco.filters = filters;
global.monaco.theme = styler;
Expand Down
7 changes: 7 additions & 0 deletions packages/monaco/src/typings/monaco/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,8 @@ declare module monaco.keybindings {

declare module monaco.services {

export const ICodeEditorService: any;

export abstract class CodeEditorServiceImpl implements monaco.editor.ICodeEditorService {
constructor(themeService: IStandaloneThemeService);
abstract getActiveCodeEditor(): monaco.editor.ICodeEditor | undefined;
Expand Down Expand Up @@ -496,7 +498,12 @@ declare module monaco.services {

}

export interface ServiceCollection {
set<T>(id: any, instanceOrDescriptor: T): T;
}

export module StaticServices {
export function init(overrides: monaco.editor.IEditorOverrideServices): [ServiceCollection, monaco.instantiation.IInstantiationService];
export const standaloneThemeService: LazyStaticService<IStandaloneThemeService>;
export const modeService: LazyStaticService<IModeService>;
export const codeEditorService: LazyStaticService<monaco.editor.ICodeEditorService>;
Expand Down

0 comments on commit ff6b355

Please sign in to comment.