Comments 13
Важно упомянуть, что для поддержки 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» работает Михаил Архипов, он консультировал нас.
«IntelliSense — подсказки и автокомплит» выглядит очень интересно.
Да, вес Монако действительно большой, но с крашами ни разу не встречались. Было в одном месте, что либо ts кидал ошибку при компиляции, либо она возникала в рантайме, потому что неверно были написаны типы для Monarch (этот модуль изначально был на is и типы к нему писались после). Но порадовало то, что, в отличие от того же CodeMirror, быстро реагировали на тикеты на гитхабе. И разок я им кидала пул-реквест и запускалась куча тестов, так что они там есть и большом количестве. Но не берусь сказать, как было раньше, наверное, вы интегрировали его по крайней мере около года назад?
Пробовал использовать VSCode для go. В итоге ставишь миллион плагинов, чтоб продуктивно работать либо зубришь команды.
Перешёл goland, в котором одно блаженство программировать.
Зачем отказываться от благ? Так и до vim скатиться можно.
- онлайн обучение программированию, при этом тебе не нужно ничего устанавливать на свой компьютер, потом запаковывать и отправлять на проверку — уже всё есть на сервере
- беглый просмотр кода, например в админке сайта быстро проверить какую-то штуку. как на гитхабе, тебе не обязательно скачивать проект, достаточно найти нужный файл и открыть его с подсветкой синтаксиса прямо в браузере.
- лёгкий редактор/просмотр кода для того чтобы в админке подправить/посмотреть json-конфиг или lua-сценарий
Возможны также другие кейсы, где это пригодиться. Собственно все эти тысячи звёзд на гитхабе и говорят, что кейсов хватает.
Здесь речь именно об IDE, которую можно запустить в браузере. IntelliJ, к сожалению, пока туда не затащить.
CodeMirror используется в инструментах разработчика Chrome
Теперь понятно почему они еле ворочаются в больших файлах
Тоже применил Monaco. Но сходу выхватил три проблемы (обертка vue-monaco):
- Если через реактивное свойство меняешь код, слетают все кастомные стили, которые ты наложил на строки. Использую для отображения исполняемой строки в режиме дебага. Приходится пересоздавать компонент.
- Есть занятный функцилнал с маркерами. Так и не смог его задействовать. Ну не работают и все тут...
- Ресайз нужно костылировать. Не понял почему… но вот так.
IDE нормального человека или почему мы выбрали Monaco