блочно > LineCursor

Класс LineCursor

Класс для линейного курсора.

Подпись:

export declare class LineCursor extends Marker 

Расширяет: Маркер

Конструкторы

Конструктор Модификаторы Описание
(конструктор)(рабочее пространство) Создает новый экземпляр класса LineCursor

Характеристики

Свойство Модификаторы Тип Описание
тип нить
рабочее пространство

protected

readonly

WorkspaceSvg

Методы

Метод Модификаторы Описание
вКонцеСтроки() Возвращает true, если узел, к которому мы перейдем, если будет вызван in(), совпадает с узлом, к которому мы перейдем, если будет вызван next() — фактически, если LineCursor находится в конце «текущей строки» программы.
получитьКурНоде()

Получить текущее местоположение курсора.

Переопределяет обычный метод Marker getCurNode для обновления текущего узла из выбранного блока. Обычно это происходит через прослушиватель выбора, но он не вызывается сразу после вызова Gesture Blockly.common.setSelected . В частности, прослушиватель запускается после отображения контекстного меню.

получитьFirstNode() Получить первый доступный для навигации узел в рабочей области или null, если таковых не существует.
получитьLastNode() Получить последний доступный для навигации узел в рабочей области или значение null, если таковых не существует.
getNextNode(узел, isValid, цикл) Получить следующий узел в AST, при необходимости разрешить петлю.
getPreviousNode(узел, isValid, цикл) Получить предыдущий узел в AST, при необходимости разрешить петлю.
в() Перемещает курсор к следующему входному соединению или полю в предварительном порядке обхода.
следующий() Перемещает курсор к следующему блоку или комментарию рабочей области в предварительном порядке обхода.
вне() Перемещает курсор к предыдущему входному соединению или полю в предварительном порядке обхода.
postDelete() Переместите курсор в первое допустимое место в this.potentialNodes после удаления блока.
preDelete(deletedBlock)

Подготовьтесь к удалению блока, составив список узлов, на которые впоследствии можно будет переместить курсор, и сохраните его в this.potentialNodes.

После того, как удаление произошло, вызовите postDelete, чтобы переместить его на первый действительный узел в этом списке.

Места, которые стоит попробовать (в порядке предпочтения):

- Текущее местоположение. - Соединение, к которому прикреплен удаленный блок. - Блок, подключенный к следующему соединению удаленного блока. - Родительский блок удаленного блока. - Местоположение на рабочем пространстве под удаленным блоком.

Примечание: при удалении блока все блоки, подключенные к входам этого блока, также удаляются, но не блоки, подключенные к его следующему соединению.

предыдущая() Перемещает курсор к предыдущему блоку или комментарию рабочей области в предварительном порядке обхода.
setCurNode(newNode)

Установите местоположение курсора и нарисуйте его.

Переопределяет обычную логику Marker setCurNode для прямого вызова this.drawMarker() вместо this.drawer.draw().