คลาส 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() โดยตรง |