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

Basic Runtime と IDE

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

Basic Runtime は Basic スクリプトを実行し、UO.* 呼び出しを ClassicUO の実機能へ接続します。内蔵 IDE は Eclipse Theia と Monaco editor を使用します。

エントリーポイント

通常の実行用スクリプトには次が必要です:

SUB Main()
    UO.Print('Hello from Basic')
END SUB

ファイルを開くか変更すると、Runtime/language service は文書全体を索引化します。procedures、functions、parameters、local/global declarations、API calls、diagnostics が対象です。SUB Main() が先頭でも末尾でも実行でき、editor のスクロール位置には依存しません。

IDE の主要パネル

  • Explorer:ファイルと現在のスクリプト;
  • Editor:Basic の編集;
  • Outline:選択ファイルの SUBFUNCTION
  • Problems:検証エラーとソース行への移動;
  • Output / Debug Console:時系列の実行出力;
  • API Inspector:選択 API のシグネチャと説明;
  • Variables / Watch / Call Stack:デバッグ停止時の値と frame;
  • API Manual:Runtime registration から作られたカタログ。

パネルはサイズ変更できます。別のパネルを選択しても、他のパネルの描画や更新は継続します。

スクリプトの状態

状態 表示色
running
paused
stopped かつ選択中 黒/現在のテーマの通常色
debugging デバッグ状態と現在の停止行を併用

複数スクリプトを同時に実行できます。Explorer で選択したインスタンスに Run、Pause、Stop、step command が作用し、他のインスタンスの状態は変更しません。

Run とデバッグのキー

操作 キー 動作
Run Current Script F5 現在のスクリプトを検証して実行
Start Script (SUB Main) / Run Without Debugging Ctrl+F5 breakpoint なしで SUB Main() を起動
Start Debugging F4 debugger 下で SUB Main() を起動
Validate F6 実行せず構文を検証
Pause/Resume Current Script F7 選択中インスタンスを一時停止/再開
Continue F8 pause または breakpoint から続行
Toggle Breakpoint F9 現在行の breakpoint を追加/削除
Step Over F10 現在の文を実行して次の実行文へ移動
Step Into F11 呼び出された SUBFUNCTION に入る
Step Out Shift+F11 現在の procedure を完了して呼び出し元へ戻る
Stop Shift+F5 選択スクリプトを停止
Restart Debugging Ctrl+Shift+F5 選択スクリプトを debug で再起動
API Documentation for Symbol Ctrl+F1 カーソル位置の symbol を Manual で開く

Run メニューの Stop All ScriptsPause All Scripts は、対象となる running/paused インスタンスが存在するときだけ有効です。灰色の項目は現在の状態では適用できないことを示します。

ステップ実行と実行時の値

F10F11Shift+F11 は debugger が実行可能な文で停止しているときだけ有効です。現在実行中の行は Editor で強調表示されます。停止時は Variables、Watch、Call Stack に正確な frame snapshot が表示され、連続実行中は最後に安全に取得した snapshot だけが表示されます。

API 呼び出しの実際の戻り値を確認するには、結果を変数へ保存し、その次の行で breakpoint 停止して Variables/Watch を見るか、UO.Print(...) で出力します。

入力支援と保存

  • completion は完全な UO.* 構文を表示;
  • API 項目を 1 回クリックすると Inspector、ダブルクリックすると完全な形式を挿入;
  • Ctrl を押している間だけ Ctrl-hover 文書を表示;
  • tooltip は折り返され、画面外へ出ない;
  • 新規無名ファイルは Autoload\Scripts に Save;
  • ディスクから開いたファイルは元のパスへ Save;
  • IDE ウィンドウを閉じても ClassicUO Runtime が動作中ならスクリプトは停止しない;再度 IDE を開くと状態を再取得。

UI の停止を避ける

Runtime は分離された worker、準備済み source cache、協調的 yielding、ゲームスレッドへ渡す処理量の制限を使用します。それでも、長い反復処理では UO.Wait(...) を使い、待機のない active loop を作らないでください。