This is an automated email from the ASF dual-hosted git repository.
tmysik 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 f25bbd17d8 Fix being shown incorrect documentation #4494
new bceb81b737 Merge pull request #5701 from
junichi11/php-gh-4494-show-documentation
f25bbd17d8 is described below
commit f25bbd17d82d862e70a3bd42dd52d9c4e1f5a886
Author: Junichi Yamamoto <[email protected]>
AuthorDate: Thu Mar 23 01:55:08 2023 +0900
Fix being shown incorrect documentation #4494
- https://github.com/apache/netbeans/issues/4494
- Add a new test method for checking documentation when a `QueryType` is
`DOCUMENTATION` to `CslTestBase`
- If `QueryType` is `DOCUMENTATION`, get a whole identifier as a prefix
- Add unit tests
- Increase spec versions
---
ide/csl.api/nbproject/project.properties | 2 +-
.../netbeans/modules/csl/api/test/CslTestBase.java | 6 ++-
php/php.editor/nbproject/project.properties | 2 +-
php/php.editor/nbproject/project.xml | 2 +-
.../php/editor/completion/PHPCodeCompletion.java | 8 +++-
.../completion/documentation/issueGH4494.php | 53 ++++++++++++++++++++++
.../issueGH4494.php.testIssueGH4494_01.html | 11 +++++
.../issueGH4494.php.testIssueGH4494_02.html | 11 +++++
.../issueGH4494.php.testIssueGH4494_03.html | 11 +++++
.../issueGH4494.php.testIssueGH4494_04.html | 11 +++++
.../issueGH4494.php.testIssueGH4494_05.html | 11 +++++
.../issueGH4494.php.testIssueGH4494_06.html | 11 +++++
.../issueGH4494.php.testIssueGH4494_07.html | 11 +++++
.../editor/completion/PHPCCDocumentationTest.java | 33 ++++++++++++++
14 files changed, 178 insertions(+), 5 deletions(-)
diff --git a/ide/csl.api/nbproject/project.properties
b/ide/csl.api/nbproject/project.properties
index 217459ef0e..b25098a738 100644
--- a/ide/csl.api/nbproject/project.properties
+++ b/ide/csl.api/nbproject/project.properties
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
-spec.version.base=2.77.0
+spec.version.base=2.78.0
is.autoload=true
javac.source=1.8
diff --git
a/ide/csl.api/test/unit/src/org/netbeans/modules/csl/api/test/CslTestBase.java
b/ide/csl.api/test/unit/src/org/netbeans/modules/csl/api/test/CslTestBase.java
index 2c97bab489..6f5ab184b6 100644
---
a/ide/csl.api/test/unit/src/org/netbeans/modules/csl/api/test/CslTestBase.java
+++
b/ide/csl.api/test/unit/src/org/netbeans/modules/csl/api/test/CslTestBase.java
@@ -3062,8 +3062,12 @@ public abstract class CslTestBase extends NbTestCase {
}
public void checkCompletionDocumentation(final String file, final String
caretLine, final boolean includeModifiers, final String itemPrefix) throws
Exception {
+ checkCompletionDocumentation(file, caretLine, includeModifiers,
itemPrefix, QueryType.COMPLETION);
+ }
+
+ public void checkCompletionDocumentation(final String file, final String
caretLine, final boolean includeModifiers, final String itemPrefix, QueryType
queryType) throws Exception {
// TODO call TestCompilationInfo.setCaretOffset!
- final QueryType type = QueryType.COMPLETION;
+ final QueryType type = queryType;
final boolean caseSensitive = true;
Source testSource = getTestSource(getTestFile(file));
diff --git a/php/php.editor/nbproject/project.properties
b/php/php.editor/nbproject/project.properties
index a5f392a9b5..f1eae35b5d 100644
--- a/php/php.editor/nbproject/project.properties
+++ b/php/php.editor/nbproject/project.properties
@@ -18,7 +18,7 @@ javac.source=1.8
javac.compilerargs=-Xlint -Xlint:-serial
nbjavac.ignore.missing.enclosing=**/CUP$ASTPHP5Parser$actions.class
nbm.needs.restart=true
-spec.version.base=2.23.0
+spec.version.base=2.24.0
release.external/predefined_vars-1.0.zip=docs/predefined_vars.zip
sigtest.gen.fail.on.error=false
diff --git a/php/php.editor/nbproject/project.xml
b/php/php.editor/nbproject/project.xml
index e5d659e31a..f18d0044a2 100644
--- a/php/php.editor/nbproject/project.xml
+++ b/php/php.editor/nbproject/project.xml
@@ -84,7 +84,7 @@
<compile-dependency/>
<run-dependency>
<release-version>2</release-version>
- <specification-version>2.72</specification-version>
+ <specification-version>2.78</specification-version>
</run-dependency>
</dependency>
<dependency>
diff --git
a/php/php.editor/src/org/netbeans/modules/php/editor/completion/PHPCodeCompletion.java
b/php/php.editor/src/org/netbeans/modules/php/editor/completion/PHPCodeCompletion.java
index d01a10709c..a9a77c3604 100644
---
a/php/php.editor/src/org/netbeans/modules/php/editor/completion/PHPCodeCompletion.java
+++
b/php/php.editor/src/org/netbeans/modules/php/editor/completion/PHPCodeCompletion.java
@@ -330,7 +330,13 @@ public class PHPCodeCompletion implements
CodeCompletionHandler2 {
PHPCompletionItem.CompletionRequest request = new
PHPCompletionItem.CompletionRequest();
request.context = context;
- String prefix = getPrefix(info, caretOffset, true,
PrefixBreaker.WITH_NS_PARTS);
+ QueryType queryType = completionContext.getQueryType();
+ String prefix;
+ if (queryType == QueryType.DOCUMENTATION) { // GH-4494
+ prefix = getPrefix(info, caretOffset, false,
PrefixBreaker.WITH_NS_PARTS);
+ } else {
+ prefix = getPrefix(info, caretOffset, true,
PrefixBreaker.WITH_NS_PARTS);
+ }
if (prefix == null) {
return CodeCompletionResult.NONE;
}
diff --git
a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php
new file mode 100644
index 0000000000..f4e1c7f091
--- /dev/null
+++
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php
@@ -0,0 +1,53 @@
+<?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 gh4494().
+ *
+ * @return void
+ */
+function gh4494(): void {
+}
+
+/**
+ * function gh4494_aa().
+ *
+ * @return void
+ */
+function gh4494_aa(): void {
+}
+
+/**
+ * function gh4494_aa_bb().
+ *
+ * @return void
+ */
+function gh4494_aa_bbb(): void {
+}
+
+/**
+ * function gh4494_aa_bb_cc().
+ *
+ * @return void
+ */
+function gh4494_aa_bb_cc(): void {
+}
+
+gh4494_aa_bb_cc();
+gh4494_aa_bbb();
diff --git
a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_01.html
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_01.html
new file mode 100644
index 0000000000..daeaf4409d
--- /dev/null
+++
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_01.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh44|94_aa_bbb();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD gh4494_aa_bbb() [PUBLIC] issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font
size=-1></font></div><b>gh4494_aa_bbb</b><br/><br/>
+function gh4494_aa_bb().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git
a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_02.html
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_02.html
new file mode 100644
index 0000000000..74e6c82bfd
--- /dev/null
+++
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_02.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh4494_aa|_bbb();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD gh4494_aa_bbb() [PUBLIC] issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font
size=-1></font></div><b>gh4494_aa_bbb</b><br/><br/>
+function gh4494_aa_bb().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git
a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_03.html
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_03.html
new file mode 100644
index 0000000000..aa5ad8cfde
--- /dev/null
+++
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_03.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh4494_aa_b|bb();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD gh4494_aa_bbb() [PUBLIC] issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font
size=-1></font></div><b>gh4494_aa_bbb</b><br/><br/>
+function gh4494_aa_bb().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git
a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_04.html
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_04.html
new file mode 100644
index 0000000000..d63442af73
--- /dev/null
+++
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_04.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh4494|_aa_bb_cc();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD gh4494_aa_bb_cc() [PUBLIC] issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font
size=-1></font></div><b>gh4494_aa_bb_cc</b><br/><br/>
+function gh4494_aa_bb_cc().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git
a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_05.html
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_05.html
new file mode 100644
index 0000000000..21fe2ae4ff
--- /dev/null
+++
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_05.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh4494_aa|_bb_cc();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD gh4494_aa_bb_cc() [PUBLIC] issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font
size=-1></font></div><b>gh4494_aa_bb_cc</b><br/><br/>
+function gh4494_aa_bb_cc().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git
a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_06.html
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_06.html
new file mode 100644
index 0000000000..0a6703c552
--- /dev/null
+++
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_06.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh4494_aa_bb|_cc();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD gh4494_aa_bb_cc() [PUBLIC] issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font
size=-1></font></div><b>gh4494_aa_bb_cc</b><br/><br/>
+function gh4494_aa_bb_cc().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git
a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_07.html
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_07.html
new file mode 100644
index 0000000000..520b02d691
--- /dev/null
+++
b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_07.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh4494_aa_bb_cc|();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD gh4494_aa_bb_cc() [PUBLIC] issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font
size=-1></font></div><b>gh4494_aa_bb_cc</b><br/><br/>
+function gh4494_aa_bb_cc().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git
a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHPCCDocumentationTest.java
b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHPCCDocumentationTest.java
index 0bc08f6f6e..ab6a8b9bfa 100644
---
a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHPCCDocumentationTest.java
+++
b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHPCCDocumentationTest.java
@@ -23,6 +23,7 @@ import java.io.File;
import java.util.Collections;
import java.util.Map;
import org.netbeans.api.java.classpath.ClassPath;
+import org.netbeans.modules.csl.api.CodeCompletionHandler.QueryType;
import org.netbeans.modules.php.project.api.PhpSourcePath;
import org.netbeans.spi.java.classpath.support.ClassPathSupport;
import org.openide.filesystems.FileObject;
@@ -291,6 +292,34 @@ public class PHPCCDocumentationTest extends
PHPCodeCompletionTestBase {
checkCompletionDocumentation("testfiles/completion/documentation/issueGH5426.php",
" $this->testMetho^d(null);", false, "");
}
+ public void testIssueGH4494_01() throws Exception {
+
checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php",
"gh44^94_aa_bbb();");
+ }
+
+ public void testIssueGH4494_02() throws Exception {
+
checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php",
"gh4494_aa^_bbb();");
+ }
+
+ public void testIssueGH4494_03() throws Exception {
+
checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php",
"gh4494_aa_b^bb();");
+ }
+
+ public void testIssueGH4494_04() throws Exception {
+
checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php",
"gh4494^_aa_bb_cc();");
+ }
+
+ public void testIssueGH4494_05() throws Exception {
+
checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php",
"gh4494_aa^_bb_cc();");
+ }
+
+ public void testIssueGH4494_06() throws Exception {
+
checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php",
"gh4494_aa_bb^_cc();");
+ }
+
+ public void testIssueGH4494_07() throws Exception {
+
checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php",
"gh4494_aa_bb_cc^();");
+ }
+
@Override
protected String alterDocumentationForTest(String documentation) {
int start = documentation.indexOf("file:");
@@ -316,6 +345,10 @@ public class PHPCCDocumentationTest extends
PHPCodeCompletionTestBase {
}
}
+ private void checkCompletionOnlyDocumentation(String filePath, String
caretLine) throws Exception {
+ checkCompletionDocumentation(filePath, caretLine, false, "",
QueryType.DOCUMENTATION);
+ }
+
@Override
protected Map<String, ClassPath> createClassPathsForTest() {
return Collections.singletonMap(
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists