KO 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 ํญ๋ชฉ์ ํ ๋ฒ ํด๋ฆญํ๋ฉด Inspector์ ์ค๋ช , ๋ ๋ฒ ํด๋ฆญํ๋ฉด ์์ ํ ํํ ์ฝ์ ;
Ctrl์ ๋๋ฅด๊ณ ์์ ๋๋ง Ctrl-hover ๋ฌธ์ ํ์;- tooltip์ ์ค๋ฐ๊ฟ๋๋ฉฐ ํ๋ฉด ๋ฐ์ผ๋ก ๋๊ฐ์ง ์์;
- ์ ์ด๋ฆ ์๋ ํ์ผ์
Autoload\Scripts์ Save; - ๋์คํฌ์์ ์ฐ ํ์ผ์ ์๋ ๊ฒฝ๋ก์ Save;
- ClassicUO Runtime์ด ์คํ ์ค์ด๋ฉด IDE ์ฐฝ์ ๋ซ์๋ ์คํฌ๋ฆฝํธ๋ ๊ณ์ ์คํ๋๋ฉฐ, IDE๋ฅผ ๋ค์ ์ด๋ฉด ์ํ๋ฅผ ๋ค์ ์ฝ์.
UI ๋ฉ์ถค ๋ฐฉ์ง
Runtime์ ๊ฒฉ๋ฆฌ๋ worker, ์ค๋น๋ source cache, ํ๋ ฅ์ yielding ๋ฐ ๊ฒ์ ์ค๋ ๋๋ก ์ ๋ฌํ๋ ์์
๋ ์ ํ์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋๋ ๊ธด ๋ฐ๋ณต๋ฌธ์๋ UO.Wait(...)๋ฅผ ์ฌ์ฉํ๊ณ ๋๊ธฐ ์๋ active loop๋ฅผ ๋ง๋ค์ง ๋ง์ญ์์ค.