UA Basic - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

Basic IDE Runtime та IDE

Home · BASIC · UO API · A–Z · Examples · Languages

Basic Runtime виконує скрипти Basic і спрямовує зареєстровані виклики UO.* до ClassicUO. Вбудоване середовище розробки засноване на Eclipse Theia з редактором Monaco та мовним розширенням Basic.

Точка входу та індексація

SUB Main()
    UO.Print('Basic запущено')
END SUB

Після відкриття або зміни документа одразу індексується весь текст: SUB, FUNCTION, параметри, локальні й глобальні оголошення, виклики API, діагностика, Outline та навігація символів. Запуск не залежить від прокрутки донизу; Main може бути в будь-якому місці файлу.

Області IDE

  • Explorer — файли та вибраний екземпляр скрипта;
  • Editor — вихідний код Basic;
  • OutlineSUB і FUNCTION вибраного файла;
  • Problems — помилки з переходом до рядка;
  • Output / Debug Console — хронологічні повідомлення;
  • API Inspector — опис вибраного Runtime-символу;
  • Variables / Watch / Call Stack — значення та кадри налагоджувача;
  • API Manual — повний каталог зареєстрованого Runtime.

Панелі можна розтягувати, а відокремлені області продовжують відмальовуватися, навіть коли активна інша панель. Закриття вікна IDE не зупиняє скрипти, доки працює ClassicUO Runtime; після повторного відкриття їхній стан має відновитися.

Кілька скриптів і кольори стану

Кілька скриптів працюють паралельно з незалежними станами running, paused, stopped і debugging. Вибір одного не змінює інші. Маркер біля назви зелений під час роботи, жовтий на паузі та чорний/звичайного кольору теми, коли зупинений скрипт вибрано.

Команди запуску та налагодження

Дія Клавіша Поведінка
Run Current Script F5 перевірити й запустити поточний скрипт
Start Script (SUB Main) / Run Without Debugging Ctrl+F5 запустити SUB Main() без зупинок налагоджувача
Start Debugging F4 запустити SUB Main() під налагоджувачем
Validate F6 перевірити синтаксис без запуску
Pause/Resume Current Script F7 призупинити або продовжити вибраний екземпляр
Continue F8 продовжити після паузи або breakpoint
Toggle Breakpoint F9 додати або видалити breakpoint рядка
Step Over F10 виконати поточну інструкцію
Step Into F11 увійти у викликану користувацьку SUB або FUNCTION
Step Out Shift+F11 завершити поточну процедуру й повернутися
Stop Shift+F5 зупинити вибраний екземпляр
Restart Debugging Ctrl+Shift+F5 перезапустити вибраний скрипт під налагоджувачем
API Documentation for Symbol Ctrl+F1 відкрити документацію символу під курсором

У Run також є дії для паузи або зупинки всіх відповідних екземплярів. Сірий пункт означає, що дія не застосовується до поточного стану Runtime.

Покрокове налагодження

Кроки мають сенс після зупинки налагоджувача на інструкції або breakpoint. Виконуваний рядок підсвічується. F10 переходить за справжніми виконуваними інструкціями, а не просто рухає курсор на наступний видимий рядок. Точні locals, globals, watches і frames доступні зі зупиненого snapshot; під час безперервної роботи можна показати лише останній безпечно захоплений стан.

Доповнення та документація

Автодоповнення вставляє повний синтаксис UO.*. Один вибір API відкриває опис, подвійний клік може вставити повну форму до редактора. Ctrl-hover показується лише при утриманні Ctrl, переносить довгі рядки й не виходить за межі екрана.

Кооперативна робота скрипта

Runtime використовує ізольовані робочі контексти, підготовлений кеш коду та обмежені порції роботи в ігровому потоці. Проте цикл також має поступатися керуванням:

SUB Main()
    WHILE UO.GetDead() = 0
        ' Невелика частина роботи
        UO.Wait(100)
    WEND
END SUB

Нескінченний активний цикл без очікування може завантажити CPU й зробити клієнт нечутливим.