smartBrackets = $smartBrackets; $this->lineBreakAction = new InsertLineBreakAction(); } /** * {@inheritdoc} */ public function execute(Buffer $buffer, Terminal $terminal, Readline $readline): bool { if (!$this->smartBrackets || !$buffer->hasUnclosedBracketsBeforeCursor()) { return false; } // If the full buffer is semantically complete, let it submit // even if the cursor is between brackets. if ($buffer->isCompleteStatement()) { return false; } return $this->lineBreakAction->execute($buffer, $terminal, $readline); } /** * {@inheritdoc} */ public function getName(): string { return 'insert-line-break-on-unclosed-brackets'; } }