/** * {@inheritdoc} */ public function fix(\SplFileInfo $file, Tokens $tokens) { $this->deepestLevel = 0; // This fixer works partially on Tokens and partially on string representation of code. // During the process of fixing internal state of single Token may be affected by injecting ALIGNABLE_PLACEHOLDER to its content. // The placeholder will be resolved by `replacePlaceholder` method by removing placeholder or changing it into spaces. // That way of fixing the code causes disturbances in marking Token as changed - if code is perfectly valid then placeholder // still be injected and removed, which will cause the `changed` flag to be set. // To handle that unwanted behavior we work on clone of Tokens collection and then override original collection with fixed collection. $tokensClone = clone $tokens; $this->injectAlignmentPlaceholders($tokensClone); $content = $this->replacePlaceholder($tokensClone); $tokens->setCode($content); }
/** * {@inheritdoc} */ public function fix(\SplFileInfo $file, Tokens $tokens) { $tokens->setCode(preg_replace('/^\\h+$/m', '', $tokens->generateCode())); }
/** * {@inheritdoc} */ public function fix(\SplFileInfo $file, Tokens $tokens) { // [Structure] Use the linefeed character (0x0A) to end lines $tokens->setCode(str_replace("\r\n", "\n", $tokens->generateCode())); }
/** * {@inheritdoc} */ public function fix(\SplFileInfo $file, Tokens $tokens) { // [Structure] Don't add trailing spaces at the end of non-blank lines $tokens->setCode(preg_replace('/(?<=\\S)[ \\t]+$/m', '', $tokens->generateCode())); }