LineCursor 클래스
선 커서 클래스입니다.
서명:
export declare class LineCursor extends Marker
확장: 마커
생성자
생성자 | 수정자 | 설명 |
---|---|---|
(constructor)(workspace) | LineCursor 클래스의 새 인스턴스를 생성합니다. |
속성
속성 | 수정자 | 유형 | 설명 |
---|---|---|---|
type | 문자열 | ||
workspace |
|
WorkspaceSvg |
메서드
메서드 | 수정자 | 설명 |
---|---|---|
atEndOfLine() | in()이 호출될 때 탐색하는 노드가 next()가 호출될 때 탐색하는 노드와 동일한 경우(즉, LineCursor가 프로그램의 '현재 줄' 끝에 있는 경우) true를 반환합니다. | |
getCurNode() | 커서의 현재 위치를 가져옵니다. 선택한 블록에서 현재 노드를 업데이트하기 위해 일반 마커 getCurNode를 재정의합니다. 일반적으로 선택 리스너를 통해 발생하지만 |
|
getFirstNode() | 작업공간에서 탐색 가능한 첫 번째 노드를 가져옵니다. 탐색 가능한 노드가 없으면 null을 가져옵니다. | |
getLastNode() | 작업 공간에서 탐색 가능한 마지막 노드를 가져옵니다. 없으면 null을 가져옵니다. | |
getNextNode(node, isValid, loop) | AST에서 다음 노드를 가져옵니다. 선택적으로 루프백을 허용합니다. | |
getPreviousNode(node, isValid, loop) | AST에서 이전 노드를 가져옵니다. 선택적으로 루프백을 허용합니다. | |
in() | 커서를 사전 순회에서 다음 입력 연결 또는 필드로 이동합니다. | |
next() | 커서를 선주문 순회에서 다음 블록 또는 워크스페이스 댓글로 이동합니다. | |
out() | 커서를 사전 순회에서 이전 입력 연결 또는 필드로 이동합니다. | |
postDelete() | 블록 삭제 후 이 potentialNodes에서 유효한 첫 번째 위치로 커서를 이동합니다. | |
preDelete(deletedBlock) | 커서를 이동할 수 있는 노드 목록을 만들어 블록 삭제를 준비하고 이를 this.potentialNodes에 저장합니다. 삭제가 발생한 후 postDelete를 호출하여 해당 목록의 첫 번째 유효한 노드로 이동합니다. 시도할 위치 (선호도 순서)는 다음과 같습니다. - 현재 위치 - 삭제된 블록이 연결된 연결 - 삭제된 블록의 다음 연결에 연결된 블록 - 삭제된 블록의 상위 블록입니다. - 삭제된 블록 아래의 작업공간에 있는 위치 N.B.: 블록이 삭제되면 해당 블록의 입력에 연결된 모든 블록도 삭제되지만 다음 연결에 연결된 블록은 삭제되지 않습니다. |
|
prev() | 커서를 사전 순회에서 이전 블록 또는 작업공간 댓글로 이동합니다. | |
setCurNode(newNode) | 커서의 위치를 설정하고 그립니다. 일반적인 Marker setCurNode 로직을 재정의하여 this.drawer.draw()를 직접 호출하는 대신 this.drawMarker()를 호출합니다. |