From bef9f82cb78131148dcf9ebe21080c3d518f86e6 Mon Sep 17 00:00:00 2001 From: kechinvv Date: Thu, 20 Feb 2025 20:11:36 +0300 Subject: [PATCH] platformVersion = 2024.1 pluginUntilBuild = 253.* --- gradle.properties | 7 +++--- .../language/LibSLParserDefinition.java | 9 +------- .../language/LslParserAdaptor.java | 22 +++++++++++++++++++ .../libslpluginij/project/LslPanel.kt | 9 ++++---- .../storage/ActionHolderConverter.kt | 8 +++---- 5 files changed, 35 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/github/kechinvv/libslpluginij/language/LslParserAdaptor.java diff --git a/gradle.properties b/gradle.properties index 9a7c77a..a975912 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,15 +8,16 @@ pluginVersion = 0.1.1 # Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html pluginSinceBuild = 223 -pluginUntilBuild = 251.* +pluginUntilBuild = 253.* # IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension platformType = IC -platformVersion = 2024.3.3 +platformVersion = 2024.1 # Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html # Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22 -platformPlugins = com.intellij.java, PsiViewer:243.7768 +platformPlugins = com.intellij.java +#platformPlugins = com.intellij.java, PsiViewer:243.7768 # Gradle Releases -> https://github.com/gradle/gradle/releases gradleVersion = 8.5 diff --git a/src/main/java/com/github/kechinvv/libslpluginij/language/LibSLParserDefinition.java b/src/main/java/com/github/kechinvv/libslpluginij/language/LibSLParserDefinition.java index 8544ca8..b5b829a 100644 --- a/src/main/java/com/github/kechinvv/libslpluginij/language/LibSLParserDefinition.java +++ b/src/main/java/com/github/kechinvv/libslpluginij/language/LibSLParserDefinition.java @@ -74,14 +74,7 @@ public Lexer createLexer(Project project) { @NotNull public PsiParser createParser(final Project project) { final LibSLParser parser = new LibSLParser(null); - return new ANTLRParserAdaptor(LibSL.INSTANCE, parser) { - @Override - protected ParseTree parse(Parser parser, IElementType root) { - if (root instanceof IFileElementType) { - return ((LibSLParser) parser).file(); - } else throw new UnsupportedOperationException("Wrong Lsl file structure"); - } - }; + return new LslParserAdaptor(LibSL.INSTANCE, parser); } /** diff --git a/src/main/java/com/github/kechinvv/libslpluginij/language/LslParserAdaptor.java b/src/main/java/com/github/kechinvv/libslpluginij/language/LslParserAdaptor.java new file mode 100644 index 0000000..0ef96f9 --- /dev/null +++ b/src/main/java/com/github/kechinvv/libslpluginij/language/LslParserAdaptor.java @@ -0,0 +1,22 @@ +package com.github.kechinvv.libslpluginij.language; + +import com.github.kechinvv.libslpluginij.antlr.LibSLParser; +import com.intellij.lang.Language; +import com.intellij.psi.tree.IElementType; +import com.intellij.psi.tree.IFileElementType; +import org.antlr.intellij.adaptor.parser.ANTLRParserAdaptor; +import org.antlr.v4.runtime.Parser; +import org.antlr.v4.runtime.tree.ParseTree; + +public class LslParserAdaptor extends ANTLRParserAdaptor { + public LslParserAdaptor(Language language, Parser parser) { + super(language, parser); + } + + @Override + protected ParseTree parse(Parser parser, IElementType root) { + if (root instanceof IFileElementType) { + return ((LibSLParser) parser).file(); + } else throw new UnsupportedOperationException("Wrong Lsl file structure"); + } +} diff --git a/src/main/kotlin/com/github/kechinvv/libslpluginij/project/LslPanel.kt b/src/main/kotlin/com/github/kechinvv/libslpluginij/project/LslPanel.kt index cf8d8e1..f67d86c 100644 --- a/src/main/kotlin/com/github/kechinvv/libslpluginij/project/LslPanel.kt +++ b/src/main/kotlin/com/github/kechinvv/libslpluginij/project/LslPanel.kt @@ -166,14 +166,13 @@ class LslPanel(val context: LslContext) : ModuleWizardStep() { wizardContext: WizardContext ): Cell { //TODO: what happened with file choose descriptor? -// val fileChooserDescriptor = -// FileChooserDescriptorFactory.createSingleLocalFileDescriptor().withFileFilter { it.isDirectory } - val fileChosen = { file: VirtualFile -> getPresentablePath(file.path) } val title = IdeBundle.message("title.select.project.file.directory", wizardContext.presentationName) + val fileChooserDescriptor = + FileChooserDescriptorFactory.createSingleLocalFileDescriptor().withFileFilter { it.isDirectory } + val fileChosen = { file: VirtualFile -> getPresentablePath(file.path) } val property = locationProperty.transform(::getPresentablePath, ::getCanonicalPath) - return this.textFieldWithBrowseButton(title, wizardContext.project, fileChosen) + return textFieldWithBrowseButton(title, wizardContext.project, fileChooserDescriptor, fileChosen) .bindText(property) - } private fun getLocationComment(): @Nls String { diff --git a/src/main/kotlin/com/github/kechinvv/libslpluginij/storage/ActionHolderConverter.kt b/src/main/kotlin/com/github/kechinvv/libslpluginij/storage/ActionHolderConverter.kt index 9d6e928..0029b29 100644 --- a/src/main/kotlin/com/github/kechinvv/libslpluginij/storage/ActionHolderConverter.kt +++ b/src/main/kotlin/com/github/kechinvv/libslpluginij/storage/ActionHolderConverter.kt @@ -5,11 +5,11 @@ import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json class ActionHolderConverter : Converter>() { - override fun toString(actions: Map): String { - return Json.encodeToString(actions) + override fun toString(value: Map): String { + return Json.encodeToString(value) } - override fun fromString(actions: String): Map { - return Json.decodeFromString(actions) ?: emptyMap() + override fun fromString(value: String): Map { + return Json.decodeFromString(value) ?: emptyMap() } } \ No newline at end of file