Skip to content

Commit 35fbab8

Browse files
committed
fix - remove extra line after use clauses - kokororin/vscode-phpfmt#169
1 parent e156355 commit 35fbab8

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

fmt.stub.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10653,11 +10653,22 @@ protected function sortUseClauses($source, $splitComma, $removeUnused, $stripBla
1065310653
}
1065410654

1065510655
$return = '';
10656+
$i = count(array_filter($newTokens, function($token) {
10657+
return $token instanceof SurrogateToken;
10658+
}));
10659+
1065610660
foreach ($newTokens as $idx => $token) {
1065710661
if ($token instanceof SurrogateToken) {
1065810662
$return .= array_shift($useStack);
1065910663
if ($blanklineAfterUseBlock && !isset($useStack[0])) {
10660-
$return .= $this->newLine;
10664+
$i--;
10665+
if ($i > 0) {
10666+
$return .= $this->newLine;
10667+
} else { // last subrogate token. we need one an just one return after it
10668+
if (isset($newTokens[$idx + 1]) && substr_count($newTokens[$idx + 1][1], $this->newLine) === 1) {
10669+
$return .= $this->newLine;
10670+
}
10671+
}
1066110672
}
1066210673
continue;
1066310674
} elseif (T_WHITESPACE == $token[0] && isset($newTokens[$idx - 1], $newTokens[$idx + 1]) && $newTokens[$idx - 1] instanceof SurrogateToken && $newTokens[$idx + 1] instanceof SurrogateToken) {
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
//passes:OrderAndRemoveUseClauses
3+
//excludes:EliminateDuplicatedEmptyLines
4+
declare (strict_types = 1);
5+
6+
use App\Class1;
7+
8+
class MyClass
9+
{
10+
public function a()
11+
{
12+
$c = new Class1();
13+
}
14+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
//passes:OrderAndRemoveUseClauses
3+
//excludes:EliminateDuplicatedEmptyLines
4+
declare (strict_types = 1);
5+
6+
use App\Class1;
7+
8+
class MyClass {
9+
public function a() {
10+
$c = new Class1();
11+
}
12+
}

0 commit comments

Comments
 (0)