Перейти к публикации
Форум - ComputerCraft
ECS

MineCode IDE (подсветка синтаксиса, отладчик, автодополнение, файловый менеджер, копипастинг)

Рекомендованные сообщения

 

 

Шедевр.

ага) не то слово.  В видосе не покидает ощущение, что сейчас вот-вот да будет какая-то фича, которой даже в саблайме нет :D  

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не знаю почему, но мне не удалось установить MineCode.

post-7-0-59490200-1489938480_thumb.png

И после устранения очепятки в 65-ой строке инсталлера...

post-7-0-42292500-1489938490_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не знаю почему, но мне не удалось установить MineCode.

attachicon.gifMineCode1.png

И после устранения очепятки в 65-ой строке инсталлера...

attachicon.gifMineCode2.png

Видимо ты забыл поставить галочку под строкой предлагающей вступить в рабство (пожалуйста не баньте)

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не знаю почему, но мне не удалось установить MineCode.

attachicon.gifMineCode1.png

И после устранения очепятки в 65-ой строке инсталлера...

attachicon.gifMineCode2.png

 

Занятно. Саму синтаксическую опечатку исправил, однако причина неверной URL мне не ясна. Только что без каких-либо проблем поставил программку на абсолютно чистую опенось:

 

b8ed012c17ed64a5e9139c1294f58a7e.jpeg

 

Как вариант - на эмуляторе ОС иным образом работает интернет-компонент, иных причин не вижу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я уже встречал проблему, проблема в эмуляторе, интернет карта почему - то не поддерживает https протокол.

Сейчас изучаю проблему.

Изменено пользователем NEO
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

luasocket luassl потому что ставить надо.

 

P. S. на Lua 5.3, кстати, эта штука не работает.

Изменено пользователем Fingercomp

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

P. S. на Lua 5.3, кстати, эта штука не работает.

 

И не будет. Суть в том, что для создания прозрачности у меня используется функция блендинга цветовых каналов, впоследствии "упаковывающая" результирующие каналы в один цвет вида 0xRRGGBB. К сожалению, в Lua 5.3 бинарные операции работают исключительно с целыми числами, в то время как библиотека bit32 в Lua 5.2 поддерживает дробные. Пришлось делать выбор между увеличенной втрое скоростью отрисовки или вставкой округляющих операций с возможностью использования Lua 5.3. Я выбрал первое, не жалею.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня не получилось установить оное ингейм, валится на подгрузке иконки. Пока в код не лез, но вот скрин проблемы:

 

9oWMPSR.png

 

P.s. До меня внезапно дошло, что может не хватать места. Ща вставлю второй хард и попробую снова.

[uPD] Да, именно так, теперь вроде нормально поставилось.

Изменено пользователем jammer312

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@@ECS, пожалуйста, никогда больше не фастпик :D Юзай imgur, неси всем счастье)

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нашёл самое просто решение, качайте последний билд эмулятора, он рабочий.

http://gamax92.pc-logix.com/ocemu/OCEmu-x64.zip

Спасибо, загрузилось.

Вот только в этом эмуляторе MineCode зачем то странным образом сжимает экран

post-7-0-78358800-1489996947_thumb.png

и некоторые кнопки становятся недоступны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
У меня не получилось установить оное ингейм, валится на подгрузке иконки. Пока в код не лез, но вот скрин проблемы:

 

9oWMPSR.png

 

P.s. До меня внезапно дошло, что может не хватать места. Ща вставлю второй хард и попробую снова.

[uPD] Да, именно так, теперь вроде нормально поставилось.

Почему в OC не сделают адекватную ошибку о том что нет места

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почему в OC не сделают адекватную ошибку о том что нет места

 

Я думаю это в большей степени задача прикладного программиста, а не системы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почему в OC не сделают адекватную ошибку о том что нет места

 

При попытке открытия файла через io.open выдается либо файловый хендл, либо false с строковой причиной невозможности открытия файла (в нашем случае "not enough space"). Это и есть "адекватная ошибка".

 

Спасибо, загрузилось.

Вот только в этом эмуляторе MineCode зачем то странным образом сжимает экран

attachicon.gifMineCode.png

и некоторые кнопки становятся недоступны.

 

Судя по всему, в этом эмуляторе используется лишь один экран в блочном эквиваленте. Система старается избавиться от "черных полос" и подогнать разрешение экрана для комфортного использования. Пожалуй, выпилю эту фичу, добавив поддержку изменения разрешения вручную.

 

UPD: Готово, так должно быть удобнее.

 

c5f8828d0af96ffa3df990da8f7545ef.png

Изменено пользователем ECS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Четвертая наиболее полезная функция - это отладчик. Он позволяет вам выставлять так называемые "брейкпоинты" путем нажатия на кнопку "*" и узнавать, какое значение принимает та или иная переменная в исполняемом скрипте:
 Так брекпойнты не брекпойнты вовсе, а просто ерроры :( . А если я хочу после брекпойнта продолжить выполнение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Так брекпойнты не брекпойнты вовсе, а просто ерроры  . А если я хочу после брекпойнта продолжить выполнение?

 

Ну да, а облака - это не облака вовсе, а просто конденсат водяных паров. Основную функцию, а именно исследования состояния программы (в нашем случае - значения всех объявленных в исследуемой строке переменных, как локальных, так и глобальных), моя реализация брейкпоинтов выполняет. После брейпоинта я намеренно останавливаю выполнение программы, так как лично для меня это гораздо удобнее. Хотя как вариант можно запилить поддержку множества брейкпоинтов через корутины с последующими опциями продолжения или остановки выполнения, это удовлетворит нас обоих.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У тебя интересно реализовано получение значения переменных из исполняемого кода, хоть и только из одной строки.

Я пытался получать через окружение, но так доступны только глобальные переменные. Может ты знаешь способ достучаться извне к локальным? Может какое то  локальное окружение есть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У тебя интересно реализовано получение значения переменных из исполняемого кода, хоть и только из одной строки.

Я пытался получать через окружение, но так доступны только глобальные переменные. Может ты знаешь способ достучаться извне к локальным? Может какое то  локальное окружение есть?

 

Сам с этой проблемой бился, толкового решения так и не нашел. Казалось бы, самый разумный вариант - это использовать функцию debug.getlocal для нужного уровня стека, которая недоступна в моде, либо использовать окружение в качестве аргумента к load, но, как ты и сказал, доступно лишь глобальное. Поэтому и пришлось делать выбор между двумя вариантами: либо выводить в качестве данных брейкпоинта только глобальные переменные, либо парсить выбранную строку. В качестве альтернативы можно разбить весь сырец на слова, исключив из них синтаксические - и отрисовывать жирную таблицу из всех существующих переменных с их значениями, однако загвоздка в том, что в этом случае будет получена куча переменных, которые могут быть вообще не объявлены на момент существования брейкпоинта. В общем, спорно все, спорно, надо думать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Небольшая обновка:

  • Добавлена алфавитно-типовая сортировка в файловом древе
  • Улучшено удобство комментирования выделенных участков кода
  • Улучшен алгоритм вывода стека ошибки и подсветки ошибочных строк
  • Добавлена поддержка нескольких брейкпоинтов с возможностью продолжения/остановки выполнения программы

3a3ef9aa69db3ec282c5e6753c1d292e.png

Изменено пользователем ECS
  • Like 5

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я думаю это в большей степени задача прикладного программиста, а не системы.

В любой нормальной системе есть оповещение что недостаточно места.

Изменено пользователем Laine_prikol

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А почему нельзя просто прошить код трассирующими маркерами?
ТО ЕСТЬ возьмём следящий поток и две функции для работы с ним:

  1. mark(*variables)  -- скопировать и отпрвить потоку переменные
  2. wait()                   -- остановка до того пока следящий поток не разрешит продолжить работу

Вставить функцию mark во всех местах где изменяется какая-либо переменная или если есть вероятность изменения переменной
Также трассировать глобальные переменные.
В мастах, где располагаются брейкпоинты вставить wait
И усё

Изменено пользователем Seryoga

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А почему нельзя просто прошить код трассирующими маркерами?

ТО ЕСТЬ возьмём следящий поток и две функции для работы с ним:

  1. mark(*variables)  -- скопировать и отпрвить потоку переменные
  2. wait()                   -- остановка до того пока следящий поток не разрешит продолжить работу

Вставить функцию mark во всех местах где изменяется какая-либо переменная или если есть вероятность изменения переменной

Также трассировать глобальные переменные.

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

И усё

 

Здесь уже используется схожая концепция. Такой метод прост и надежен, однако в код добавляются избыточные данные - и если тебе захочется получить значение всех переменных из файлика, скажем, в пару тысяч строк, то и число маркеров будет соответствующим. Поэтому я ограничил просмотр значений переменных строкой текущего брейкпоинта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Маты в коде везде есть, даже в тех программах и играх которые сделаны целой компанией - Например исходник Quake 3 в комментариях есть мат

Для ECS чуть ли не традиция.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добавлена не шибко важная фича ресайза файлового древа:

 

XhhyAql.gif

  • Like 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Добавлена не шибко важная фича ресайза файлового древа

 

 

 

 

 

 

Черт, какой же у тебя крутой результат кода... :)  © Krutoy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@@ECS Как ты сделал смену иконки курсора при ресайзе?

Изменено пользователем Alex
избыточное цитирование(репикчинг)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как ты сделал смену иконки курсора при ресайзе?

 

Там иконка курсора не меняется сама. Просто в том месте, где ты тянешь мышью отрисовывается двусторонняя стрелочка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×