You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by ju...@apache.org on 2020/11/29 12:30:16 UTC
[netbeans] branch master updated: [NETBEANS-5073] Add space after
data type
This is an automated email from the ASF dual-hosted git repository.
junichi11 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new 52b4131 [NETBEANS-5073] Add space after data type
new cbadb54 Merge pull request #2565 from KacerCZ/netbeans-5073-space-after-type
52b4131 is described below
commit 52b413122eeb4e23c55fcc18e46c1f674bca037c
Author: Tomas Prochazka <ka...@razdva.cz>
AuthorDate: Sat Nov 28 00:49:15 2020 +0100
[NETBEANS-5073] Add space after data type
https://issues.apache.org/jira/browse/NETBEANS-5073
Fixes formatting of PHP code by adding space between data type and parameter or property.
Source
```php
class Foo {
public string$name;
public function isValid(float$length): bool {}
}
```
is formatted as
```php
class Foo {
public string $name;
public function isValid(float $length) {}
}
```
---
.../modules/php/editor/indent/FormatToken.java | 1 +
.../modules/php/editor/indent/FormatVisitor.java | 15 ++++++++
.../modules/php/editor/indent/TokenFormatter.java | 3 ++
.../data/testfiles/formatting/spaceAfterType.php | 34 ++++++++++++++++++
.../formatting/spaceAfterType.php.formatted | 40 ++++++++++++++++++++++
.../php/editor/indent/PHPFormatterTest.java | 5 +++
6 files changed, 98 insertions(+)
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatToken.java b/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatToken.java
index 3abd72a..16b5c60 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatToken.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatToken.java
@@ -158,6 +158,7 @@ public class FormatToken {
WHITESPACE_AFTER_NULLABLE_TYPE_PREFIX,
WHITESPACE_BEFORE_MULTI_CATCH_SEPARATOR,
WHITESPACE_AFTER_MULTI_CATCH_SEPARATOR,
+ WHITESPACE_AFTER_TYPE,
LINE_COMMENT,
COMMENT,
COMMENT_START,
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java b/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java
index 9c8d46c..eb408c3 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java
@@ -1261,6 +1261,17 @@ public class FormatVisitor extends DefaultVisitor {
}
@Override
+ public void visit(FormalParameter node) {
+ Expression parameterType = node.getParameterType();
+ scan(parameterType);
+ if (parameterType != null) {
+ formatTokens.add(new FormatToken(FormatToken.Kind.WHITESPACE_AFTER_TYPE, parameterType.getEndOffset()));
+ }
+ scan(node.getParameterName());
+ scan(node.getDefaultValue());
+ }
+
+ @Override
public void visit(FunctionInvocation node) {
if (path.size() > 1 && path.get(1) instanceof MethodInvocation) {
while (ts.moveNext() && ts.token().id() != PHPTokenId.PHP_OBJECT_OPERATOR
@@ -1592,6 +1603,10 @@ public class FormatVisitor extends DefaultVisitor {
@Override
public void visit(SingleFieldDeclaration node) {
+ Expression fieldType = node.getFieldType();
+ if (fieldType != null) {
+ formatTokens.add(new FormatToken(FormatToken.Kind.WHITESPACE_AFTER_TYPE, fieldType.getEndOffset()));
+ }
Variable name = node.getName();
scan(name);
if (node.getValue() != null) {
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/indent/TokenFormatter.java b/php/php.editor/src/org/netbeans/modules/php/editor/indent/TokenFormatter.java
index ca4b942..7e5e9b0 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/indent/TokenFormatter.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/indent/TokenFormatter.java
@@ -1718,6 +1718,9 @@ public class TokenFormatter {
case WHITESPACE_AFTER_MULTI_CATCH_SEPARATOR:
countSpaces = 1;
break;
+ case WHITESPACE_AFTER_TYPE:
+ countSpaces = 1;
+ break;
default:
//no-op
}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaceAfterType.php b/php/php.editor/test/unit/data/testfiles/formatting/spaceAfterType.php
new file mode 100644
index 0000000..f2e250d
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaceAfterType.php
@@ -0,0 +1,34 @@
+<?php
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+function test(string$param) {
+}
+
+$lambda = function (int$count) {
+
+};
+
+fn(\Countable$collection) => $collection->count();
+
+class Foo {
+ public string$name;
+ public function isValid(float$length): bool {
+
+ }
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaceAfterType.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaceAfterType.php.formatted
new file mode 100644
index 0000000..5839fb0
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaceAfterType.php.formatted
@@ -0,0 +1,40 @@
+<?php
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+function test(string $param) {
+
+}
+
+$lambda = function (int $count) {
+
+};
+
+fn(\Countable $collection) => $collection->count();
+
+class Foo {
+
+ public string $name;
+
+ public function isValid(float $length): bool {
+
+ }
+
+}
diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterTest.java
index 9238b4f..b8ee304 100644
--- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterTest.java
+++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterTest.java
@@ -888,4 +888,9 @@ public class PHPFormatterTest extends PHPFormatterTestBase {
reformatFileContents("testfiles/formatting/netbeans4970.php", options);
}
+ public void testSpaceAfterType() throws Exception {
+ HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+ reformatFileContents("testfiles/formatting/spaceAfterType.php", options);
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists