Skip to content

Commit f8e9e4f

Browse files
committed
cleanup code
1 parent e7f4d43 commit f8e9e4f

2 files changed

Lines changed: 29 additions & 27 deletions

File tree

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

Lines changed: 22 additions & 17 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,31 +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 project: Project = position.project
37-
val facade = JavaPsiFacadeEx.getInstanceEx(project)
36+
val containingClass = position.findContainingClass() ?: return
37+
val project = position.project
38+
val facade = JavaPsiFacadeEx.getInstance(project)
3839

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
40+
val eventListenerClass = facade.findClass(BukkitConstants.LISTENER_CLASS, GlobalSearchScope.allScope(project)) ?: return
41+
if (!containingClass.isInheritor(eventListenerClass, true)) {
42+
return
43+
}
4244

43-
val scope = GlobalSearchScope.allScope(project)
44-
val eventBaseClass = facade.findClass(BUKKIT_EVENT_FQN, scope) ?: return
45+
if (position.findContainingMethod() != null) {
46+
return
47+
}
4548

49+
val scope = GlobalSearchScope.allScope(project)
50+
val eventBaseClass = facade.findClass(BukkitConstants.EVENT_CLASS, scope) ?: return
4651
val eventNameFilter = prefix.substring(2).lowercase()
4752

4853
ClassInheritorsSearch.search(eventBaseClass, scope, true)
@@ -57,7 +62,7 @@ class BukkitEventHandlerCompletionProvider : CompletionProvider<CompletionParame
5762
}
5863

5964
val lookupString = "on$eventSimpleName"
60-
val methodName = lookupString.replace("Event", "")
65+
val methodName = lookupString.removeSuffix("Event")
6166
val qualifiedName = psiClass.qualifiedName
6267

6368
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)