From a6b2d3fc06857b2f83b8f4521c80343143056556 Mon Sep 17 00:00:00 2001 From: Felipe Teixeira Date: Thu, 10 Oct 2024 21:39:09 -0300 Subject: [PATCH 1/3] fix: do not import java keywords and primitive types when overriding parent class methods --- .../java/actions/generators/OverrideSuperclassMethodsAction.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/actions/generators/OverrideSuperclassMethodsAction.kt b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/actions/generators/OverrideSuperclassMethodsAction.kt index f4b8657c59..cd844b8578 100644 --- a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/actions/generators/OverrideSuperclassMethodsAction.kt +++ b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/actions/generators/OverrideSuperclassMethodsAction.kt @@ -42,6 +42,7 @@ import com.itsaky.androidide.projects.IProjectManager import com.itsaky.androidide.resources.R import com.itsaky.androidide.utils.flashError import io.github.rosemoe.sora.widget.CodeEditor +import jdkx.lang.model.SourceVersion import jdkx.lang.model.element.ElementKind import jdkx.lang.model.element.ExecutableElement import jdkx.lang.model.element.Modifier @@ -249,7 +250,7 @@ class OverrideSuperclassMethodsAction : BaseJavaCodeAction() { sb.append("\n") newImports.removeIf { - it.startsWith("java.lang.") || it.startsWith(filePackage) || fileImports.contains(it) + it.startsWith("java.lang.") || it.startsWith(filePackage) || SourceVersion.isKeyword(it) || fileImports.contains(it) } imports.addAll(newImports) From c6bbfce8989e5771b179d502fbba7fee3171e16e Mon Sep 17 00:00:00 2001 From: Felipe Teixeira Date: Tue, 15 Oct 2024 12:29:22 -0300 Subject: [PATCH 2/3] fix: do not add duplicate Override annotation when overriding a method --- .../com/itsaky/androidide/lsp/java/utils/JavaParserUtils.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/utils/JavaParserUtils.kt b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/utils/JavaParserUtils.kt index 7f0c5c83fb..edcfc8a3cd 100644 --- a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/utils/JavaParserUtils.kt +++ b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/utils/JavaParserUtils.kt @@ -194,7 +194,11 @@ object JavaParserUtils { methodDeclaration: MethodDeclaration, method: ExecutableElement, ) { - methodDeclaration.addMarkerAnnotation(Override::class.java) + val overrideAnnotation = methodDeclaration.getAnnotationByClass(Override::class.java) + if (!overrideAnnotation.isPresend) { + methodDeclaration.addMarkerAnnotation(Override::class.java) + } + val recentlyNonNull = methodDeclaration.getAnnotationByName("RecentlyNonNull") if (recentlyNonNull.isPresent) { methodDeclaration.remove(recentlyNonNull.get()) From 03beee03a9839c8b43cca3933b23212d742aecaf Mon Sep 17 00:00:00 2001 From: Felipe Teixeira Date: Tue, 15 Oct 2024 12:41:03 -0300 Subject: [PATCH 3/3] fix: name isPresend to isPresent --- .../com/itsaky/androidide/lsp/java/utils/JavaParserUtils.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/utils/JavaParserUtils.kt b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/utils/JavaParserUtils.kt index edcfc8a3cd..454761a661 100644 --- a/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/utils/JavaParserUtils.kt +++ b/java/lsp/src/main/java/com/itsaky/androidide/lsp/java/utils/JavaParserUtils.kt @@ -195,7 +195,7 @@ object JavaParserUtils { method: ExecutableElement, ) { val overrideAnnotation = methodDeclaration.getAnnotationByClass(Override::class.java) - if (!overrideAnnotation.isPresend) { + if (!overrideAnnotation.isPresent) { methodDeclaration.addMarkerAnnotation(Override::class.java) }