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:選択ファイルの
SUBとFUNCTION; - 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 |
呼び出された SUB/FUNCTION に入る |
| 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 Scripts と Pause All Scripts は、対象となる running/paused インスタンスが存在するときだけ有効です。灰色の項目は現在の状態では適用できないことを示します。
ステップ実行と実行時の値
F10、F11、Shift+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 を作らないでください。