calculateIndentBeforeCursor(); $expandBracket = $this->isCursorBeforeClosingBracket($buffer); $buffer->insert("\n".$indent); // Push the closing bracket to its own line, dedented one level. if ($expandBracket) { $cursorPos = $buffer->getCursor(); $buffer->insert("\n".$buffer->dedent($indent)); $buffer->setCursor($cursorPos); } return true; } /** * Check whether the cursor is immediately before a closing bracket. */ private function isCursorBeforeClosingBracket(Buffer $buffer): bool { $afterCursor = $buffer->getAfterCursor(); return $afterCursor !== '' && \in_array($afterCursor[0], BracketPair::CLOSING_BRACKETS); } /** * {@inheritdoc} */ public function getName(): string { return 'insert-line-break'; } }