Skip to content

Commit 3d708a9

Browse files
committed
cleanup code
1 parent e7f4d43 commit 3d708a9

2 files changed

Lines changed: 28 additions & 25 deletions

File tree

src/main/kotlin/platform/bukkit/completion/BukkitEventHandlerCompletionProvider.kt

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package com.demonwav.mcdev.platform.bukkit.completion
22

3+
import com.demonwav.mcdev.platform.bukkit.util.BukkitConstants
4+
import com.demonwav.mcdev.util.findContainingClass
5+
import com.demonwav.mcdev.util.findContainingMethod
36
import com.intellij.codeInsight.completion.CompletionParameters
47
import com.intellij.codeInsight.completion.CompletionProvider
58
import com.intellij.codeInsight.completion.CompletionResultSet
@@ -18,30 +21,33 @@ import com.intellij.util.ProcessingContext
1821
import org.jetbrains.annotations.NotNull
1922

2023
class BukkitEventHandlerCompletionProvider : CompletionProvider<CompletionParameters>() {
21-
companion object {
22-
const val EVENT_LISTENER = "org.bukkit.event.Listener"
23-
private const val BUKKIT_EVENT_FQN = "org.bukkit.event.Event"
24-
}
2524

2625
override fun addCompletions(
27-
@NotNull completionParameters: CompletionParameters,
28-
@NotNull processingContext: ProcessingContext,
29-
@NotNull completionResultSet: CompletionResultSet
26+
completionParameters: CompletionParameters,
27+
processingContext: ProcessingContext,
28+
completionResultSet: CompletionResultSet
3029
) {
3130
val prefix = completionResultSet.prefixMatcher.prefix
32-
if (!prefix.startsWith("on") || prefix.length == 2) return
31+
if (!prefix.startsWith("on") || prefix.length == 2) {
32+
return
33+
}
3334

3435
val position = completionParameters.position
35-
val containingClass = PsiTreeUtil.getParentOfType(position, PsiClass::class.java) ?: return
36+
val containingClass = position.findContainingClass() ?: return
3637
val project: Project = position.project
37-
val facade = JavaPsiFacadeEx.getInstanceEx(project)
38+
val facade = JavaPsiFacadeEx.getInstance(project)
39+
40+
val eventListenerClass = facade.findClass(BukkitConstants.LISTENER_CLASS, GlobalSearchScope.allScope(project)) ?: return
41+
if (!containingClass.isInheritor(eventListenerClass, true)) {
42+
return
43+
}
3844

39-
val eventListenerClass = facade.findClass(EVENT_LISTENER, GlobalSearchScope.allScope(project)) ?: return
40-
if (!containingClass.isInheritor(eventListenerClass, true)) return
41-
if (PsiTreeUtil.getParentOfType(position, PsiMethod::class.java) != null) return
45+
if (position.findContainingMethod() != null) {
46+
return
47+
}
4248

4349
val scope = GlobalSearchScope.allScope(project)
44-
val eventBaseClass = facade.findClass(BUKKIT_EVENT_FQN, scope) ?: return
50+
val eventBaseClass = facade.findClass(BukkitConstants.EVENT_CLASS, scope) ?: return
4551

4652
val eventNameFilter = prefix.substring(2).lowercase()
4753

@@ -57,7 +63,7 @@ class BukkitEventHandlerCompletionProvider : CompletionProvider<CompletionParame
5763
}
5864

5965
val lookupString = "on$eventSimpleName"
60-
val methodName = lookupString.replace("Event", "")
66+
val methodName = lookupString.removeSuffix("Event")
6167
val qualifiedName = psiClass.qualifiedName
6268

6369
val element = LookupElementBuilder

src/main/kotlin/platform/bukkit/completion/BukkitEventHandlerInsertHandler.kt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.demonwav.mcdev.platform.bukkit.completion
22

3+
import com.demonwav.mcdev.platform.bukkit.util.BukkitConstants
34
import com.intellij.codeInsight.completion.InsertHandler
45
import com.intellij.codeInsight.completion.InsertionContext
56
import com.intellij.codeInsight.lookup.LookupElement
@@ -13,19 +14,15 @@ class BukkitEventHandlerInsertHandler(
1314
private val qualifiedName: @NlsSafe String?
1415
) : InsertHandler<LookupElement> {
1516

16-
companion object {
17-
private const val EVENT_HANDLER_FQN = "org.bukkit.event.EventHandler"
18-
}
19-
20-
override fun handleInsert(@NotNull insertionContext: InsertionContext, @NotNull lookupElement: LookupElement) {
17+
override fun handleInsert(insertionContext: InsertionContext, lookupElement: LookupElement) {
2118
val project = insertionContext.project
2219
val editor = insertionContext.editor
2320

2421
val templateManager = TemplateManager.getInstance(project)
2522
val template = templateManager.createTemplate("", "")
2623
template.isToReformat = true
2724

28-
template.addTextSegment("@${EVENT_HANDLER_FQN}\n")
25+
template.addTextSegment("@${BukkitConstants.HANDLER_ANNOTATION}\n")
2926
template.addTextSegment("public void ")
3027
template.addVariable("METHOD_NAME", TextExpression(methodName), true)
3128
template.addTextSegment("($qualifiedName ")
@@ -34,10 +31,10 @@ class BukkitEventHandlerInsertHandler(
3431
template.addEndVariable()
3532
template.addTextSegment("\n}")
3633

37-
insertionContext.getDocument().deleteString(
38-
insertionContext.getStartOffset(),
39-
insertionContext.getTailOffset()
40-
);
34+
insertionContext.document.deleteString(
35+
insertionContext.startOffset,
36+
insertionContext.tailOffset
37+
)
4138

4239
templateManager.startTemplate(editor, template)
4340

0 commit comments

Comments
 (0)