Skip to content

Commit a1ec88a

Browse files
committed
Replace kotlin reference contributor written in kotlin with one in java
There is some breaking change in Kotlin that causes the kotlin code to throw an exception when used in earlier IntelliJ versions
1 parent 9c7629c commit a1ec88a

File tree

4 files changed

+45
-38
lines changed

4 files changed

+45
-38
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# https://www.jetbrains.com/intellij-repository/releases
33
# https://www.jetbrains.com/intellij-repository/snapshots
44

5-
ideaVersion = 2020.3.3
5+
ideaVersion = 2019.1
66
ideaType = IC
77
sources = true
88
isEAP = false

src/main/java/org/mapstruct/intellij/codeinsight/references/KtMapstructReferenceContributor.kt

Lines changed: 0 additions & 36 deletions
This file was deleted.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* Copyright MapStruct Authors.
3+
*
4+
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
5+
*/
6+
package org.mapstruct.intellij.codeinsight.references;
7+
8+
import com.intellij.psi.PsiReferenceContributor;
9+
import com.intellij.psi.PsiReferenceRegistrar;
10+
import org.jetbrains.annotations.NotNull;
11+
12+
import static org.mapstruct.intellij.util.MapstructKotlinElementUtils.mappingElementPattern;
13+
import static org.mapstruct.intellij.util.MapstructKotlinElementUtils.valueMappingElementPattern;
14+
15+
/**
16+
* {@link PsiReferenceContributor} for MapStruct annotations in Kotlin code.
17+
*
18+
* @author Frank Wang
19+
* @author Filip Hrisafov
20+
*/
21+
public class MapstructKotlinReferenceContributor extends PsiReferenceContributor {
22+
23+
@Override
24+
public void registerReferenceProviders(@NotNull PsiReferenceRegistrar registrar) {
25+
registrar.registerReferenceProvider(
26+
mappingElementPattern( "target" ),
27+
new MappingTargetReferenceProvider( MapstructTargetReference::create )
28+
);
29+
registrar.registerReferenceProvider(
30+
mappingElementPattern( "source" ),
31+
new MappingTargetReferenceProvider( MapstructSourceReference::create )
32+
);
33+
registrar.registerReferenceProvider(
34+
valueMappingElementPattern( "target" ),
35+
new MappingTargetReferenceProvider( ValueMappingSourceReference::create )
36+
);
37+
registrar.registerReferenceProvider(
38+
valueMappingElementPattern( "source" ),
39+
new MappingTargetReferenceProvider( ValueMappingTargetReference::create )
40+
);
41+
}
42+
43+
}

src/main/resources/META-INF/withKotlin.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
-->
88
<idea-plugin>
99
<extensions defaultExtensionNs="com.intellij">
10-
<psi.referenceContributor language="kotlin" implementation="org.mapstruct.intellij.codeinsight.references.KtMapstructReferenceContributor" />
10+
<psi.referenceContributor language="kotlin" implementation="org.mapstruct.intellij.codeinsight.references.MapstructKotlinReferenceContributor" />
1111
</extensions>
1212
</idea-plugin>

0 commit comments

Comments
 (0)