Skip to content

Commit c9a3884

Browse files
authored
Merge branch 'main-v2' into metalsv2/supress-warnings
2 parents f79fc10 + b81a355 commit c9a3884

7 files changed

Lines changed: 55 additions & 4 deletions

File tree

metals/src/main/scala/scala/meta/internal/builds/MavenBuildTool.scala

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,17 @@ case class MavenBuildTool(
116116
phase,
117117
"-DskipTests",
118118
"-Denforcer.skip=true",
119+
"-Dcheckstyle.skip=true",
120+
"-Dspotbugs.skip=true",
121+
"-Drat.skip=true",
122+
"-Dpmd.skip=true",
123+
"-Dmaven.javadoc.skip=true",
124+
"-Dspring-javaformat.skip=true",
125+
"-Dspotless.check.skip=true",
126+
"-Djacoco.skip=true",
127+
"-Dsonar.skip=true",
128+
"-Ddependency-check.skip=true",
129+
"-Dgpg.skip=true",
119130
)
120131
}
121132

mtags-java/src/main/scala/scala/meta/internal/jpc/JavaDefinitionProvider.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ class JavaDefinitionProvider(
318318
}
319319

320320
if (startPos >= 0 && endPos >= 0) {
321-
val elementName = targetElement.getSimpleName().toString()
321+
val elementName = compiler.sourceName(targetElement)
322322
val (start, end) = compiler.findIndentifierStartAndEnd(
323323
params.text(),
324324
elementName,

mtags-java/src/main/scala/scala/meta/internal/jpc/JavaMetalsCompiler.scala

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import java.nio.file.Path
88
import java.util.concurrent.ScheduledExecutorService
99
import java.{util => ju}
1010
import javax.lang.model.element.Element
11+
import javax.lang.model.element.ElementKind
1112
import javax.lang.model.element.ExecutableElement
1213
import javax.lang.model.element.TypeElement
1314
import javax.tools.JavaCompiler
@@ -244,6 +245,17 @@ class JavaMetalsCompiler(
244245
* @param originalStart
245246
* @param originalEnd
246247
*/
248+
/**
249+
* The name of the element as it appears in source. For constructors
250+
* `getSimpleName` returns the internal `<init>`, so we fall back to the
251+
* enclosing type's name, which is what is actually written in the source.
252+
*/
253+
def sourceName(element: Element): String =
254+
if (element.getKind() == ElementKind.CONSTRUCTOR)
255+
element.getEnclosingElement().getSimpleName().toString()
256+
else
257+
element.getSimpleName().toString()
258+
247259
def findIndentifierStartAndEnd(
248260
text: String,
249261
elementName: String,

mtags-java/src/main/scala/scala/meta/internal/jpc/JavaRenameProvider.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class JavaRenameProvider(
6565
sourcePositions.getEndPosition(compile.cu, treePath.getLeaf())
6666
val (realStart, realEnd) = compiler.findIndentifierStartAndEnd(
6767
params.text(),
68-
element.getSimpleName().toString(),
68+
compiler.sourceName(element),
6969
start.toInt,
7070
end.toInt,
7171
treePath.getLeaf(),

mtags-java/src/main/scala/scala/meta/internal/jpc/ReferenceScanner.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ abstract class ReferenceScanner[T](
3737
val treeEnd = sourcePositions.getEndPosition(root, tree)
3838
if (treeStart >= 0 && treeEnd >= 0) {
3939
// Extract just the name position from the full tree range
40-
val elementName = element.getSimpleName().toString()
40+
val elementName = compiler.sourceName(element)
4141

4242
// Find the name as a complete identifier, not as a substring
4343
val (start, end) = compiler.findIndentifierStartAndEnd(

tests/javapc/src/test/scala/highlight/JavaDocumentHighlightSuite.scala

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,30 @@ class JavaDocumentHighlightSuite extends BaseJavaPCSuite with RangeReplace {
232232
|""".stripMargin,
233233
)
234234

235+
check(
236+
"constructor-name-def",
237+
"""|class Foo {
238+
| public <<F@@oo>>() {}
239+
| public static Foo create() {
240+
| return new <<Foo>>();
241+
| }
242+
|}
243+
|""".stripMargin,
244+
)
245+
246+
// Clicking on `new Foo()` resolves to the type `Foo`, so all type
247+
// occurrences are highlighted (not just the constructor).
248+
check(
249+
"constructor-name-usage",
250+
"""|class <<Foo>> {
251+
| public Foo() {}
252+
| public static <<Foo>> create() {
253+
| return new <<F@@oo>>();
254+
| }
255+
|}
256+
|""".stripMargin,
257+
)
258+
235259
check(
236260
"this-reference",
237261
"""|class Foo {

tests/unit/src/test/scala/tests/MavenBuildToolSuite.scala

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,11 @@ class MavenBuildToolSuite extends BaseSuite {
6161
mavenBuildTool(workspace).mbtCompileCommand(workspace, target),
6262
List(
6363
"mvn", "-q", "-P", "dev,ci", "-pl", ":app", "--also-make", "install",
64-
"-DskipTests", "-Denforcer.skip=true",
64+
"-DskipTests", "-Denforcer.skip=true", "-Dcheckstyle.skip=true",
65+
"-Dspotbugs.skip=true", "-Drat.skip=true", "-Dpmd.skip=true",
66+
"-Dmaven.javadoc.skip=true", "-Dspring-javaformat.skip=true",
67+
"-Dspotless.check.skip=true", "-Djacoco.skip=true", "-Dsonar.skip=true",
68+
"-Ddependency-check.skip=true", "-Dgpg.skip=true",
6569
),
6670
)
6771
}

0 commit comments

Comments
 (0)