Classe LineCursor
Classe per un cursore a forma di linea.
Firma:
export declare class LineCursor extends Marker
Estensioni: Indicatore
Costruttori
Costruttore | Modificatori | Descrizione |
---|---|---|
(constructor)(workspace) | Crea una nuova istanza della classe LineCursor |
Proprietà
Proprietà | Modificatori | Tipo | Descrizione |
---|---|---|---|
type | stringa | ||
workspace |
|
WorkspaceSvg |
Metodi
Metodo | Modificatori | Descrizione |
---|---|---|
atEndOfLine() | Restituisce true se il nodo a cui si passerebbe se venisse chiamato in() è lo stesso a cui si passerebbe se venisse chiamato next(). In effetti, se LineCursor si trova alla fine della "riga corrente" del programma. | |
getCurNode() | Recupera la posizione attuale del cursore. Esegue l'override di Marker.getCurNode per aggiornare il nodo corrente dal blocco selezionato. Ciò avviene in genere tramite il listener di selezione, che non viene chiamato immediatamente quando |
|
getFirstNode() | Recupera il primo nodo navigabile nello spazio di lavoro o null se non ne esiste nessuno. | |
getLastNode() | Recupera l'ultimo nodo navigabile nello spazio di lavoro o null se non esiste. | |
getNextNode(node, isValid, loop) | Recupera il nodo successivo nell'AST, consentendo facoltativamente il loopback. | |
getPreviousNode(node, isValid, loop) | Recupera il nodo precedente nell'AST, consentendo facoltativamente il loopback. | |
in() | Sposta il cursore alla connessione o al campo di input successivo nell'attraversamento pre-ordine. | |
next() | Sposta il cursore al blocco o al commento dello spazio di lavoro successivo nell'attraversamento del preordine. | |
out() | Sposta il cursore sulla connessione di input o sul campo precedente nell'attraversamento pre-ordine. | |
postDelete() | Sposta il cursore sulla prima posizione valida in this.potentialNodes, dopo l'eliminazione di un blocco. | |
preDelete(deletedBlock) | Preparati all'eliminazione di un blocco creando un elenco di nodi in cui potremmo spostare il cursore in seguito e salvalo in this.potentialNodes. Una volta eliminato, chiama postDelete per spostarlo nel primo nodo valido dell'elenco. I luoghi da provare (in ordine di preferenza) sono: - La posizione attuale. - La connessione a cui è collegato il blocco eliminato. - Il blocco collegato alla connessione successiva del blocco eliminato. - Il blocco padre del blocco eliminato. - Una posizione nello spazio di lavoro sotto il blocco eliminato. N.B.: Quando un blocco viene eliminato, vengono eliminati anche tutti i blocchi collegati agli input, ma non quelli collegati alla connessione successiva. |
|
prev() | Sposta il cursore sul commento precedente del blocco o dello spazio di lavoro nella navigazione della prenotazione. | |
setCurNode(newNode) | Imposta la posizione del cursore e disegnalo. Esegue l'override della normale logica di Marker setCurNode per chiamare this.drawMarker() anziché this.drawer.draw() direttamente. |