1
Увлекательный мир Online IDE

В последние годы появилось довольно много online IDE, позволяющих создать свою среду разработки прямо в браузере.
Вот хорошая обзорная статья, с преимуществами и недостатками каждой системы: https://www.slant.co/topics/713/~best-cloud-ides

Идея заиметь такую среду и для дримленда мне очень понравилась. Для тех, кому лень возиться с исходниками на своей машине, поднимать виртуалку или настраивать docker — это неплохой способ быстро ознакомиться с проектом. Перебрав несколько IDE разной степени бесплатности, я остановилась на Goorm IDE. Главные преимущества, на мой взгляд:

* Редактор и IDE для C++ не лучше/не хуже чем у остальных. Полноценного online IDE для C++ с автоподсказками и рефакторингом мы вряд ли дождемся — никому это особо не надо.
* В бесплатном режиме предоставляется 1 контейнер с гигом оперативки: фактически свой мини-сервер с рутовым доступом, как из консоли браузера, так и по ssh.
* Контейнер ставится на паузу после двух часов бездействия (а не десяти минут, как в некоторых других системах).
* Хорошая интеграция с Github.
* Локальные порты (например, 9000) можно сделать доступными снаружи с помощью port forwarding, получив полноценный, доступный отовсюду муд-сервер.
* Одновременно могут работать 5 разработчиков и 3 наблюдателя, видя изменения друг друга в реальном времени.



Самым главным препятствием была, конечно же, KOI8-R кодировка у исходников. Отображались файлы верно, но любая попытка редактирования сохраняла их в UTF-8. Поэтому первым шагом был перевод исходников в UTF-8. Вместо тернистого пути перевода всей внутренней работы на новую кодировку, был выбран обходной путь: исходники хранятся в UTF-8, но компилятору задается специальный флаг, который компилирует их так, будто бы они в KOI8-R.
Опции для GCC: -finput-charset=UTF-8 -fexec-charset=KOI8-R. Для компилятора Visual C есть похожие флаги.

В остальном все оказалось довольно прямолинейно. С полной инструкцией можно ознакомиться на вики проекта: github.com/dreamland-mud/dreamland_code/wiki/Goorm-IDE

2 комментария

avatar
Вместо тернистого пути перевода всей внутренней работы на новую кодировку, был выбран обходной путь

А в чем сложность просто перекодировать все в новую кодировку? Какие трудности возникают?
avatar
  • Ruffina
  • 0
Если это смена с koi8-r на другую одно-байтовую кодировку, например, cp1251 — то почти никаких трудностей, меняешь одну таблицу на другую. Но символы в utf8 могут занимать от одного до нескольких байтов, поэтому сломается весь вывод, отформатированный по ширине, а так же в теории — могут сломаться многие ф-ии работы со строками. Конкретней не могу описать, надо экспериментировать.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.