Monaco Editor: настройка библиотек редактором - PullRequest
0 голосов
/ 21 декабря 2018

Я создаю страницу, которая содержит несколько редакторов Монако.В настоящее время я управляю библиотеками, которые хочу использовать, с помощью:

monaco.languages.typescript.javascriptDefaults.addExtraLib(`

        interface Product {
          foo: String;
        }

        declare const product: Product;

`, 'global.d.ts')

При использовании этого все редакторы вынуждены иметь в точности одинаковые библиотеки.

Возможно ли этоконтролировать это поведение экземпляром редактора, а не глобально?

1 Ответ

0 голосов
/ 03 января 2019

Короче говоря: нет.

Проблема в том, что IStandaloneCodeEditor, который вы создаете, вызывая monaco.editor.create (), не имеет ни малейшего представления о monaco.languages, которые в настоящее время доступны и зарегистрированы.

Синтаксический анализ выполняется monaco.worker с, которые - для Java- и TypeScript - настраиваются через monaco.languages.typescript и являются статическими, а не специфичными для экземпляра, так что один работник обслуживает много экземпляров.

Я считаю, что это проектное решение было принято в пользу эффективности и производительности - может WebWorker сво многих случаях с (возможно) многими различными библиотеками не очень эффективны.

Также обратите внимание, что это не единственная вещь, которая не конфигурируется в отношении экземпляра: все, что настраивается с помощью любого определения языка monaco.languages,global.

Я не знаю, как именно это реализовано, но если вы хотите понять, что происходит, реализация Type- и JavaScript находится на GitHub (а также * 1030).* MoОснова naco ).

Хотя это может (вероятно) несколько повысить производительность, это то, что может подойти для обсуждения в выпуске GitHub .В конце концов, если это будет отклонено, у вас может сложиться впечатление о реализации Монако участниками.

...