apache / apache/netbeans

PHP wrong format indentation

Open
#7,462 10 comments 0 reactions 1 assignee Claimed by @junichi11 View on GitHub
kind:bug PHP
Dominant language
Java
Stars
3.1k
Forks
935
Avg merge
2d 3h
Merged PRs (30d)
17

Description

### Apache NetBeans version

Apache NetBeans 22

### What happened

The code inside a function influences how is formatted the code into another function when making use of ALT+Shift+F
I already filed this bug that is a similar problemi for JS (https://github.com/apache/netbeans/issues/7243) but this one I think it's even worse.

### Language / Project Type / NetBeans Component

PHP project

### How to reproduce

(1) Comment the line
$res = ['test1' => 1, 'test2' => 2, 'test3' => implode(',', $test4)];
and press ALT Shift+F
You'll see "Array(" in the function stuff() moving in the right position.
(2)
Remove the comment from
$res = ['test1' => 1, 'test2' => 2, 'test3' => implode(',', $test4)];
and "array(" will move again in the bad position.
(3)
In the line
$res = ['test1' => 1, 'test2' => 2, 'test3' => implode(',', $test4)];
change "test3" with "test33333333333333333333" and you'll see "array(" moving further right.
I haven't found any workaround to solve this problem.

```
1, 'test2' => 2, 'test3' => implode(',', $test4)];

return $res;
}

public static function stuff()
{
return array_merge(self::registerRules(),
array(
'opt1' => FILTER_SANITIZE_NUMBER_INT,
'opt2' => FILTER_SANITIZE_NUMBER_INT
)
);
}
}
```
I'd like "array(" in the return of stuff() to stay on the first line, like this
```
return array_merge(self::registerRules(), array(
'opt1' => FILTER_SANITIZE_NUMBER_INT,
'opt2' => FILTER_SANITIZE_NUMBER_INT
)
```
or something like this
```
return array_merge(self::registerRules(),
array(
'opt1' => FILTER_SANITIZE_NUMBER_INT,
'opt2' => FILTER_SANITIZE_NUMBER_INT
)
);
```

But that's not the point: regardless of what I expect to see, the problem is that "array(" moves right according to the length of
$res = ['test1' => 1, 'test2' => 2, 'test3' => implode(',', $test4)];
in the other function. That's quite weird.

PS: If this could help, I format all my code with tabs, not spaces.

### Did this work correctly in an earlier version?

No / Don't know

### Operating System

Debian Bookworm (12)

### JDK

Java: 17.0.11; OpenJDK 64-Bit Server VM 17.0.11+9-Debian-1deb12u1 - Runtime: OpenJDK Runtime Environment 17.0.11+9-Debian-1deb12u1

### Apache NetBeans packaging

Apache NetBeans binary zip

### Anything else

_No response_

### Are you willing to submit a pull request?

No

### Attached
Screenshot of the editor formatting options
![f2](https://github.com/apache/netbeans/assets/5039496/a3700441-6cec-483c-9303-0958bc60451d)
![f1](https://github.com/apache/netbeans/assets/5039496/2c260b49-3aa9-442d-aa6a-31edd668e6e4)

zip with export of formatting options
[format.zip](https://github.com/user-attachments/files/15817081/format.zip)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.