Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. EmptyLinesAroundClassBracesSniff.php

function EmptyLinesAroundClassBracesSniff::processClosingBrace

1 call to EmptyLinesAroundClassBracesSniff::processClosingBrace()
EmptyLinesAroundClassBracesSniff::process in vendor/slevomat/coding-standard/SlevomatCodingStandard/Sniffs/Classes/EmptyLinesAroundClassBracesSniff.php
* @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint *

File

vendor/slevomat/coding-standard/SlevomatCodingStandard/Sniffs/Classes/EmptyLinesAroundClassBracesSniff.php, line 108

Class

EmptyLinesAroundClassBracesSniff

Namespace

SlevomatCodingStandard\Sniffs\Classes

Code

private function processClosingBrace(File $phpcsFile, int $stackPointer) : void {
    $tokens = $phpcsFile->getTokens();
    $typeToken = $tokens[$stackPointer];
    $closerPointer = $typeToken['scope_closer'];
    $closerToken = $tokens[$closerPointer];
    $previousPointerBeforeClosingBrace = TokenHelper::findPreviousNonWhitespace($phpcsFile, $closerPointer - 1);
    $previousTokenBeforeClosingBrace = $tokens[$previousPointerBeforeClosingBrace];
    $lines = $closerToken['line'] - $previousTokenBeforeClosingBrace['line'] - 1;
    if ($lines === $this->linesCountBeforeClosingBrace) {
        return;
    }
    if ($this->linesCountBeforeClosingBrace === 1) {
        $fix = $phpcsFile->addFixableError(sprintf('There must be one empty line before %s closing brace.', $typeToken['content']), $closerPointer, $lines === 0 ? self::CODE_NO_EMPTY_LINE_BEFORE_CLOSING_BRACE : self::CODE_MULTIPLE_EMPTY_LINES_BEFORE_CLOSING_BRACE);
    }
    else {
        $fix = $phpcsFile->addFixableError(sprintf('There must be exactly %d empty lines before %s closing brace.', $this->linesCountBeforeClosingBrace, $typeToken['content']), $closerPointer, self::CODE_INCORRECT_EMPTY_LINES_BEFORE_CLOSING_BRACE);
    }
    if (!$fix) {
        return;
    }
    $phpcsFile->fixer
        ->beginChangeset();
    if ($lines < $this->linesCountBeforeClosingBrace) {
        for ($i = $lines; $i < $this->linesCountBeforeClosingBrace; $i++) {
            $phpcsFile->fixer
                ->addNewlineBefore($closerPointer);
        }
    }
    else {
        FixerHelper::removeBetween($phpcsFile, $previousPointerBeforeClosingBrace + $this->linesCountBeforeClosingBrace + 1, $closerPointer);
    }
    $phpcsFile->fixer
        ->endChangeset();
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal