VladG24_YT 26 Опубликовано: 13 января, 2021 (изменено) У многих новичков возникает вопрос - где писать код для OpenComputers? Кто-то советует VS, кто-то сторонник IDEA, кому-то по душе Atom, а кто-то вообще пишет код сразу в игре. Я решил пополнить этот список вариантов собственным решением. Вашему вниманию представляется интегрированная среда разработки (ИСР) под OpenComputers - OCLIDE. Проект находится на стадии публичного альфа-тестирования, поэтому критика приветствуется. На данный момент в ИСР присутствуют: - Подсветка Lua-синтаксиса - Система проектов - Интеграция с OCEmu (OpenOS 1.7.5) - Поддержка Windows 10 и Ubuntu 20.04 В планах на будущее: - Автодополнение кода - Добавление эмулятора на базе Ocelot Brain - Адаптация кода для работы на Mac - Опции настройки цветовой палитры редактора и используемого стандарта Lua - Поддержка сторонних переводов приложения Ссылка на проект: https://github.com/Vladg24YT/Oclide/ (ветка master - стабильная, ветка oclide-rc1 - indev сборки) Прога весит ~25 Мб, потребляет 167 Мб ОЗУ. Скриншот: Скрытый текст Изменено 10 февраля, 2021 пользователем VladG24_YT Добавил инфу про ветви репозитория 9 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 158 Опубликовано: 13 января, 2021 2 минуты назад, VladG24_YT сказал: IDE заточенная специально под OpenComputers ... - (нестабильная) Интеграция с OCEmu (билд с OpenOS 1.6) А в чём заключается заточка под OpenComputers кроме нестабильной интеграции с эмулятором? И в чём заключается интеграция? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
VladG24_YT Автор темы 26 Опубликовано: 13 января, 2021 (изменено) @eu_tomat заточка под OpenComputers в данный момент заключается только в нестабильной интеграции с эмулятором. Под "интеграцией" я подразумевал созданный с нуля конфигуратор для машины OCEmu и запуск самого эмулятора из кода ИСР. Изменено 13 января, 2021 пользователем VladG24_YT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
vford 12 Опубликовано: 13 января, 2021 Интересная задумка. Надо будет попробовать. Вопрос вызывает старая версия OpenOS. Будет ли она обновляться? Слежу за темой. Кто где, а я в Notepad++! 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
VladG24_YT Автор темы 26 Опубликовано: 13 января, 2021 @vford в эмуляторе старая версия OpenOS вследствие того, что взят билд OCEmu датированный где-то 2016 годом. Обновление конечно же будет, но мне сначала надо научиться ладить с MSYS2 и Luarocks чтобы скомпилировать наиболее свежие исходники. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
vford 12 Опубликовано: 13 января, 2021 56 минут назад, VladG24_YT сказал: Обновление конечно же будет, но мне сначала надо научиться ладить с MSYS2 и Luarocks. Хорошо. Тогда, как говорится, "будем посмотреть". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Bs0Dd 206 Опубликовано: 13 января, 2021 Гм, задумка прикольная, но, имхо, не то чтоб прям уж нужная. Я вполне спокойно пользуюсь связкой gedit + MC 1.7.10 + OC 1.7.5 с отключенной буферизацией. А кстати, что за "проекты" такие, и как они работают? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
VladG24_YT Автор темы 26 Опубликовано: 14 января, 2021 (изменено) 9 часов назад, Bs0Dd сказал: А кстати, что за "проекты" такие, и как они работают? Чисто косметическая вещь, чтобы визуально разграничивать все файлы/скрипты на группы. В ИСР они отображаются через дерево файлов в левой части интерфейса. Принцип работы пока очень простой и банальный: При создании проекта создаётся директория Все файлы, созданные в рамках этого проекта, хранятся в ней Перед запуском OCEmu, директория проекта копируется на файловую систему машины в папку /home Изменено 14 января, 2021 пользователем VladG24_YT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Taruu 30 Опубликовано: 14 января, 2021 Очень полезным считаю автодополнение кода. Причем как и lua кода в папочках, так и прямое API к OC. Ибо сейчас юзаю tabnine в Atom (Vscode не влюбился мне) что бы он периодически подсказывал код и то в слепую) Идея годная, главное что-бы было логическое завершение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
vford 12 Опубликовано: 14 января, 2021 30 минут назад, Taruu сказал: Идея годная, главное что-бы было логическое завершение Согласен. Здесь был уже один парень, тоже писал IDE для OpenComputers (OpenComputers Studio) - и тишина. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
VladG24_YT Автор темы 26 Опубликовано: 14 января, 2021 (изменено) Новое обновление: PAT Pre-release v0.0.4 - Добавлен алгоритм предустановки OpenOS в файловую систему машины - Фикс обновления списка компонентов в конфигураторе - Фикс парсинга конфига OCEmu - Добавлена поддержка любых UUID файловой системы помимо той, что стоит по умолчанию (34eb7b28-14d3-4757-b326-dd1609b0a92e) - Ряд фиксов в коде редактора, конфигуратора и вспомогательных классов - Начата работа над автодополнением кода Lua стандарта 5.3 Ссылка: https://github.com/Vladg24YT/Oclide/releases/tag/v0.0.4 Скриншот обновлённого конфигуратора: Скрытый текст Изменено 15 января, 2021 пользователем VladG24_YT Поместил изображение под спойлер 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg 197 Опубликовано: 15 января, 2021 Архитектура IDE позволяет легко добавить поддержку других эмуляторов сред выполнения, например, Оцелота или самого майна. Последнее может быть особо полезно при разработке программ для железа из аддонов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
VladG24_YT Автор темы 26 Опубликовано: 15 января, 2021 (изменено) 1 час назад, hohserg сказал: добавить поддержку других эмуляторов сред выполнения, например, Оцелота Об этом думал, некоторые наработки даже оставил в коде. Благодаря совместимости Scala и Java, интегрирование Ocelot Brain довольно лёгкая задача, но перед её реализацией меня остановила нехватка собственных знаний для создания окна вывода (а-ля интерфейс экрана из OC), так как простой терминал ввода/вывода невозможно использовать для работы с растровой графикой. Создать двумерный массив из 8000 одинаковых компонентов и использовать каждый отдельный как пиксель конечно можно, но делать такое, тем более на Java - это всё равно что отправить оперативную память прямиком в ад, а писать собственный GUI-фреймворк для работы с классом Graphics из AWT ради одного простецкого окошка как-то нелогично. Тем не менее полностью от этой задумки я пока не отказываюсь. 1 час назад, hohserg сказал: или самого майна Да, это легко сделать, но моя первостепенная задача была создать именно standalone-среду. Так что, если поддержка майна и будет сделана, то не раньше релиза. Изменено 15 января, 2021 пользователем VladG24_YT 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 15 января, 2021 3 часа назад, VladG24_YT сказал: 8000 одинаковых компонентов и использовать каждый отдельный как пиксель конечно можно Зачем пиксели? для ОС можно использовать символьную графику. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
VladG24_YT Автор темы 26 Опубликовано: 15 января, 2021 (изменено) 16 минут назад, NEO сказал: Зачем пиксели? В данном случае под "пикселями" я имел в виду не обычные пиксели, а единицы измерения разрешения экрана OC. 16 минут назад, NEO сказал: для ОС можно использовать символьную графику Если речь идёт об отрисовке через ASCII, то я не совсем пониманию, как с помощью такой отрисовки возможно реализовать изменение цвета заднего фона индивидуального символа. Изменено 15 января, 2021 пользователем VladG24_YT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 15 января, 2021 4 минуты назад, VladG24_YT сказал: В данном случае под "пикселями" я имел в виду не обычные пиксели, а единицы измерения разрешения экрана OC. Если речь идёт об отрисовке через ASCII, то я не совсем пониманию, как с помощью такой графики возможно реализовать изменение цвета заднего фона индивидуального символа. Что думаешь про Canvas? Как я понял ты используешь Swing а в нём если не ошибаюсь был холст для рисования символами. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
VladG24_YT Автор темы 26 Опубликовано: 15 января, 2021 (изменено) 16 минут назад, NEO сказал: Что думаешь про Canvas? Если вы имеете ввиду java.awt.Canvas, то выглядит похоже на то, что нужно. Спасибо за наводку) 18 минут назад, NEO сказал: Swing а в нём если не ошибаюсь был холст для рисования символами. Изначально я изучал туториалы Oracle по отрисовке именно в Swing, где вся отрисовка ведётся через paint(java.awt.Graphics) и paintComponent(java.awt.Graphics), а обновлённая статья Oracle по отрисовке и в AWT и в Swing не упоминает Canvas совсем, поэтому мне придётся сначала поэкспериментировать с этим классом, прежде чем я смогу точно сказать, то ли это, чего мне не хватало. Изменено 15 января, 2021 пользователем VladG24_YT Дополнил инфу про Swing Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
VladG24_YT Автор темы 26 Опубликовано: 16 января, 2021 (изменено) Новое обновление: PAT Pre-release 0.0.5 - Добавлен алгоритм запуска OCEmu для Ubuntu и Arch Linux (требует предустановленного интерпретатора Lua 5.2 и библиотек luaffib, luafilesystem, luautf8 и SDL2) - Обновлены библиотеки - Фиксы запуска OCEmu - Фикс отображения неверной версии в заголовке основного окна IDE - Фикс невозможности создать проект на дистрибутивах Linux - Фикс критической ошибки при запуске OCEmu - Удалена библиотека LuaJ, код переделан на работу с репаком OC-LuaJ от MightyPirates через Ocelot Brain Скачать: https://github.com/Vladg24YT/Oclide/releases/tag/v0.0.5 Набросок окон автодополнения кода: Скрытый текст Изменено 26 января, 2021 пользователем VladG24_YT Дополнил список изменений 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Taruu 30 Опубликовано: 17 января, 2021 11 час назад, VladG24_YT сказал: - Добавлен алгоритм запуска OCEmu для Ubuntu и Arch Linux (требует предустановленного интерпретатора Lua 5.2 и библиотек luaffib, luafilesystem, luautf8 и SDL2) Там вроде и 5.3 работает. И на нем лучше и писать ибо там ось новой версии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
VladG24_YT Автор темы 26 Опубликовано: 17 января, 2021 2 часа назад, Taruu сказал: И на нем лучше и писать ибо там ось новой версии Приму к сведению. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах