LineCursor class
מחלקת קורס לסמן שורה.
Signature:
export declare class LineCursor extends Marker
הרחבה: Marker
יצרנים
יצרן | גורמי שינוי | תיאור |
---|---|---|
(constructor)(workspace) | יוצר מופע חדש של המחלקה LineCursor |
מאפיינים
נכס | גורמי שינוי | סוג | תיאור |
---|---|---|---|
type | מחרוזת | ||
workspace |
|
WorkspaceSvg |
Methods
שיטה | גורמי שינוי | תיאור |
---|---|---|
atEndOfLine() | הפונקציה מחזירה את הערך True אם הצומת שאליו נעבור אם נקרא לפונקציה in() זהה לצומת שאליו נעבור אם נקרא לפונקציה next() – כלומר, אם LineCursor נמצא בסוף של 'השורה הנוכחית' בתוכנית. | |
getCurNode() | קבלת המיקום הנוכחי של הסמן. מחליף את הפונקציה הרגילה Marker getCurNode כדי לעדכן את הצומת הנוכחי מהבלוק שנבחר. בדרך כלל זה קורה דרך מאזין הבחירה, אבל הוא לא נקרא באופן מיידי כש- |
|
getFirstNode() | מחזירה את הצומת הראשון שאפשר לנווט אליו בסביבת העבודה, או null אם לא קיים כזה. | |
getLastNode() | קבלת הצומת האחרון שאפשר לנווט אליו בסביבת העבודה, או null אם לא קיים כזה. | |
getNextNode(node, isValid, loop) | מקבלים את הצומת הבא ב-AST, עם אפשרות ללולאה חוזרת. | |
getPreviousNode(node, isValid, loop) | מחזירה את הצומת הקודם ב-AST, עם אפשרות ללולאה חוזרת. | |
in() | העברת הסמן לשדה או לחיבור הקלט הבא בסדר של מעבר על העץ. | |
next() | העברת הסמן לבלוק הבא או לתגובה הבאה במרחב העבודה בסדר המעבר של טרום-הזמנה. | |
out() | העברת הסמן לחיבור הקלט הקודם או לשדה הקודם בסדר המעבר לפני הסדר. | |
postDelete() | מעבירים את הסמן למיקום התקין הראשון ב-this.potentialNodes, אחרי מחיקה של בלוק. | |
preDelete(deletedBlock) | כדי להתכונן למחיקה של בלוק, יוצרים רשימה של צמתים שאפשר להעביר אליהם את הסמן אחר כך ושומרים אותה ב-this.potentialNodes. אחרי המחיקה, מפעילים את השיטה postDelete כדי להעביר את הצומת לצומת התקין הראשון ברשימה. המיקומים שבהם כדאי לנסות (לפי סדר העדיפות): – המיקום הנוכחי. – החיבור שאליו מצורף הבלוק שנמחק. – הבלוק שמחובר לחיבור הבא של הבלוק שנמחק. - בלוק האב של הבלוק שנמחק. – מיקום בסביבת העבודה מתחת לבלוק שנמחק. N.B.: כשמוחקים בלוק, גם כל הבלוקים שמחוברים לכניסות של הבלוק הזה נמחקים, אבל לא הבלוקים שמחוברים לחיבור הבא שלו. |
|
prev() | העברת הסמן לבלוק הקודם או לתגובה הקודמת במרחב העבודה בסדר המעבר של ההזמנה מראש. | |
setCurNode(newNode) | מגדירים את מיקום הסמן ומציירים אותו. הפונקציה מחליפה את הלוגיקה הרגילה של Marker setCurNode כדי לקרוא ל-this.drawMarker() במקום ל-this.drawer.draw() ישירות. |