คลาส LineCursor
คลาสสำหรับเคอร์เซอร์บรรทัด
ลายเซ็น:
export declare class LineCursor extends Marker
ขยาย: Marker
ผู้ผลิต
| ผู้ผลิต | คีย์ตัวปรับแต่ง | คำอธิบาย |
|---|---|---|
| (constructor)(workspace) | สร้างอินสแตนซ์ใหม่ของคลาส LineCursor |
พร็อพเพอร์ตี้
| พร็อพเพอร์ตี้ | คีย์ตัวปรับแต่ง | ประเภท | คำอธิบาย |
|---|---|---|---|
| ประเภท | สตริง | ||
| workspace |
|
WorkspaceSvg |
เมธอด
| วิธีการ | คีย์ตัวปรับแต่ง | คำอธิบาย |
|---|---|---|
| atEndOfLine() | แสดงค่าเป็นจริงก็ต่อเมื่อโหนดที่เราจะไปยังหากมีการเรียกใช้ in() เหมือนกับโหนดที่เราจะไปยังหากมีการเรียกใช้ next() ซึ่งก็คือหาก LineCursor อยู่ที่ท้าย "บรรทัดปัจจุบัน" ของโปรแกรม | |
| getCurNode() | รับตำแหน่งปัจจุบันของเคอร์เซอร์ ลบล้าง getCurNode ของเครื่องหมายปกติเพื่ออัปเดตโหนดปัจจุบันจากบล็อกที่เลือก โดยปกติแล้วการดำเนินการนี้จะเกิดขึ้นผ่านเครื่องมือฟังการเลือก แต่จะไม่เรียกใช้ทันทีเมื่อ |
|
| getFirstNode() | รับโหนดแรกที่ไปยังได้ในพื้นที่ทำงาน หรือ null หากไม่มี | |
| getLastNode() | รับโหนดสุดท้ายที่ไปยังได้ในพื้นที่ทำงาน หรือ null หากไม่มี | |
| getNextNode(node, isValid, loop) | รับโหนดถัดไปใน AST โดยอาจอนุญาตให้วนซ้ำได้ | |
| getPreviousNode(node, isValid, loop) | รับโหนดก่อนหน้าใน AST โดยอาจอนุญาตให้วนซ้ำได้ | |
| in() | ย้ายเคอร์เซอร์ไปยังการเชื่อมต่ออินพุตหรือฟิลด์ถัดไปในการสำรวจก่อนลำดับ | |
| next() | เลื่อนเคอร์เซอร์ไปยังบล็อกหรือความคิดเห็นในพื้นที่ทำงานถัดไปในการค้นหาแบบ Pre-order | |
| out() | ย้ายเคอร์เซอร์ไปยังการเชื่อมต่ออินพุตหรือฟิลด์ก่อนหน้าในการค้นหาแบบ Pre-order | |
| postDelete() | เลื่อนเคอร์เซอร์ไปยังตำแหน่งที่ถูกต้องแรกใน this.potentialNodes หลังจากลบบล็อก | |
| preDelete(deletedBlock) | เตรียมพร้อมสำหรับการลบบล็อกโดยสร้างรายการโหนดที่เราสามารถย้ายเคอร์เซอร์ไปได้ในภายหลังและบันทึกลงใน this.potentialNodes หลังจากลบแล้ว ให้เรียกใช้ postDelete เพื่อย้ายไปยังโหนดแรกที่ใช้ได้ในรายการนั้น สถานที่ที่คุณควรลอง (ตามลำดับความสำคัญ) มีดังนี้ - ตำแหน่งปัจจุบัน - การเชื่อมต่อที่บล็อกที่ลบแล้วแนบอยู่ - บล็อกที่เชื่อมต่อกับการเชื่อมต่อถัดไปของบล็อกที่ถูกลบ - บล็อกหลักของบล็อกที่ถูกลบ - ตำแหน่งในพื้นที่ทำงานใต้บล็อกที่ถูกลบ N.B.: เมื่อลบบล็อก ระบบจะลบบล็อกทั้งหมดที่เชื่อมต่อกับอินพุตของบล็อกนั้นด้วย แต่จะไม่ลบบล็อกที่เชื่อมต่อกับการเชื่อมต่อถัดไป |
|
| prev() | ย้ายเคอร์เซอร์ไปยังบล็อกหรือความคิดเห็นในพื้นที่ทำงานก่อนหน้าในการค้นหาแบบ Pre-order | |
| setCurNode(newNode) | ตั้งค่าตำแหน่งของเคอร์เซอร์แล้ววาด ลบล้างตรรกะ Marker setCurNode ปกติเพื่อเรียกใช้ this.drawMarker() แทนที่จะเรียกใช้ this.drawer.draw() โดยตรง |