User: rednesto Date: 12 Aug 24 20:04 Revision: 7d574f576686eaaa5d8b6c629908e2910092eb0a Summary: Move TomlKeyInsertionHandler to correct package TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=9604&personal=false Index: src/main/kotlin/toml/TomlKeyInsertionHandler.kt =================================================================== --- src/main/kotlin/toml/TomlKeyInsertionHandler.kt (revision 7d574f576686eaaa5d8b6c629908e2910092eb0a) +++ src/main/kotlin/toml/TomlKeyInsertionHandler.kt (revision 7d574f576686eaaa5d8b6c629908e2910092eb0a) @@ -0,0 +1,43 @@ +/* + * Minecraft Development for IntelliJ + * + * https://mcdev.io/ + * + * Copyright (C) 2024 minecraft-dev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, version 3.0 only. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +package com.demonwav.mcdev.toml + +import com.intellij.codeInsight.AutoPopupController +import com.intellij.codeInsight.completion.InsertHandler +import com.intellij.codeInsight.completion.InsertionContext +import com.intellij.codeInsight.lookup.LookupElement +import com.intellij.psi.PsiDocumentManager +import org.toml.lang.psi.TomlElementTypes +import org.toml.lang.psi.TomlKeyValue +import org.toml.lang.psi.ext.elementType + +/** Inserts `=` after the completed key if missing and invokes the completion popup for the value automatically */ +class TomlKeyInsertionHandler(private val keyValue: TomlKeyValue) : InsertHandler { + override fun handleInsert(context: InsertionContext, item: LookupElement) { + val hasEq = keyValue.children.any { it.elementType == TomlElementTypes.EQ } + if (!hasEq) { + context.document.insertString(context.tailOffset, " = ") + PsiDocumentManager.getInstance(context.project).commitDocument(context.document) + context.editor.caretModel.moveToOffset(context.tailOffset) // The tail offset is tracked automatically + AutoPopupController.getInstance(context.project).scheduleAutoPopup(context.editor) + } + } +} Index: src/main/kotlin/toml/platform/forge/completion/ModsTomlCompletionContributor.kt =================================================================== --- src/main/kotlin/toml/platform/forge/completion/ModsTomlCompletionContributor.kt (revision dfdc8cf549f616ccb085e34c7d5329db426f7d23) +++ src/main/kotlin/toml/platform/forge/completion/ModsTomlCompletionContributor.kt (revision 7d574f576686eaaa5d8b6c629908e2910092eb0a) @@ -21,12 +21,12 @@ package com.demonwav.mcdev.toml.platform.forge.completion import com.demonwav.mcdev.platform.forge.util.ForgeConstants +import com.demonwav.mcdev.toml.TomlKeyInsertionHandler import com.demonwav.mcdev.toml.TomlSchemaEntry import com.demonwav.mcdev.toml.TomlStringValueInsertionHandler import com.demonwav.mcdev.toml.inModsTomlKey import com.demonwav.mcdev.toml.inModsTomlValueWithKey import com.demonwav.mcdev.toml.platform.forge.ModsTomlSchema -import com.demonwav.mcdev.toml.toml.TomlKeyInsertionHandler import com.demonwav.mcdev.util.isAncestorOf import com.intellij.codeInsight.completion.CompletionContributor import com.intellij.codeInsight.completion.CompletionParameters Index: src/main/kotlin/toml/toml/TomlKeyInsertionHandler.kt =================================================================== --- src/main/kotlin/toml/toml/TomlKeyInsertionHandler.kt (revision dfdc8cf549f616ccb085e34c7d5329db426f7d23) +++ src/main/kotlin/toml/toml/TomlKeyInsertionHandler.kt (revision dfdc8cf549f616ccb085e34c7d5329db426f7d23) @@ -1,43 +0,0 @@ -/* - * Minecraft Development for IntelliJ - * - * https://mcdev.io/ - * - * Copyright (C) 2024 minecraft-dev - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, version 3.0 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - */ - -package com.demonwav.mcdev.toml.toml - -import com.intellij.codeInsight.AutoPopupController -import com.intellij.codeInsight.completion.InsertHandler -import com.intellij.codeInsight.completion.InsertionContext -import com.intellij.codeInsight.lookup.LookupElement -import com.intellij.psi.PsiDocumentManager -import org.toml.lang.psi.TomlElementTypes -import org.toml.lang.psi.TomlKeyValue -import org.toml.lang.psi.ext.elementType - -/** Inserts `=` after the completed key if missing and invokes the completion popup for the value automatically */ -class TomlKeyInsertionHandler(private val keyValue: TomlKeyValue) : InsertHandler { - override fun handleInsert(context: InsertionContext, item: LookupElement) { - val hasEq = keyValue.children.any { it.elementType == TomlElementTypes.EQ } - if (!hasEq) { - context.document.insertString(context.tailOffset, " = ") - PsiDocumentManager.getInstance(context.project).commitDocument(context.document) - context.editor.caretModel.moveToOffset(context.tailOffset) // The tail offset is tracked automatically - AutoPopupController.getInstance(context.project).scheduleAutoPopup(context.editor) - } - } -}