10
10
import com .intellij .openapi .command .WriteCommandAction ;
11
11
import com .intellij .openapi .project .Project ;
12
12
import com .intellij .openapi .ui .DialogBuilder ;
13
+ import com .intellij .psi .codeStyle .CodeStyleManager ;
13
14
import com .intellij .psi .PsiElement ;
14
15
import com .jetbrains .php .lang .psi .PhpPsiElementFactory ;
15
16
import com .jetbrains .php .lang .psi .elements .PhpClass ;
@@ -36,10 +37,16 @@ public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descri
36
37
DialogBuilder dialogBox = createDialogBox (expectedInterfaceDropdown , project );
37
38
if (dialogBox .showAndGet ()) {
38
39
String getSelectedInterface = expectedInterfaceDropdown .getSelectedItem ().toString ();
39
- PsiElement correctInterface = PhpPsiElementFactory .createImplementsList (project , getSelectedInterface );
40
- PhpClass graphQlResolverClass = (PhpClass ) descriptor .getPsiElement ().getParent ();
41
- WriteCommandAction .writeCommandAction (project ).run (() -> {
42
- graphQlResolverClass .getImplementsList ().replace (correctInterface );
40
+ final PsiElement erroredElement = descriptor .getPsiElement ();
41
+ final PsiElement correctInterface = PhpPsiElementFactory .createImplementsList (project , getSelectedInterface );
42
+ final PhpClass graphQlResolverClass = (PhpClass ) erroredElement .getParent ();
43
+ String [] implementedInterfaceNames = graphQlResolverClass .getInterfaceNames ();
44
+ WriteCommandAction .runWriteCommandAction (project , () -> {
45
+ if (implementedInterfaceNames .length == 0 ) {
46
+ graphQlResolverClass .getImplementsList ().addAfter (correctInterface , erroredElement );
47
+ } else {
48
+ graphQlResolverClass .getImplementsList ().replace (correctInterface );
49
+ }
43
50
});
44
51
}
45
52
}
0 commit comments