ECS 1 904 Опубликовано: 19 марта, 2017 (изменено) Команда для установки: pastebin run z7S75BBP Чтобы запустить программу после того, как инсталлер загрузит все необходимые компоненты, используйте /MineCode/MineCode.lua или /MineCode/MineCode.lua open <путь к файлу> О программе: Честно говоря, первый раз увидев дефолтный редактор опенкомпов, у меня задергался левый глаз. Поэтому, недолго думая, мы с товарищами решили написать полноценную среду разработки, заточенную под удобство использования и максимальное быстродействие. Итак, первое и самое главное на мой взгляд - это подсветка Lua-синтаксиса. Теперь кодер может хотя бы визуально отличать одну часть кода от другой без напряжения зрения. Все цвета являются настраиваемыми, их можно изменять под локальный "вкус и цвет" пользователя. Имеется возможность отключения подсветки при помощи кнопки "◌" если вы играете на низкопроизводительном сервере. Второе в моем субъективном списке "полезности" - это запуск приложений в реальном времени, не отрываясь от процесса их написания. Просто нажимаете на кнопку "▷" и получаете результат: Третья полезность среды разработки - это автоматическое дополнение вводимой информации по аналогии с технологией IntelliSense. Кроме того, все вводимые скобки и кавычки будут также автоматически дополняться их "закрывающими" эквивалентами, с удалением это также работает. Для экономии памяти и увеличения производительности обе фичи можно отключить: При возникновении любой ошибки в вашем приложении MineCode IDE автоматически вернет вас к разработке, выдав подробный стек ошибки и подсветив ошибочную строку: Четвертая наиболее полезная функция - это отладчик. Он позволяет вам выставлять так называемые "брейкпоинты" путем нажатия на кнопку "*" и узнавать, какое значение принимает та или иная переменная в исполняемом скрипте. После каждого "брейкпоинта" выполнение программы может быть продолжено или приостановлено: Пятая фича программы - это возможность полноценного выделения и копипастинга, которого так не хватает в стандартном редакторе OpenOS: Выделенные участки кода можно комментировать, табулировать и детабулировать - все как во "взрослых" редакторах кода. Чтобы выделить слово, достаточно кликнуть по нему дважды. Также имеется удобный инструмент для работы с вводимым цветом в шестнадцатеричном формате. Выделяете его - выбираете соответствующую опцию контекстного меню и получаете результат: Разумеется, мы также реализовали виджет поиска по коду с возможностью переключения чувствительности к регистру: Среди прочих функций стоит отметить удобное древо навигации по файловой системе, возможность загрузки файла из интернета, возможность смены цвета и стиля курсора, возможность отключения всех панелей инструментов, возможность быстрой навигации по различным критериям, возможности изменения разрешения экрана, наличие всевозможных клавиатурных шорткатов и ссылок на них в соответствующих пунктах меню. Также отдельно хотелось бы отметить всех людей, так или иначе принимавших участие в разработке и отладке программы: Вся программа целиком и полностью работает на интерфейсной библиотеке GUI и библиотеке тройной буферизации. Исходный код доступен на GitHub: Библиотека DoubleBuffering Библиотека GUI Библиотека Windows MineCode IDE Напоследок скажу, что, разумеется, куда удобнее и практичнее редактировать большие файлы напрямую в предпочтительном для вас редакторе кода, однако при отсутствии возможности прямой заливки файлов на сервер и для экономии времени MineCode IDE становится незаменимым инструментом для разработки простого ПО. Изменено 23 марта, 2017 пользователем ECS 14 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 19 марта, 2017 Шедевр. 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 19 марта, 2017 Шедевр. ага) не то слово. В видосе не покидает ощущение, что сейчас вот-вот да будет какая-то фича, которой даже в саблайме нет 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 19 марта, 2017 Не знаю почему, но мне не удалось установить MineCode. И после устранения очепятки в 65-ой строке инсталлера... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 723 Опубликовано: 19 марта, 2017 Не знаю почему, но мне не удалось установить MineCode. MineCode1.png И после устранения очепятки в 65-ой строке инсталлера... MineCode2.png Видимо ты забыл поставить галочку под строкой предлагающей вступить в рабство (пожалуйста не баньте) 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 904 Опубликовано: 19 марта, 2017 Не знаю почему, но мне не удалось установить MineCode. MineCode1.png И после устранения очепятки в 65-ой строке инсталлера... MineCode2.png Занятно. Саму синтаксическую опечатку исправил, однако причина неверной URL мне не ясна. Только что без каких-либо проблем поставил программку на абсолютно чистую опенось: Как вариант - на эмуляторе ОС иным образом работает интернет-компонент, иных причин не вижу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 19 марта, 2017 (изменено) Я уже встречал проблему, проблема в эмуляторе, интернет карта почему - то не поддерживает https протокол. Сейчас изучаю проблему. Изменено 19 марта, 2017 пользователем NEO 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 19 марта, 2017 (изменено) luasocket luassl потому что ставить надо. P. S. на Lua 5.3, кстати, эта штука не работает. Изменено 19 марта, 2017 пользователем Fingercomp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 19 марта, 2017 Оффтоп. Нашёл самое просто решение, качайте последний билд эмулятора, он рабочий. http://gamax92.pc-logix.com/ocemu/OCEmu-x64.zip 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 904 Опубликовано: 19 марта, 2017 P. S. на Lua 5.3, кстати, эта штука не работает. И не будет. Суть в том, что для создания прозрачности у меня используется функция блендинга цветовых каналов, впоследствии "упаковывающая" результирующие каналы в один цвет вида 0xRRGGBB. К сожалению, в Lua 5.3 бинарные операции работают исключительно с целыми числами, в то время как библиотека bit32 в Lua 5.2 поддерживает дробные. Пришлось делать выбор между увеличенной втрое скоростью отрисовки или вставкой округляющих операций с возможностью использования Lua 5.3. Я выбрал первое, не жалею. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
jammer312 45 Опубликовано: 19 марта, 2017 (изменено) У меня не получилось установить оное ингейм, валится на подгрузке иконки. Пока в код не лез, но вот скрин проблемы: P.s. До меня внезапно дошло, что может не хватать места. Ща вставлю второй хард и попробую снова. [uPD] Да, именно так, теперь вроде нормально поставилось. Изменено 19 марта, 2017 пользователем jammer312 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Гость Kartze Опубликовано: 20 марта, 2017 @@ECS, пожалуйста, никогда больше не фастпик Юзай imgur, неси всем счастье) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 20 марта, 2017 Нашёл самое просто решение, качайте последний билд эмулятора, он рабочий. http://gamax92.pc-logix.com/ocemu/OCEmu-x64.zip Спасибо, загрузилось. Вот только в этом эмуляторе MineCode зачем то странным образом сжимает экран и некоторые кнопки становятся недоступны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Laine_prikol 48 Опубликовано: 20 марта, 2017 У меня не получилось установить оное ингейм, валится на подгрузке иконки. Пока в код не лез, но вот скрин проблемы: P.s. До меня внезапно дошло, что может не хватать места. Ща вставлю второй хард и попробую снова. [uPD] Да, именно так, теперь вроде нормально поставилось. Почему в OC не сделают адекватную ошибку о том что нет места Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 20 марта, 2017 Почему в OC не сделают адекватную ошибку о том что нет места Я думаю это в большей степени задача прикладного программиста, а не системы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 904 Опубликовано: 20 марта, 2017 (изменено) Почему в OC не сделают адекватную ошибку о том что нет места При попытке открытия файла через io.open выдается либо файловый хендл, либо false с строковой причиной невозможности открытия файла (в нашем случае "not enough space"). Это и есть "адекватная ошибка". Спасибо, загрузилось. Вот только в этом эмуляторе MineCode зачем то странным образом сжимает экран MineCode.png и некоторые кнопки становятся недоступны. Судя по всему, в этом эмуляторе используется лишь один экран в блочном эквиваленте. Система старается избавиться от "черных полос" и подогнать разрешение экрана для комфортного использования. Пожалуй, выпилю эту фичу, добавив поддержку изменения разрешения вручную. UPD: Готово, так должно быть удобнее. Изменено 20 марта, 2017 пользователем ECS Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 21 марта, 2017 Четвертая наиболее полезная функция - это отладчик. Он позволяет вам выставлять так называемые "брейкпоинты" путем нажатия на кнопку "*" и узнавать, какое значение принимает та или иная переменная в исполняемом скрипте: Так брекпойнты не брекпойнты вовсе, а просто ерроры . А если я хочу после брекпойнта продолжить выполнение? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 904 Опубликовано: 21 марта, 2017 Так брекпойнты не брекпойнты вовсе, а просто ерроры . А если я хочу после брекпойнта продолжить выполнение? Ну да, а облака - это не облака вовсе, а просто конденсат водяных паров. Основную функцию, а именно исследования состояния программы (в нашем случае - значения всех объявленных в исследуемой строке переменных, как локальных, так и глобальных), моя реализация брейкпоинтов выполняет. После брейпоинта я намеренно останавливаю выполнение программы, так как лично для меня это гораздо удобнее. Хотя как вариант можно запилить поддержку множества брейкпоинтов через корутины с последующими опциями продолжения или остановки выполнения, это удовлетворит нас обоих. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 21 марта, 2017 У тебя интересно реализовано получение значения переменных из исполняемого кода, хоть и только из одной строки. Я пытался получать через окружение, но так доступны только глобальные переменные. Может ты знаешь способ достучаться извне к локальным? Может какое то локальное окружение есть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 904 Опубликовано: 21 марта, 2017 У тебя интересно реализовано получение значения переменных из исполняемого кода, хоть и только из одной строки. Я пытался получать через окружение, но так доступны только глобальные переменные. Может ты знаешь способ достучаться извне к локальным? Может какое то локальное окружение есть? Сам с этой проблемой бился, толкового решения так и не нашел. Казалось бы, самый разумный вариант - это использовать функцию debug.getlocal для нужного уровня стека, которая недоступна в моде, либо использовать окружение в качестве аргумента к load, но, как ты и сказал, доступно лишь глобальное. Поэтому и пришлось делать выбор между двумя вариантами: либо выводить в качестве данных брейкпоинта только глобальные переменные, либо парсить выбранную строку. В качестве альтернативы можно разбить весь сырец на слова, исключив из них синтаксические - и отрисовывать жирную таблицу из всех существующих переменных с их значениями, однако загвоздка в том, что в этом случае будет получена куча переменных, которые могут быть вообще не объявлены на момент существования брейкпоинта. В общем, спорно все, спорно, надо думать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах