Запустите функциональность с Monaco Editor - PullRequest
0 голосов
/ 02 января 2019

Я хотел использовать редактор Monaco для своего проекта и хочу запускать серверные языки, такие как C # или узел, в моем редакторе Monaco (https://github.com/Microsoft/monaco-editor/), который является редактором с открытым исходным кодом от Microsoft.

Вот несколько примеров для этого.

https://microsoft.github.io/monaco-editor/playground.html#interacting-with-the-editor-rendering-glyphs-in-the-margin

https://dotnet.microsoft.com/languages

Если вы видите вышеприведенные примеры, вы можете увидеть, что они работают c # с кнопкой запускаЯ хотел реализовать ту же функциональность.

Я знаю, что мне нужно установить время выполнения для определенного языка, такого как C #, и у меня это есть на моей локальной машине, но я все еще не могу его запустить.

Любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 08 апреля 2019

То, что вы видите, не является функцией Монако и зависит от вас.То, как вы это сделаете, будет во многом зависеть от языка, на котором вы пытаетесь работать.

В первом примере (и jsFiddle, CodePen и многих других) просто отображается iframe, чтобы показать результат.iframe загружает файл с уникальным именем, который содержит код HTML, CSS и JavaScript, введенный в редакторе.Вы можете подтвердить, что это то, что они делают, используя Chrome Dev Tools.

Если вы собираетесь использовать такой язык, как C #, знайте, что вам потребуется полный контроль над вашим веб-сервером.Поток будет примерно таким:

  1. Пользователь нажимает кнопку «Выполнить».
  2. Вы вызываете веб-сервис (который вы должны разработать), передаваете ему код C # и все остальноенеобходимо для создания работающего проекта (например, зависимости).
  3. Веб-служба создает проект из этих входных данных, вызывает компилятор C #, запускает полученный исполняемый файл и, наконец, захватывает выходные данные (stdout и * 1015).*) в строковые переменные.Эти строки возвращаются веб-службой.
  4. Вернувшись в браузер, вы отображаете выходные данные веб-службы.

Это очень выполнимо, но при этом получается, что оно работает хорошо, когдаВаши объемы возьмут на себя особую проблему.

...