Comments 13
Тоже используем Monaco как редактор кода.
Важно упомянуть, что для поддержки IntelliSense и Autocomplete в языках, для которых невозможен движок на клиентской стороне (Python, C#), нужен доп. LanguageServer.

Ага, спасибо, за дополнение. Мы делали IDE для js-скриптов, с другими пока поработать на довелось, поэтому не упомянула. Но, как я понимаю, его можно написать на чем угодно и общать с Монако через веб-сокет по Server Language Protocol?

его можно написать на чем угодно и общать с Монако через веб-сокет по Server Language Protocol?

Да, все верно — можно подключить Monaco Editor через LSP к LanguageServer, скормить серверу свой solution и получать с сервера IntelliSense и Autocomplete.
Подробности по поддержке языков можно найти здесь: langserver.org
Для C# мы использовали OmniSharp, для Python «python-language-server» от Microsoft.
В Microsoft с «python-language-server» работает Михаил Архипов, он консультировал нас.
Спасибо за статью, не знал, что Monaco — это редактор из vscode.
«IntelliSense — подсказки и автокомплит» выглядит очень интересно.
У меня был прямо противоположный опыт. Начал с CodeMirror, но, к сожалению, не удовлетворил Intellisense. Перешёл на Монако. Очень геморройно было интегрировать. Постоянно вылазили дикие краши внутри движка. В одном случае полез в сорс и нашёл вызов функции с параметрами, которые заведомо приводят к возврату null, при этом вызывающая функция без проверок пытается обратится к полям возвращаемого значения, что и приводило к крашу. Тесты, похоже, там и не валялись. Кроме этого пришлось импортировать скомпилированный движок через HTML и он весил около мега, а когда импортировал его в JS он вдруг наподключал аж 3 мега. Может я его неправильно готовил, но я шёл по документации и примерам.

Да, вес Монако действительно большой, но с крашами ни разу не встречались. Было в одном месте, что либо ts кидал ошибку при компиляции, либо она возникала в рантайме, потому что неверно были написаны типы для Monarch (этот модуль изначально был на is и типы к нему писались после). Но порадовало то, что, в отличие от того же CodeMirror, быстро реагировали на тикеты на гитхабе. И разок я им кидала пул-реквест и запускалась куча тестов, так что они там есть и большом количестве. Но не берусь сказать, как было раньше, наверное, вы интегрировали его по крайней мере около года назад?

Мне почему то казалось, что нормальные люди предпочитают Intelij… А оказывается вон оно как на самом деле…
Соглашусь. Большую IDE установил и работаешь.
Пробовал использовать VSCode для go. В итоге ставишь миллион плагинов, чтоб продуктивно работать либо зубришь команды.
Перешёл goland, в котором одно блаженство программировать.
Зачем отказываться от благ? Так и до vim скатиться можно.
На мой взгляд у webide своя ниша:
  • онлайн обучение программированию, при этом тебе не нужно ничего устанавливать на свой компьютер, потом запаковывать и отправлять на проверку — уже всё есть на сервере
  • беглый просмотр кода, например в админке сайта быстро проверить какую-то штуку. как на гитхабе, тебе не обязательно скачивать проект, достаточно найти нужный файл и открыть его с подсветкой синтаксиса прямо в браузере.
  • лёгкий редактор/просмотр кода для того чтобы в админке подправить/посмотреть json-конфиг или lua-сценарий

Возможны также другие кейсы, где это пригодиться. Собственно все эти тысячи звёзд на гитхабе и говорят, что кейсов хватает.

Здесь речь именно об IDE, которую можно запустить в браузере. IntelliJ, к сожалению, пока туда не затащить.

CodeMirror используется в инструментах разработчика Chrome

Теперь понятно почему они еле ворочаются в больших файлах

Тоже применил Monaco. Но сходу выхватил три проблемы (обертка vue-monaco):


  1. Если через реактивное свойство меняешь код, слетают все кастомные стили, которые ты наложил на строки. Использую для отображения исполняемой строки в режиме дебага. Приходится пересоздавать компонент.
  2. Есть занятный функцилнал с маркерами. Так и не смог его задействовать. Ну не работают и все тут...
  3. Ресайз нужно костылировать. Не понял почему… но вот так.
Only those users with full accounts are able to leave comments. Log in, please.

Information

Founded
Location
Россия
Website
www.voximplant.com
Employees
101–200 employees
Registered