From f445b9e2208b0650303678ecd261d1ebacef5d3a Mon Sep 17 00:00:00 2001 From: Chris Moran Date: Tue, 14 Feb 2023 04:45:48 -0500 Subject: [PATCH 1/4] lenient yaml parsing --- .../providers/yaml/YamlEnvFileParser.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/modules/core/src/main/java/net/ashald/envfile/providers/yaml/YamlEnvFileParser.java b/modules/core/src/main/java/net/ashald/envfile/providers/yaml/YamlEnvFileParser.java index 799b8d3..cebe904 100644 --- a/modules/core/src/main/java/net/ashald/envfile/providers/yaml/YamlEnvFileParser.java +++ b/modules/core/src/main/java/net/ashald/envfile/providers/yaml/YamlEnvFileParser.java @@ -4,7 +4,9 @@ import net.ashald.envfile.providers.EnvFileParser; import org.yaml.snakeyaml.Yaml; +import java.util.LinkedHashMap; import java.util.Map; +import java.util.Set; @AllArgsConstructor public class YamlEnvFileParser implements EnvFileParser { @@ -12,6 +14,18 @@ public class YamlEnvFileParser implements EnvFileParser { @Override public Map parse(String content) { - return yaml.load(content); + Map value = yaml.load(content); + Set keys = value.keySet(); + Map result = new LinkedHashMap<>(); + for (String key : keys) { + Object v = value.get(key); + if (v != null && v.getClass().equals(String.class)) { + result.put(key, (String) v); + } else { + String stringValue = String.valueOf(v); + result.put(key, stringValue); + } + } + return result; } } From f8334be59f48e6c6fac0c5ab760b903ba3f84aed Mon Sep 17 00:00:00 2001 From: Chris Moran Date: Thu, 12 Sep 2024 04:53:59 -0400 Subject: [PATCH 2/4] chore: upgrading ide versions --- build.gradle | 14 +++++++------- src/main/resources/META-INF/plugin.xml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 95d853a..559b21c 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ scmVersion { allprojects { apply plugin: 'java' sourceCompatibility = 1.8 - targetCompatibility = 1.8 + targetCompatibility = 1.17 repositories { mavenCentral() @@ -25,11 +25,11 @@ allprojects { project.version = scmVersion.version ext.jetbrains = [ - version : "2022.2", - pycharm : "PythonCore:222.3345.40", - rubymine: "org.jetbrains.plugins.ruby:222.3345.16", - goland : "org.jetbrains.plugins.go:222.3345.90", - scala : "org.intellij.scala:2022.2.3" + version : "2024.2.1", + pycharm : "PythonCore:242.21829.142", + rubymine: "org.jetbrains.plugins.ruby:242.21829.142", + goland : "org.jetbrains.plugins.go:242.21829.142", + scala : "org.intellij.scala:2024.2.25" ] } @@ -65,4 +65,4 @@ tasks { sinceBuild.set("201") } -} \ No newline at end of file +} diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index 224ed46..ae8f259 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -1,7 +1,7 @@ net.ashald.envfile EnvFile - 3.4.1 + 3.4.3 Borys Pierov Date: Mon, 8 Dec 2025 12:40:20 -0500 Subject: [PATCH 3/4] chore: upgrading ide versions --- build.gradle | 4 ++-- src/main/resources/META-INF/plugin.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 559b21c..c5f4bc6 100644 --- a/build.gradle +++ b/build.gradle @@ -62,7 +62,7 @@ runIde.ideDir = java.util.Optional.ofNullable(System.getenv("IDE")).map(File::n tasks { patchPluginXml { - sinceBuild.set("201") + sinceBuild.set("242") + untilBuild.set("999") } - } diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index ae8f259..0796631 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -1,7 +1,7 @@ net.ashald.envfile EnvFile - 3.4.3 + 3.4.4 Borys Pierov Date: Sun, 18 Jan 2026 08:34:06 -0500 Subject: [PATCH 4/4] refactor: remove legacy Gradle build scripts and migrate package structure to align with new maintainer chore: update JetBrains IDE versions and simplify exception handling in build script --- AUTHORS.md | 8 +- CHANGELOG.md | 20 ++ build.gradle | 78 ----- build.gradle.kts | 95 ++++++ modules/core/build.gradle | 18 -- modules/core/build.gradle.kts | 18 ++ .../cmmoran}/envfile/EnvVarsProvider.java | 4 +- .../envfile/EnvVarsProviderFactory.java | 2 +- .../envfile/exceptions/EnvFileException.java | 2 +- .../exceptions/InvalidEnvFileException.java | 2 +- .../envfile/providers/EnvFileExecutor.java | 4 +- .../envfile/providers/EnvFileParser.java | 4 +- .../envfile/providers/EnvFileReader.java | 4 +- .../providers/SingleFileEnvVarsProvider.java | 8 +- .../providers/dotenv/DotEnvFileParser.java | 4 +- .../dotenv/DotEnvFileParserFactory.java | 12 +- .../runconfig/RunConfigEnvVarsProvider.java | 6 +- .../RunConfigEnvVarsProviderFactory.java | 6 +- .../providers/yaml/YamlEnvFileParser.java | 4 +- .../yaml/YamlEnvFileParserFactory.java | 12 +- .../cmmoran}/envfile/utils/ReadOnceMap.java | 2 +- .../dotenv/DotEnvFileParserTest.java | 2 +- .../providers/yaml/YamlEnvFileParserTest.java | 2 +- modules/platform/build.gradle | 24 -- modules/platform/build.gradle.kts | 27 ++ .../envfile/platform/EnvFileEntry.java | 6 +- .../platform/EnvFileEnvironmentVariables.java | 13 +- .../envfile/platform/EnvFileLanguage.java | 4 +- .../envfile/platform/EnvFileSettings.java | 50 +++ .../envfile/platform/EnvFileType.java | 6 +- .../platform/EnvVarsProviderExtension.java | 100 ++++++ .../envfile/platform/ProjectFileResolver.java | 2 +- .../ui/EnvFileConfigurationEditor.java | 14 +- .../ui/EnvFileConfigurationPanel.java | 306 ++++++++++++++++++ .../ui/table/EnvFileIsActiveColumnInfo.java | 8 +- .../table/EnvFileIsExecutableColumnInfo.java | 8 +- .../ui/table/EnvFilePathColumnInfo.java | 12 +- .../ui/table/EnvFileTypeColumnInfo.java | 8 +- .../envfile/platform/EnvFileSettings.java | 50 --- .../envfile/platform/EnvFileTypeFactory.java | 13 - .../platform/EnvVarsProviderExtension.java | 82 ----- .../ui/EnvFileConfigurationPanel.java | 306 ------------------ modules/products/goland/build.gradle | 24 -- modules/products/goland/build.gradle.kts | 26 ++ .../GolandRunConfigurationExtension.java | 9 +- modules/products/idea/build.gradle | 30 -- modules/products/idea/build.gradle.kts | 33 ++ .../products/idea/GradleEnvFileProvider.java | 6 +- .../idea/IdeaRunConfigurationExtension.java | 8 +- .../products/idea/MavenEnvFileProvider.java | 6 +- .../scala/SbtEnvFileConfigurationFactory.java | 3 +- .../scala/SbtEnvFileConfigurationType.java | 2 +- .../scala/SbtEnvFileRunConfiguration.java | 2 +- .../SbtRunConfigurationExtensionManager.java | 4 +- .../SbtRunEnvFileConfigurationEditor.java | 2 +- .../scala/SbtRunEnvFileConfigurationForm.java | 6 +- modules/products/pycharm/build.gradle | 24 -- modules/products/pycharm/build.gradle.kts | 27 ++ .../products/pycharm/EnvFileProvider.java | 8 +- .../PyCharmRunConfigurationExtension.java | 7 +- modules/products/rubymine/build.gradle | 24 -- modules/products/rubymine/build.gradle.kts | 27 ++ .../RubyMineRunConfigurationExtension.java | 6 +- .../resources/META-INF/envfile-goland.xml | 4 +- .../resources/META-INF/envfile-gradle.xml | 2 +- src/main/resources/META-INF/envfile-idea.xml | 2 +- .../resources/META-INF/envfile-pycharm.xml | 4 +- .../resources/META-INF/envfile-rubymine.xml | 2 +- src/main/resources/META-INF/envfile-sbt.xml | 4 +- src/main/resources/META-INF/plugin.xml | 30 +- 70 files changed, 874 insertions(+), 814 deletions(-) delete mode 100644 build.gradle create mode 100644 build.gradle.kts delete mode 100644 modules/core/build.gradle create mode 100644 modules/core/build.gradle.kts rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/EnvVarsProvider.java (87%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/EnvVarsProviderFactory.java (92%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/exceptions/EnvFileException.java (91%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/exceptions/InvalidEnvFileException.java (92%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/providers/EnvFileExecutor.java (95%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/providers/EnvFileParser.java (61%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/providers/EnvFileReader.java (91%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/providers/SingleFileEnvVarsProvider.java (87%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/providers/dotenv/DotEnvFileParser.java (97%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/providers/dotenv/DotEnvFileParserFactory.java (69%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/providers/runconfig/RunConfigEnvVarsProvider.java (85%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/providers/runconfig/RunConfigEnvVarsProviderFactory.java (78%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/providers/yaml/YamlEnvFileParser.java (89%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/providers/yaml/YamlEnvFileParserFactory.java (73%) rename modules/core/src/main/java/{net/ashald => com/cmmoran}/envfile/utils/ReadOnceMap.java (96%) rename modules/core/src/test/java/{net/ashald => com/cmmoran}/envfile/providers/dotenv/DotEnvFileParserTest.java (98%) rename modules/core/src/test/java/{net/ashald => com/cmmoran}/envfile/providers/yaml/YamlEnvFileParserTest.java (95%) delete mode 100644 modules/platform/build.gradle create mode 100644 modules/platform/build.gradle.kts rename modules/platform/src/main/java/{net/ashald => com/cmmoran}/envfile/platform/EnvFileEntry.java (75%) rename modules/platform/src/main/java/{net/ashald => com/cmmoran}/envfile/platform/EnvFileEnvironmentVariables.java (92%) rename modules/platform/src/main/java/{net/ashald => com/cmmoran}/envfile/platform/EnvFileLanguage.java (86%) create mode 100644 modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileSettings.java rename modules/platform/src/main/java/{net/ashald => com/cmmoran}/envfile/platform/EnvFileType.java (88%) create mode 100644 modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvVarsProviderExtension.java rename modules/platform/src/main/java/{net/ashald => com/cmmoran}/envfile/platform/ProjectFileResolver.java (96%) rename modules/platform/src/main/java/{net/ashald => com/cmmoran}/envfile/platform/ui/EnvFileConfigurationEditor.java (95%) create mode 100644 modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/EnvFileConfigurationPanel.java rename modules/platform/src/main/java/{net/ashald => com/cmmoran}/envfile/platform/ui/table/EnvFileIsActiveColumnInfo.java (88%) rename modules/platform/src/main/java/{net/ashald => com/cmmoran}/envfile/platform/ui/table/EnvFileIsExecutableColumnInfo.java (90%) rename modules/platform/src/main/java/{net/ashald => com/cmmoran}/envfile/platform/ui/table/EnvFilePathColumnInfo.java (90%) rename modules/platform/src/main/java/{net/ashald => com/cmmoran}/envfile/platform/ui/table/EnvFileTypeColumnInfo.java (90%) delete mode 100644 modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileSettings.java delete mode 100644 modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileTypeFactory.java delete mode 100644 modules/platform/src/main/java/net/ashald/envfile/platform/EnvVarsProviderExtension.java delete mode 100644 modules/platform/src/main/java/net/ashald/envfile/platform/ui/EnvFileConfigurationPanel.java delete mode 100644 modules/products/goland/build.gradle create mode 100644 modules/products/goland/build.gradle.kts rename modules/products/goland/src/main/java/{net/ashald => com/cmmoran}/envfile/products/goland/GolandRunConfigurationExtension.java (94%) delete mode 100644 modules/products/idea/build.gradle create mode 100644 modules/products/idea/build.gradle.kts rename modules/products/idea/src/main/java/{net/ashald => com/cmmoran}/envfile/products/idea/GradleEnvFileProvider.java (94%) rename modules/products/idea/src/main/java/{net/ashald => com/cmmoran}/envfile/products/idea/IdeaRunConfigurationExtension.java (94%) rename modules/products/idea/src/main/java/{net/ashald => com/cmmoran}/envfile/products/idea/MavenEnvFileProvider.java (94%) rename modules/products/idea/src/main/java/{net/ashald => com/cmmoran}/envfile/products/idea/scala/SbtEnvFileConfigurationFactory.java (86%) rename modules/products/idea/src/main/java/{net/ashald => com/cmmoran}/envfile/products/idea/scala/SbtEnvFileConfigurationType.java (91%) rename modules/products/idea/src/main/java/{net/ashald => com/cmmoran}/envfile/products/idea/scala/SbtEnvFileRunConfiguration.java (95%) rename modules/products/idea/src/main/java/{net/ashald => com/cmmoran}/envfile/products/idea/scala/SbtRunConfigurationExtensionManager.java (92%) rename modules/products/idea/src/main/java/{net/ashald => com/cmmoran}/envfile/products/idea/scala/SbtRunEnvFileConfigurationEditor.java (94%) rename modules/products/idea/src/main/java/{net/ashald => com/cmmoran}/envfile/products/idea/scala/SbtRunEnvFileConfigurationForm.java (87%) delete mode 100644 modules/products/pycharm/build.gradle create mode 100644 modules/products/pycharm/build.gradle.kts rename modules/products/pycharm/src/main/java/{net/ashald => com/cmmoran}/envfile/products/pycharm/EnvFileProvider.java (90%) rename modules/products/pycharm/src/main/java/{net/ashald => com/cmmoran}/envfile/products/pycharm/PyCharmRunConfigurationExtension.java (93%) delete mode 100644 modules/products/rubymine/build.gradle create mode 100644 modules/products/rubymine/build.gradle.kts rename modules/products/rubymine/src/main/java/{net/ashald => com/cmmoran}/envfile/products/rubymine/RubyMineRunConfigurationExtension.java (94%) diff --git a/AUTHORS.md b/AUTHORS.md index cb4d2d9..a750389 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -1,11 +1,13 @@ # Authors -**Env File** is written and maintained by [Borys Pierov](https://github.com/Ashald). +**Env File-cm** is maintained by [chris moran](https://github.com/cmmoran). -Special thanks to [Oleg Khromov](https://github.com/olgert) and [Rostyslav Bryzgunov](https://github.com/kottenator) -who helped with testing and provided feedback during early stages of development. +**Env File** was originally written and maintained by [Borys Pierov](https://github.com/Ashald). + +Special thanks to [Borys Pierov](https://github.com/Ashald) (original creator). # Contributors +* [Borys Pierov](https://github.com/Ashald) * [aviyam181199](https://github.com/aviyam181199) * [Yoan Thiebault](https://github.com/yoanthiebault) * [Stanislav Savulchik](https://github.com/savulchik) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7caa16..2955c3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ This project adheres to [Semantic Versioning]. ### Changed +- "i'll take it from here" - Upgraded Gradle IntelliJ plugin to v2 - Updated platform version from 2022.2 to 2022.3 as it's the minimum version for v2 of the Gradle IntelliJ plugin @@ -28,6 +29,25 @@ This project adheres to [Semantic Versioning]. - Bump `org.apache.commons:commons-text` to `1.10.0' +## 4.0.0 - 2026-01-15 + +### Changed + +- Updated Gradle plugin from 1.9.0 to 1.17.4 +- Updated platform version from 2022.2 to 2024.1 +- Extended IDE compatibility range to support versions 241-253.* (2024.1 through 2025.3.x) +- Upgraded Gradle wrapper from 7.5.1 to 8.5 + +### Fixed + +- Compatibility with IntelliJ IDEA 2025.x versions ([#248]) + +## 3.4.2 - 2023-12-25 + +### Fixed + +- Bump `org.apache.commons:commons-text` to `1.10.0' + ## 3.4.1 - 2022-10-04 ### Fixed diff --git a/build.gradle b/build.gradle deleted file mode 100644 index ce423ea..0000000 --- a/build.gradle +++ /dev/null @@ -1,78 +0,0 @@ -plugins { - id "java" - id "idea" - id "org.jetbrains.intellij.platform" version "2.2.1" - id "pl.allegro.tech.build.axion-release" version "1.14.1" -} - -group "net.ashald" - -scmVersion { - tag { - prefix = "v" - versionSeparator = "" - } -} - -allprojects { - apply plugin: 'java' - sourceCompatibility = 17 - targetCompatibility = 17 - - repositories { - mavenCentral() - } - - project.version = scmVersion.version - - ext.jetbrains = [ - version : "2024.2.1", - pycharm : "PythonCore:242.21829.142", - rubymine: "org.jetbrains.plugins.ruby:242.21829.142", - goland : "org.jetbrains.plugins.go:242.21829.142", - scala : "org.intellij.scala:2024.2.25" - ] -} - -repositories { - intellijPlatform { - defaultRepositories() - } -} - -intellijPlatform { - projectName = "EnvFile" - buildSearchableOptions = false - - pluginConfiguration { - name = "EnvFile" - - ideaVersion { - sinceBuild = "253" - untilBuild = "299" - } - } - - pluginVerification { - ides { - ide("IC", jetbrains.version) - } - } -} - -dependencies { - intellijPlatform { - intellijIdeaCommunity(jetbrains.version) - bundledPlugin("com.intellij.java") - instrumentationTools() - } - - implementation project(":envfile-products-idea") - implementation project(":envfile-products-pycharm") - implementation project(":envfile-products-rubymine") - implementation project(":envfile-products-goland") -} - -wrapper { - gradleVersion = "8.5" -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..737982c --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,95 @@ +import java.io.ByteArrayOutputStream + +plugins { + id("java") + id("idea") + id("org.jetbrains.intellij.platform") version "2.2.1" +} + +group = "com.cmmoran" + +// Native versioning: Get version from Git tags or fallback to 'unspecified' +fun getProjectVersion(): String { + return try { + val stdout = ByteArrayOutputStream() + exec { + commandLine("git", "describe", "--tags", "--always", "--dirty") + standardOutput = stdout + } + stdout.toString().trim().replaceFirst("^v".toRegex(), "") + } catch (_: Exception) { + "0.0.1-SNAPSHOT" + } +} + +version = getProjectVersion() + +// Helper to access 'jetbrains' extra property in a type-safe way +val jetbrains: Map by extra + +allprojects { + apply(plugin = "java") + + // Use toolchains to ensure the correct JDK is used for compilation + extensions.configure { + toolchain { + languageVersion.set(JavaLanguageVersion.of(17)) + } + } + + repositories { + mavenCentral() + } + + project.version = rootProject.version + + extra["jetbrains"] = mapOf( + "version" to "2025.1.1", + "pycharm" to "PythonCore:242.21829.142", + "rubymine" to "org.jetbrains.plugins.ruby:242.21829.142", + "goland" to "org.jetbrains.plugins.go:242.21829.142", + "scala" to "org.intellij.scala:2024.2.25" + ) +} + +repositories { + intellijPlatform { + defaultRepositories() + } +} + +intellijPlatform { + projectName.set("envfile") + buildSearchableOptions.set(false) + + pluginConfiguration { + name.set("envfile") + + ideaVersion { + sinceBuild.set("253") + untilBuild.set("999") + } + } + + pluginVerification { + ides { + ide("IC", jetbrains["version"]!!) + } + } +} + +dependencies { + intellijPlatform { + intellijIdeaCommunity(jetbrains["version"]!!) + bundledPlugin("com.intellij.java") + } + + implementation(project(":envfile-products-idea")) + implementation(project(":envfile-products-pycharm")) + implementation(project(":envfile-products-rubymine")) + implementation(project(":envfile-products-goland")) +} + +tasks.wrapper { + gradleVersion = "8.5" +} diff --git a/modules/core/build.gradle b/modules/core/build.gradle deleted file mode 100644 index 9f14a34..0000000 --- a/modules/core/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -plugins { - id "java" -} - -dependencies { - implementation 'org.jetbrains:annotations:23.0.0' - implementation 'org.yaml:snakeyaml:2.5' - - implementation 'com.google.guava:guava:33.5.0-jre' - - compileOnly 'org.projectlombok:lombok:1.18.42' - annotationProcessor 'org.projectlombok:lombok:1.18.42' - - testImplementation 'junit:junit:4.13.2' - - testCompileOnly 'org.projectlombok:lombok:1.18.42' - testAnnotationProcessor 'org.projectlombok:lombok:1.18.42' -} diff --git a/modules/core/build.gradle.kts b/modules/core/build.gradle.kts new file mode 100644 index 0000000..3503c1a --- /dev/null +++ b/modules/core/build.gradle.kts @@ -0,0 +1,18 @@ +plugins { + id("java") +} + +dependencies { + implementation("org.jetbrains:annotations:23.0.0") + implementation("org.yaml:snakeyaml:2.5") + + implementation("com.google.guava:guava:33.5.0-jre") + + compileOnly("org.projectlombok:lombok:1.18.42") + annotationProcessor("org.projectlombok:lombok:1.18.42") + + testImplementation("junit:junit:4.13.2") + + testCompileOnly("org.projectlombok:lombok:1.18.42") + testAnnotationProcessor("org.projectlombok:lombok:1.18.42") +} diff --git a/modules/core/src/main/java/net/ashald/envfile/EnvVarsProvider.java b/modules/core/src/main/java/com/cmmoran/envfile/EnvVarsProvider.java similarity index 87% rename from modules/core/src/main/java/net/ashald/envfile/EnvVarsProvider.java rename to modules/core/src/main/java/com/cmmoran/envfile/EnvVarsProvider.java index 7ad0261..6f52eec 100644 --- a/modules/core/src/main/java/net/ashald/envfile/EnvVarsProvider.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/EnvVarsProvider.java @@ -1,6 +1,6 @@ -package net.ashald.envfile; +package com.cmmoran.envfile; -import net.ashald.envfile.exceptions.EnvFileException; +import com.cmmoran.envfile.exceptions.EnvFileException; import java.io.File; import java.util.Map; diff --git a/modules/core/src/main/java/net/ashald/envfile/EnvVarsProviderFactory.java b/modules/core/src/main/java/com/cmmoran/envfile/EnvVarsProviderFactory.java similarity index 92% rename from modules/core/src/main/java/net/ashald/envfile/EnvVarsProviderFactory.java rename to modules/core/src/main/java/com/cmmoran/envfile/EnvVarsProviderFactory.java index dfecb13..c1130f4 100644 --- a/modules/core/src/main/java/net/ashald/envfile/EnvVarsProviderFactory.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/EnvVarsProviderFactory.java @@ -1,4 +1,4 @@ -package net.ashald.envfile; +package com.cmmoran.envfile; import java.util.Map; import java.util.function.Consumer; diff --git a/modules/core/src/main/java/net/ashald/envfile/exceptions/EnvFileException.java b/modules/core/src/main/java/com/cmmoran/envfile/exceptions/EnvFileException.java similarity index 91% rename from modules/core/src/main/java/net/ashald/envfile/exceptions/EnvFileException.java rename to modules/core/src/main/java/com/cmmoran/envfile/exceptions/EnvFileException.java index 6f94122..0701def 100644 --- a/modules/core/src/main/java/net/ashald/envfile/exceptions/EnvFileException.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/exceptions/EnvFileException.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.exceptions; +package com.cmmoran.envfile.exceptions; public class EnvFileException extends Exception { diff --git a/modules/core/src/main/java/net/ashald/envfile/exceptions/InvalidEnvFileException.java b/modules/core/src/main/java/com/cmmoran/envfile/exceptions/InvalidEnvFileException.java similarity index 92% rename from modules/core/src/main/java/net/ashald/envfile/exceptions/InvalidEnvFileException.java rename to modules/core/src/main/java/com/cmmoran/envfile/exceptions/InvalidEnvFileException.java index 8d2b902..0e53c7d 100644 --- a/modules/core/src/main/java/net/ashald/envfile/exceptions/InvalidEnvFileException.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/exceptions/InvalidEnvFileException.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.exceptions; +package com.cmmoran.envfile.exceptions; public class InvalidEnvFileException extends EnvFileException { diff --git a/modules/core/src/main/java/net/ashald/envfile/providers/EnvFileExecutor.java b/modules/core/src/main/java/com/cmmoran/envfile/providers/EnvFileExecutor.java similarity index 95% rename from modules/core/src/main/java/net/ashald/envfile/providers/EnvFileExecutor.java rename to modules/core/src/main/java/com/cmmoran/envfile/providers/EnvFileExecutor.java index 8d3c134..ce635c9 100644 --- a/modules/core/src/main/java/net/ashald/envfile/providers/EnvFileExecutor.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/providers/EnvFileExecutor.java @@ -1,10 +1,10 @@ -package net.ashald.envfile.providers; +package com.cmmoran.envfile.providers; import lombok.Builder; import lombok.NonNull; import lombok.Value; import lombok.val; -import net.ashald.envfile.exceptions.InvalidEnvFileException; +import com.cmmoran.envfile.exceptions.InvalidEnvFileException; import java.io.BufferedReader; import java.io.IOException; diff --git a/modules/core/src/main/java/net/ashald/envfile/providers/EnvFileParser.java b/modules/core/src/main/java/com/cmmoran/envfile/providers/EnvFileParser.java similarity index 61% rename from modules/core/src/main/java/net/ashald/envfile/providers/EnvFileParser.java rename to modules/core/src/main/java/com/cmmoran/envfile/providers/EnvFileParser.java index 96a2bac..e23ae8e 100644 --- a/modules/core/src/main/java/net/ashald/envfile/providers/EnvFileParser.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/providers/EnvFileParser.java @@ -1,6 +1,6 @@ -package net.ashald.envfile.providers; +package com.cmmoran.envfile.providers; -import net.ashald.envfile.exceptions.InvalidEnvFileException; +import com.cmmoran.envfile.exceptions.InvalidEnvFileException; import java.util.Map; diff --git a/modules/core/src/main/java/net/ashald/envfile/providers/EnvFileReader.java b/modules/core/src/main/java/com/cmmoran/envfile/providers/EnvFileReader.java similarity index 91% rename from modules/core/src/main/java/net/ashald/envfile/providers/EnvFileReader.java rename to modules/core/src/main/java/com/cmmoran/envfile/providers/EnvFileReader.java index e10317e..bb66036 100644 --- a/modules/core/src/main/java/net/ashald/envfile/providers/EnvFileReader.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/providers/EnvFileReader.java @@ -1,8 +1,8 @@ -package net.ashald.envfile.providers; +package com.cmmoran.envfile.providers; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import net.ashald.envfile.exceptions.InvalidEnvFileException; +import com.cmmoran.envfile.exceptions.InvalidEnvFileException; import java.io.File; import java.io.IOException; diff --git a/modules/core/src/main/java/net/ashald/envfile/providers/SingleFileEnvVarsProvider.java b/modules/core/src/main/java/com/cmmoran/envfile/providers/SingleFileEnvVarsProvider.java similarity index 87% rename from modules/core/src/main/java/net/ashald/envfile/providers/SingleFileEnvVarsProvider.java rename to modules/core/src/main/java/com/cmmoran/envfile/providers/SingleFileEnvVarsProvider.java index a85c342..9a2d033 100644 --- a/modules/core/src/main/java/net/ashald/envfile/providers/SingleFileEnvVarsProvider.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/providers/SingleFileEnvVarsProvider.java @@ -1,10 +1,10 @@ -package net.ashald.envfile.providers; +package com.cmmoran.envfile.providers; import lombok.Builder; import lombok.val; -import net.ashald.envfile.EnvVarsProvider; -import net.ashald.envfile.exceptions.EnvFileException; -import net.ashald.envfile.exceptions.InvalidEnvFileException; +import com.cmmoran.envfile.EnvVarsProvider; +import com.cmmoran.envfile.exceptions.EnvFileException; +import com.cmmoran.envfile.exceptions.InvalidEnvFileException; import org.jetbrains.annotations.NotNull; import java.io.File; diff --git a/modules/core/src/main/java/net/ashald/envfile/providers/dotenv/DotEnvFileParser.java b/modules/core/src/main/java/com/cmmoran/envfile/providers/dotenv/DotEnvFileParser.java similarity index 97% rename from modules/core/src/main/java/net/ashald/envfile/providers/dotenv/DotEnvFileParser.java rename to modules/core/src/main/java/com/cmmoran/envfile/providers/dotenv/DotEnvFileParser.java index 5f6dd21..582b3c6 100644 --- a/modules/core/src/main/java/net/ashald/envfile/providers/dotenv/DotEnvFileParser.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/providers/dotenv/DotEnvFileParser.java @@ -1,10 +1,10 @@ -package net.ashald.envfile.providers.dotenv; +package com.cmmoran.envfile.providers.dotenv; import java.util.regex.Matcher; import java.util.regex.Pattern; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import net.ashald.envfile.providers.EnvFileParser; +import com.cmmoran.envfile.providers.EnvFileParser; import java.util.LinkedHashMap; import java.util.Map; diff --git a/modules/core/src/main/java/net/ashald/envfile/providers/dotenv/DotEnvFileParserFactory.java b/modules/core/src/main/java/com/cmmoran/envfile/providers/dotenv/DotEnvFileParserFactory.java similarity index 69% rename from modules/core/src/main/java/net/ashald/envfile/providers/dotenv/DotEnvFileParserFactory.java rename to modules/core/src/main/java/com/cmmoran/envfile/providers/dotenv/DotEnvFileParserFactory.java index 128017b..1ee7c57 100644 --- a/modules/core/src/main/java/net/ashald/envfile/providers/dotenv/DotEnvFileParserFactory.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/providers/dotenv/DotEnvFileParserFactory.java @@ -1,10 +1,10 @@ -package net.ashald.envfile.providers.dotenv; +package com.cmmoran.envfile.providers.dotenv; -import net.ashald.envfile.EnvVarsProvider; -import net.ashald.envfile.EnvVarsProviderFactory; -import net.ashald.envfile.providers.EnvFileExecutor; -import net.ashald.envfile.providers.EnvFileReader; -import net.ashald.envfile.providers.SingleFileEnvVarsProvider; +import com.cmmoran.envfile.EnvVarsProvider; +import com.cmmoran.envfile.EnvVarsProviderFactory; +import com.cmmoran.envfile.providers.EnvFileExecutor; +import com.cmmoran.envfile.providers.EnvFileReader; +import com.cmmoran.envfile.providers.SingleFileEnvVarsProvider; import org.jetbrains.annotations.NotNull; import java.util.Map; diff --git a/modules/core/src/main/java/net/ashald/envfile/providers/runconfig/RunConfigEnvVarsProvider.java b/modules/core/src/main/java/com/cmmoran/envfile/providers/runconfig/RunConfigEnvVarsProvider.java similarity index 85% rename from modules/core/src/main/java/net/ashald/envfile/providers/runconfig/RunConfigEnvVarsProvider.java rename to modules/core/src/main/java/com/cmmoran/envfile/providers/runconfig/RunConfigEnvVarsProvider.java index 827e344..5e50acf 100644 --- a/modules/core/src/main/java/net/ashald/envfile/providers/runconfig/RunConfigEnvVarsProvider.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/providers/runconfig/RunConfigEnvVarsProvider.java @@ -1,8 +1,8 @@ -package net.ashald.envfile.providers.runconfig; +package com.cmmoran.envfile.providers.runconfig; import lombok.AllArgsConstructor; -import net.ashald.envfile.EnvVarsProvider; -import net.ashald.envfile.exceptions.InvalidEnvFileException; +import com.cmmoran.envfile.EnvVarsProvider; +import com.cmmoran.envfile.exceptions.InvalidEnvFileException; import java.io.File; import java.util.HashMap; diff --git a/modules/core/src/main/java/net/ashald/envfile/providers/runconfig/RunConfigEnvVarsProviderFactory.java b/modules/core/src/main/java/com/cmmoran/envfile/providers/runconfig/RunConfigEnvVarsProviderFactory.java similarity index 78% rename from modules/core/src/main/java/net/ashald/envfile/providers/runconfig/RunConfigEnvVarsProviderFactory.java rename to modules/core/src/main/java/com/cmmoran/envfile/providers/runconfig/RunConfigEnvVarsProviderFactory.java index 648c0b8..55dcfdd 100644 --- a/modules/core/src/main/java/net/ashald/envfile/providers/runconfig/RunConfigEnvVarsProviderFactory.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/providers/runconfig/RunConfigEnvVarsProviderFactory.java @@ -1,7 +1,7 @@ -package net.ashald.envfile.providers.runconfig; +package com.cmmoran.envfile.providers.runconfig; -import net.ashald.envfile.EnvVarsProvider; -import net.ashald.envfile.EnvVarsProviderFactory; +import com.cmmoran.envfile.EnvVarsProvider; +import com.cmmoran.envfile.EnvVarsProviderFactory; import org.jetbrains.annotations.NotNull; import java.util.Map; diff --git a/modules/core/src/main/java/net/ashald/envfile/providers/yaml/YamlEnvFileParser.java b/modules/core/src/main/java/com/cmmoran/envfile/providers/yaml/YamlEnvFileParser.java similarity index 89% rename from modules/core/src/main/java/net/ashald/envfile/providers/yaml/YamlEnvFileParser.java rename to modules/core/src/main/java/com/cmmoran/envfile/providers/yaml/YamlEnvFileParser.java index cebe904..0ef098b 100644 --- a/modules/core/src/main/java/net/ashald/envfile/providers/yaml/YamlEnvFileParser.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/providers/yaml/YamlEnvFileParser.java @@ -1,7 +1,7 @@ -package net.ashald.envfile.providers.yaml; +package com.cmmoran.envfile.providers.yaml; import lombok.AllArgsConstructor; -import net.ashald.envfile.providers.EnvFileParser; +import com.cmmoran.envfile.providers.EnvFileParser; import org.yaml.snakeyaml.Yaml; import java.util.LinkedHashMap; diff --git a/modules/core/src/main/java/net/ashald/envfile/providers/yaml/YamlEnvFileParserFactory.java b/modules/core/src/main/java/com/cmmoran/envfile/providers/yaml/YamlEnvFileParserFactory.java similarity index 73% rename from modules/core/src/main/java/net/ashald/envfile/providers/yaml/YamlEnvFileParserFactory.java rename to modules/core/src/main/java/com/cmmoran/envfile/providers/yaml/YamlEnvFileParserFactory.java index 658d0c5..03e07df 100644 --- a/modules/core/src/main/java/net/ashald/envfile/providers/yaml/YamlEnvFileParserFactory.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/providers/yaml/YamlEnvFileParserFactory.java @@ -1,10 +1,10 @@ -package net.ashald.envfile.providers.yaml; +package com.cmmoran.envfile.providers.yaml; -import net.ashald.envfile.EnvVarsProvider; -import net.ashald.envfile.EnvVarsProviderFactory; -import net.ashald.envfile.providers.EnvFileExecutor; -import net.ashald.envfile.providers.EnvFileReader; -import net.ashald.envfile.providers.SingleFileEnvVarsProvider; +import com.cmmoran.envfile.EnvVarsProvider; +import com.cmmoran.envfile.EnvVarsProviderFactory; +import com.cmmoran.envfile.providers.EnvFileExecutor; +import com.cmmoran.envfile.providers.EnvFileReader; +import com.cmmoran.envfile.providers.SingleFileEnvVarsProvider; import org.jetbrains.annotations.NotNull; import org.yaml.snakeyaml.Yaml; diff --git a/modules/core/src/main/java/net/ashald/envfile/utils/ReadOnceMap.java b/modules/core/src/main/java/com/cmmoran/envfile/utils/ReadOnceMap.java similarity index 96% rename from modules/core/src/main/java/net/ashald/envfile/utils/ReadOnceMap.java rename to modules/core/src/main/java/com/cmmoran/envfile/utils/ReadOnceMap.java index a6a74d0..c778104 100644 --- a/modules/core/src/main/java/net/ashald/envfile/utils/ReadOnceMap.java +++ b/modules/core/src/main/java/com/cmmoran/envfile/utils/ReadOnceMap.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.utils; +package com.cmmoran.envfile.utils; import java.util.AbstractMap; import java.util.Collections; diff --git a/modules/core/src/test/java/net/ashald/envfile/providers/dotenv/DotEnvFileParserTest.java b/modules/core/src/test/java/com/cmmoran/envfile/providers/dotenv/DotEnvFileParserTest.java similarity index 98% rename from modules/core/src/test/java/net/ashald/envfile/providers/dotenv/DotEnvFileParserTest.java rename to modules/core/src/test/java/com/cmmoran/envfile/providers/dotenv/DotEnvFileParserTest.java index 323a693..cc47aa9 100644 --- a/modules/core/src/test/java/net/ashald/envfile/providers/dotenv/DotEnvFileParserTest.java +++ b/modules/core/src/test/java/com/cmmoran/envfile/providers/dotenv/DotEnvFileParserTest.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.providers.dotenv; +package com.cmmoran.envfile.providers.dotenv; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/modules/core/src/test/java/net/ashald/envfile/providers/yaml/YamlEnvFileParserTest.java b/modules/core/src/test/java/com/cmmoran/envfile/providers/yaml/YamlEnvFileParserTest.java similarity index 95% rename from modules/core/src/test/java/net/ashald/envfile/providers/yaml/YamlEnvFileParserTest.java rename to modules/core/src/test/java/com/cmmoran/envfile/providers/yaml/YamlEnvFileParserTest.java index 3dc2e89..5195824 100644 --- a/modules/core/src/test/java/net/ashald/envfile/providers/yaml/YamlEnvFileParserTest.java +++ b/modules/core/src/test/java/com/cmmoran/envfile/providers/yaml/YamlEnvFileParserTest.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.providers.yaml; +package com.cmmoran.envfile.providers.yaml; import com.google.common.collect.ImmutableList; import lombok.SneakyThrows; diff --git a/modules/platform/build.gradle b/modules/platform/build.gradle deleted file mode 100644 index e8d4e5e..0000000 --- a/modules/platform/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -plugins { - id "java" - id "org.jetbrains.intellij.platform.module" -} - -repositories { - intellijPlatform { - defaultRepositories() - } -} - -dependencies { - intellijPlatform { - intellijIdeaCommunity(jetbrains.version) - instrumentationTools() - } - - implementation project(":envfile-core") - implementation 'org.jetbrains:annotations:23.0.0' - implementation 'org.apache.commons:commons-text:1.15.0' - - compileOnly 'org.projectlombok:lombok:1.18.42' - annotationProcessor 'org.projectlombok:lombok:1.18.42' -} diff --git a/modules/platform/build.gradle.kts b/modules/platform/build.gradle.kts new file mode 100644 index 0000000..f4189c3 --- /dev/null +++ b/modules/platform/build.gradle.kts @@ -0,0 +1,27 @@ +plugins { + id("java") + id("org.jetbrains.intellij.platform.module") +} + +repositories { + intellijPlatform { + defaultRepositories() + } +} + +// Helper to access 'jetbrains' extra property in a type-safe way +val jetbrains: Map by rootProject.extra + +dependencies { + intellijPlatform { + intellijIdeaCommunity(jetbrains["version"]!!) + instrumentationTools() + } + + implementation(project(":envfile-core")) + implementation("org.jetbrains:annotations:23.0.0") + implementation("org.apache.commons:commons-text:1.15.0") + + compileOnly("org.projectlombok:lombok:1.18.42") + annotationProcessor("org.projectlombok:lombok:1.18.42") +} diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileEntry.java b/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileEntry.java similarity index 75% rename from modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileEntry.java rename to modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileEntry.java index c33cf99..04a41c1 100644 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileEntry.java +++ b/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileEntry.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.platform; +package com.cmmoran.envfile.platform; import lombok.Builder; import lombok.Data; @@ -23,11 +23,11 @@ public class EnvFileEntry { private Boolean executable; public boolean isEnabled() { - return Boolean.TRUE.equals(getEnabled()); + return getEnabled(); } public boolean isExecutable() { - return Boolean.TRUE.equals(getExecutable()); + return getExecutable(); } } diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileEnvironmentVariables.java b/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileEnvironmentVariables.java similarity index 92% rename from modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileEnvironmentVariables.java rename to modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileEnvironmentVariables.java index 29d5727..054fbe1 100644 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileEnvironmentVariables.java +++ b/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileEnvironmentVariables.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.platform; +package com.cmmoran.envfile.platform; import com.intellij.execution.ExecutionException; import com.intellij.execution.configurations.GeneralCommandLine; @@ -10,9 +10,9 @@ import lombok.Builder; import lombok.RequiredArgsConstructor; import lombok.val; -import net.ashald.envfile.EnvVarsProvider; -import net.ashald.envfile.exceptions.EnvFileException; -import net.ashald.envfile.exceptions.InvalidEnvFileException; +import com.cmmoran.envfile.EnvVarsProvider; +import com.cmmoran.envfile.exceptions.EnvFileException; +import com.cmmoran.envfile.exceptions.InvalidEnvFileException; import org.apache.commons.text.StringSubstitutor; import org.jetbrains.annotations.NotNull; @@ -23,7 +23,7 @@ @Builder @RequiredArgsConstructor public class EnvFileEnvironmentVariables { - private static final String NOTIFICATION_GROUP = "net.ashald.envfile"; + private static final String NOTIFICATION_GROUP = "com.cmmoran.envfile"; private final ProjectFileResolver projectFileResolver = ProjectFileResolver.DEFAULT; private final EnvFileSettings envFileSettings; @@ -130,9 +130,8 @@ private String renderValue(String template, @NotNull Map context String stage1 = new StringSubstitutor(context).replace(postMacro); // if ${FOO} was not resolved - replace it with empty string as it would've worked in bash - String stage2 = new StringSubstitutor(key -> context.getOrDefault(key, "")).replace(stage1); - return stage2; + return new StringSubstitutor(key -> context.getOrDefault(key, "")).replace(stage1); } private void notify(Project project, EnvFileEntry entry, String content) { diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileLanguage.java b/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileLanguage.java similarity index 86% rename from modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileLanguage.java rename to modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileLanguage.java index 2879b03..28157b4 100644 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileLanguage.java +++ b/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileLanguage.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.platform; +package com.cmmoran.envfile.platform; import com.intellij.lang.Language; import org.jetbrains.annotations.NotNull; @@ -18,6 +18,6 @@ public boolean isCaseSensitive() { @NotNull @Override public String getDisplayName() { - return "Env File"; + return "Env file"; } } diff --git a/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileSettings.java b/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileSettings.java new file mode 100644 index 0000000..e878922 --- /dev/null +++ b/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileSettings.java @@ -0,0 +1,50 @@ +package com.cmmoran.envfile.platform; + +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; + +import java.util.Collections; +import java.util.List; + +@Value +@Builder +public class EnvFileSettings { + + @NonNull + Boolean pluginEnabled; + @NonNull + Boolean envVarsSubstitutionEnabled; + @NonNull + Boolean pathMacroSupported; + @NonNull + Boolean ignoreMissing; + @NonNull + Boolean enableExperimentalIntegrations; + @NonNull + List entries; + + public boolean isPluginEnabledEnabled() { + return getPluginEnabled(); + } + + public boolean isSubstituteEnvVarsEnabled() { + return getEnvVarsSubstitutionEnabled(); + } + + public boolean isPathMacroSupported() { + return getPathMacroSupported(); + } + + public boolean isIgnoreMissing() { + return getIgnoreMissing(); + } + + public boolean isEnableExperimentalIntegrations() { + return getEnableExperimentalIntegrations(); + } + + public List getEntries() { + return Collections.unmodifiableList(entries); + } +} diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileType.java b/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileType.java similarity index 88% rename from modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileType.java rename to modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileType.java index 439f144..a513579 100644 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileType.java +++ b/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvFileType.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.platform; +package com.cmmoran.envfile.platform; import com.intellij.icons.AllIcons; import com.intellij.openapi.fileTypes.LanguageFileType; @@ -17,13 +17,13 @@ private EnvFileType() { @NotNull @Override public String getName() { - return "Env File"; + return "Env file"; } @NotNull @Override public String getDescription() { - return "Env File"; + return "Env file"; } @NotNull diff --git a/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvVarsProviderExtension.java b/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvVarsProviderExtension.java new file mode 100644 index 0000000..73dc33b --- /dev/null +++ b/modules/platform/src/main/java/com/cmmoran/envfile/platform/EnvVarsProviderExtension.java @@ -0,0 +1,100 @@ +package com.cmmoran.envfile.platform; + +import com.intellij.diagnostic.PluginException; +import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.extensions.ExtensionPointName; +import com.intellij.openapi.extensions.PluginAware; +import com.intellij.openapi.extensions.PluginDescriptor; +import com.intellij.openapi.extensions.RequiredElement; +import com.intellij.util.xmlb.annotations.Attribute; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import lombok.NonNull; +import lombok.val; +import com.cmmoran.envfile.EnvVarsProviderFactory; +import org.jetbrains.annotations.NotNull; + + +public class EnvVarsProviderExtension implements PluginAware { + @SuppressWarnings("WeakerAccess") + public static final ExtensionPointName EP_NAME = + new ExtensionPointName<>("com.cmmoran.envfile.envVarsProvider"); + + @Attribute("id") + @RequiredElement + public String id; + + @Attribute("factory") + @RequiredElement + public String factory; + + private EnvVarsProviderFactory implementation; + private PluginDescriptor pluginDescriptor; + + @Override + public void setPluginDescriptor(@NotNull PluginDescriptor pluginDescriptor) { + this.pluginDescriptor = pluginDescriptor; + } + + private EnvVarsProviderFactory getImplementation() { + if (implementation == null) { + try { + ClassLoader classLoader = + pluginDescriptor != null ? pluginDescriptor.getPluginClassLoader() : getClass().getClassLoader(); + @SuppressWarnings("unchecked") + Class factoryClass = + (Class) Class.forName(factory, true, classLoader); + implementation = factoryClass.getDeclaredConstructor().newInstance(); + } catch (Exception e) { + throw new RuntimeException("Failed to instantiate factory: " + factory, e); + } + } + return implementation; + } + + public EnvVarsProviderFactory getFactory() { + return getImplementation(); + } + + public static Optional getParserFactoryById(@NonNull String parserId) { + Map parsers = new HashMap<>(); + for (EnvVarsProviderExtension extension : EP_NAME.getExtensionList()) { + if (parsers.containsKey(extension.getId())) { + Logger.getInstance(EnvVarsProviderExtension.class).error(String.format( + "Cannot load parser '%s' with implementation class '%s' since there is already parser '%s' " + + "registered with the same id. Skipping.", + extension.getId(), extension.factory, parsers.get(extension.getId()) + )); + } else { + parsers.put(extension.getId(), extension); + } + } + val extension = parsers.get(parserId); + return Optional.ofNullable(extension) + .map(EnvVarsProviderExtension::getFactory); + } + + public static List getParserExtensions() { + List extensions = EP_NAME.getExtensionList(); + extensions.sort((o1, o2) -> o1.toString().compareToIgnoreCase(o2.toString())); + return extensions; + } + + public String getId() { + if (id == null) { + String error = "No id specified for environment variable provider factory " + factory; + if (pluginDescriptor != null) { + throw new PluginException(error, pluginDescriptor.getPluginId()); + } + throw new IllegalArgumentException(error); + } + return id.toLowerCase(); + } + + @Override + public String toString() { + return implementation.getTitle(); + } +} diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/ProjectFileResolver.java b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ProjectFileResolver.java similarity index 96% rename from modules/platform/src/main/java/net/ashald/envfile/platform/ProjectFileResolver.java rename to modules/platform/src/main/java/com/cmmoran/envfile/platform/ProjectFileResolver.java index d75569f..4d4ee9f 100644 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/ProjectFileResolver.java +++ b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ProjectFileResolver.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.platform; +package com.cmmoran.envfile.platform; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.io.FileUtil; diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/ui/EnvFileConfigurationEditor.java b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/EnvFileConfigurationEditor.java similarity index 95% rename from modules/platform/src/main/java/net/ashald/envfile/platform/ui/EnvFileConfigurationEditor.java rename to modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/EnvFileConfigurationEditor.java index b5b247f..c4a3540 100644 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/ui/EnvFileConfigurationEditor.java +++ b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/EnvFileConfigurationEditor.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.platform.ui; +package com.cmmoran.envfile.platform.ui; import com.intellij.execution.ExecutionException; import com.intellij.execution.configurations.RunConfigurationBase; @@ -7,11 +7,11 @@ import com.intellij.openapi.util.JDOMExternalizerUtil; import com.intellij.openapi.util.Key; import lombok.val; -import net.ashald.envfile.platform.EnvFileEntry; -import net.ashald.envfile.platform.EnvFileSettings; -import net.ashald.envfile.platform.EnvVarsProviderExtension; -import net.ashald.envfile.platform.ProjectFileResolver; -import net.ashald.envfile.providers.runconfig.RunConfigEnvVarsProvider; +import com.cmmoran.envfile.platform.EnvFileEntry; +import com.cmmoran.envfile.platform.EnvFileSettings; +import com.cmmoran.envfile.platform.EnvVarsProviderExtension; +import com.cmmoran.envfile.platform.ProjectFileResolver; +import com.cmmoran.envfile.providers.runconfig.RunConfigEnvVarsProvider; import org.jdom.Element; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; @@ -24,7 +24,7 @@ public class EnvFileConfigurationEditor> extends SettingsEditor { private static final Key USER_DATA_KEY = new Key("EnvFile Settings"); - private static final String SERIALIZATION_ID = "net.ashald.envfile"; + private static final String SERIALIZATION_ID = "com.cmmoran.envfile"; private static final String ELEMENT_ENTRY_LIST = "ENTRIES"; private static final String ELEMENT_ENTRY_SINGLE = "ENTRY"; diff --git a/modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/EnvFileConfigurationPanel.java b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/EnvFileConfigurationPanel.java new file mode 100644 index 0000000..5f1cc56 --- /dev/null +++ b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/EnvFileConfigurationPanel.java @@ -0,0 +1,306 @@ +package com.cmmoran.envfile.platform.ui; + +import com.intellij.execution.configurations.RunConfigurationBase; +import com.intellij.ide.DataManager; +import com.intellij.openapi.actionSystem.ActionPlaces; +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.actionSystem.DefaultActionGroup; +import com.intellij.openapi.fileChooser.FileChooser; +import com.intellij.openapi.fileChooser.FileChooserDescriptor; +import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.ui.popup.JBPopupFactory; +import com.intellij.openapi.ui.popup.ListPopup; +import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.ui.AnActionButton; +import com.intellij.ui.AnActionButtonUpdater; +import com.intellij.ui.BooleanTableCellRenderer; +import com.intellij.ui.ToolbarDecorator; +import com.intellij.ui.table.TableView; +import com.intellij.util.ui.ColumnInfo; +import com.intellij.util.ui.JBUI; +import com.intellij.util.ui.ListTableModel; +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.FontMetrics; +import java.util.ArrayList; +import java.util.LinkedList; +import javax.swing.BoxLayout; +import javax.swing.JCheckBox; +import javax.swing.JPanel; +import javax.swing.table.JTableHeader; +import javax.swing.table.TableColumn; +import lombok.val; +import com.cmmoran.envfile.EnvVarsProviderFactory; +import com.cmmoran.envfile.platform.EnvFileEntry; +import com.cmmoran.envfile.platform.EnvFileSettings; +import com.cmmoran.envfile.platform.EnvVarsProviderExtension; +import com.cmmoran.envfile.platform.ui.table.EnvFileIsActiveColumnInfo; +import com.cmmoran.envfile.platform.ui.table.EnvFileIsExecutableColumnInfo; +import com.cmmoran.envfile.platform.ui.table.EnvFilePathColumnInfo; +import com.cmmoran.envfile.platform.ui.table.EnvFileTypeColumnInfo; +import com.cmmoran.envfile.providers.runconfig.RunConfigEnvVarsProvider; + + +class EnvFileConfigurationPanel> extends JPanel { + private static final int MAX_RECENT = 5; + private static final LinkedList RECENT = new LinkedList<>(); + private final RunConfigurationBase runConfig; + + private final JCheckBox useEnvFileCheckBox; + private final JCheckBox substituteEnvVarsCheckBox; + private final JCheckBox supportPathMacroCheckBox; + private final JCheckBox ignoreMissingCheckBox; + private final JCheckBox experimentalIntegrationsCheckBox; + private final ListTableModel envFilesModel; + private final TableView envFilesTable; + + EnvFileConfigurationPanel(T configuration) { + runConfig = configuration; + + // Define Model + ColumnInfo columnIsActive = new EnvFileIsActiveColumnInfo(); + ColumnInfo columnIsExecutable = new EnvFileIsExecutableColumnInfo(); + ColumnInfo columnFile = new EnvFilePathColumnInfo(runConfig.getProject()); + ColumnInfo columnType = new EnvFileTypeColumnInfo(); + + envFilesModel = new ListTableModel<>(columnIsActive, columnIsExecutable, columnFile, columnType); + + // Create Table + envFilesTable = new TableView<>(envFilesModel); + envFilesTable.getEmptyText().setText("No environment variables files selected"); + + setUpColumnWidth(envFilesTable, 0, columnIsActive, 20); + setUpColumnWidth(envFilesTable, 1, columnIsExecutable, 20); + setUpColumnWidth(envFilesTable, 3, columnType, 50); + + envFilesTable.setColumnSelectionAllowed(false); + envFilesTable.setShowGrid(false); + envFilesTable.setDragEnabled(true); + envFilesTable.setShowHorizontalLines(false); + envFilesTable.setShowVerticalLines(false); + envFilesTable.setIntercellSpacing(new Dimension(0, 0)); + + // Create global activation flag + useEnvFileCheckBox = new JCheckBox("Enable EnvFile"); + substituteEnvVarsCheckBox = + new JCheckBox("Substitute Environment Variables (${FOO} / ${BAR:-default} / $${ESCAPED})"); + supportPathMacroCheckBox = new JCheckBox("Process JetBrains path macro references ($PROJECT_DIR$)"); + ignoreMissingCheckBox = new JCheckBox("Ignore missing files"); + experimentalIntegrationsCheckBox = + new JCheckBox("Enable experimental integrations (e.g. Gradle) - may break any time!"); + + useEnvFileCheckBox.addActionListener(e -> { + envFilesTable.setEnabled(useEnvFileCheckBox.isSelected()); + substituteEnvVarsCheckBox.setEnabled(useEnvFileCheckBox.isSelected()); + supportPathMacroCheckBox.setEnabled(useEnvFileCheckBox.isSelected()); + ignoreMissingCheckBox.setEnabled(useEnvFileCheckBox.isSelected()); + experimentalIntegrationsCheckBox.setEnabled(useEnvFileCheckBox.isSelected()); + }); + // TODO: come up with a generic approach for this + envFilesModel.addRow( + EnvFileEntry.builder() + .parserId(RunConfigEnvVarsProvider.PARSER_ID) + .enabled(true) + .executable(false) + .build() + ); + + // Create Toolbar - Add/Remove/Move actions + final ToolbarDecorator envFilesTableDecorator = ToolbarDecorator.createDecorator(envFilesTable); + + final AnActionButtonUpdater updater = e -> useEnvFileCheckBox.isSelected(); + + envFilesTableDecorator + .setAddAction(button -> doAddAction(button, envFilesTable, envFilesModel)) + .setAddActionUpdater(updater) + .setRemoveActionUpdater(e -> { + boolean allEditable = true; + + for (EnvFileEntry entry : envFilesTable.getSelectedObjects()) { + val editable = + EnvVarsProviderExtension.getParserFactoryById(entry.getParserId()) + .map(EnvVarsProviderFactory::isEditable) + .orElse(true); + + if (!editable) { + allEditable = false; + break; + } + } + + return updater.isEnabled(e) && envFilesTable.getSelectedRowCount() >= 1 && allEditable; + }); + + JPanel optionsPanel = new JPanel(); + optionsPanel.setBorder(JBUI.Borders.empty(5, 22, 5, 5)); + optionsPanel.setLayout(new BoxLayout(optionsPanel, BoxLayout.Y_AXIS)); + + optionsPanel.add(substituteEnvVarsCheckBox); + optionsPanel.add(supportPathMacroCheckBox); + optionsPanel.add(ignoreMissingCheckBox); + optionsPanel.add(experimentalIntegrationsCheckBox); + + // Compose UI + JPanel checkboxPanel = new JPanel(); + checkboxPanel.setLayout(new BoxLayout(checkboxPanel, BoxLayout.Y_AXIS)); + checkboxPanel.add(useEnvFileCheckBox); + checkboxPanel.add(optionsPanel); + + optionsPanel.setLocation(100, 100); + + JPanel envFilesTableDecoratorPanel = envFilesTableDecorator.createPanel(); + Dimension size = new Dimension(-1, 150); + envFilesTableDecoratorPanel.setMinimumSize(size); + envFilesTableDecoratorPanel.setPreferredSize(size); + + setLayout(new BorderLayout()); + add(checkboxPanel, BorderLayout.NORTH); + add(envFilesTableDecoratorPanel, BorderLayout.CENTER); + } + + private void setUpColumnWidth(TableView table, int columnIdx, ColumnInfo columnInfo, int extend) { + JTableHeader tableHeader = table.getTableHeader(); + FontMetrics fontMetrics = tableHeader.getFontMetrics(tableHeader.getFont()); + + int preferredWidth = fontMetrics.stringWidth(columnInfo.getName()) + extend; + + table.getColumnModel().getColumn(columnIdx).setCellRenderer(new BooleanTableCellRenderer()); + TableColumn tableColumn = tableHeader.getColumnModel().getColumn(columnIdx); + tableColumn.setWidth(preferredWidth); + tableColumn.setPreferredWidth(preferredWidth); + tableColumn.setMinWidth(preferredWidth); + tableColumn.setMaxWidth(preferredWidth); + } + + private void doAddAction( + AnActionButton button, + final TableView table, + final ListTableModel model + ) { + DefaultActionGroup actionGroup = new DefaultActionGroup(); + + for (final EnvVarsProviderExtension extension : EnvVarsProviderExtension.getParserExtensions()) { + if (!extension.getFactory().isEditable()) { + continue; + } + + final String title = String.format("%s file", extension.getFactory().getTitle()); + AnAction anAction = new AnAction(title) { + @Override + public void actionPerformed(AnActionEvent e) { + final FileChooserDescriptor chooserDescriptor = FileChooserDescriptorFactory + .createSingleFileNoJarsDescriptor() + .withTitle(String.format("Select %s", title)); + + Project project = runConfig.getProject(); + + VirtualFile selectedFile = FileChooser.chooseFile(chooserDescriptor, project, null); + + if (selectedFile != null) { + String selectedPath = selectedFile.getPath(); + String baseDir = runConfig.getProject().getBaseDir().getPath(); + if (selectedPath.startsWith(baseDir)) { + selectedPath = selectedPath.substring(baseDir.length() + 1); + } + + ArrayList newList = new ArrayList(model.getItems()); + final EnvFileEntry newOptions = EnvFileEntry.builder() + .parserId(extension.getId()) + .path(selectedPath) + .enabled(true) + .executable(false) + .build(); + + newList.add(newOptions); + model.setItems(newList); + int index = model.getRowCount() - 1; + model.fireTableRowsInserted(index, index); + table.setRowSelectionInterval(index, index); + + synchronized (RECENT) { + RECENT.remove(newOptions); + RECENT.addFirst(newOptions); + if (RECENT.size() > MAX_RECENT) { + RECENT.removeLast(); + } + } + } + } + }; + actionGroup.add(anAction); + } + synchronized (RECENT) { + if (!RECENT.isEmpty()) { + actionGroup.addSeparator("Recent"); + + for (final EnvFileEntry entry : RECENT) { + val typeTitle = EnvVarsProviderExtension.getParserFactoryById(entry.getParserId()) + .map(EnvVarsProviderFactory::getTitle) + .orElse(String.format("<%s>", entry.getParserId())); + + String title = String.format("%s -> %s", typeTitle, entry.getPath()); + String shortTitle = title.length() < 81 ? title : title.replaceFirst("(.{39}).+(.{39})", "$1...$2"); + AnAction anAction = new AnAction(shortTitle, title, null) { + @Override + public void actionPerformed(AnActionEvent e) { + ArrayList newList = new ArrayList(model.getItems()); + newList.add(entry); + model.setItems(newList); + int index = model.getRowCount() - 1; + model.fireTableRowsInserted(index, index); + table.setRowSelectionInterval(index, index); + synchronized (RECENT) { + RECENT.remove(entry); + RECENT.addFirst(entry); + } + } + }; + actionGroup.add(anAction); + } + } + } + + final String popupPlace = ActionPlaces.getActionGroupPopupPlace(getClass().getSimpleName()); + final ListPopup popup = JBPopupFactory.getInstance().createActionGroupPopup( + "Add...", + actionGroup, + DataManager.getInstance().getDataContext(this), + JBPopupFactory.ActionSelectionAid.SPEEDSEARCH, + false, + popupPlace + ); + + if (button.getPreferredPopupPoint() != null) { + popup.show(button.getPreferredPopupPoint()); + } + } + + EnvFileSettings getState() { + return EnvFileSettings.builder() + .pluginEnabled(useEnvFileCheckBox.isSelected()) + .envVarsSubstitutionEnabled(substituteEnvVarsCheckBox.isSelected()) + .pathMacroSupported(supportPathMacroCheckBox.isSelected()) + .ignoreMissing(ignoreMissingCheckBox.isSelected()) + .enableExperimentalIntegrations(experimentalIntegrationsCheckBox.isSelected()) + .entries(envFilesModel.getItems()) + .build(); + } + + void setState(EnvFileSettings state) { + useEnvFileCheckBox.setSelected(state.isPluginEnabledEnabled()); + substituteEnvVarsCheckBox.setSelected(state.isSubstituteEnvVarsEnabled()); + supportPathMacroCheckBox.setSelected(state.isPathMacroSupported()); + ignoreMissingCheckBox.setSelected(state.isIgnoreMissing()); + experimentalIntegrationsCheckBox.setSelected(state.isEnableExperimentalIntegrations()); + + envFilesTable.setEnabled(state.isPluginEnabledEnabled()); + substituteEnvVarsCheckBox.setEnabled(state.isPluginEnabledEnabled()); + supportPathMacroCheckBox.setEnabled(state.isPluginEnabledEnabled()); + ignoreMissingCheckBox.setEnabled(state.isPluginEnabledEnabled()); + experimentalIntegrationsCheckBox.setEnabled(state.isPluginEnabledEnabled()); + + envFilesModel.setItems(new ArrayList<>(state.getEntries())); + } +} diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/ui/table/EnvFileIsActiveColumnInfo.java b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/table/EnvFileIsActiveColumnInfo.java similarity index 88% rename from modules/platform/src/main/java/net/ashald/envfile/platform/ui/table/EnvFileIsActiveColumnInfo.java rename to modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/table/EnvFileIsActiveColumnInfo.java index 6ecc5b1..ef17aa9 100644 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/ui/table/EnvFileIsActiveColumnInfo.java +++ b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/table/EnvFileIsActiveColumnInfo.java @@ -1,10 +1,10 @@ -package net.ashald.envfile.platform.ui.table; +package com.cmmoran.envfile.platform.ui.table; import com.intellij.ui.BooleanTableCellRenderer; import com.intellij.util.ui.ColumnInfo; -import net.ashald.envfile.EnvVarsProviderFactory; -import net.ashald.envfile.platform.EnvFileEntry; -import net.ashald.envfile.platform.EnvVarsProviderExtension; +import com.cmmoran.envfile.EnvVarsProviderFactory; +import com.cmmoran.envfile.platform.EnvFileEntry; +import com.cmmoran.envfile.platform.EnvVarsProviderExtension; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/ui/table/EnvFileIsExecutableColumnInfo.java b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/table/EnvFileIsExecutableColumnInfo.java similarity index 90% rename from modules/platform/src/main/java/net/ashald/envfile/platform/ui/table/EnvFileIsExecutableColumnInfo.java rename to modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/table/EnvFileIsExecutableColumnInfo.java index 74cd0bc..5d74f44 100644 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/ui/table/EnvFileIsExecutableColumnInfo.java +++ b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/table/EnvFileIsExecutableColumnInfo.java @@ -1,11 +1,11 @@ -package net.ashald.envfile.platform.ui.table; +package com.cmmoran.envfile.platform.ui.table; import com.intellij.openapi.util.NlsContexts; import com.intellij.ui.BooleanTableCellRenderer; import com.intellij.util.ui.ColumnInfo; -import net.ashald.envfile.EnvVarsProviderFactory; -import net.ashald.envfile.platform.EnvFileEntry; -import net.ashald.envfile.platform.EnvVarsProviderExtension; +import com.cmmoran.envfile.EnvVarsProviderFactory; +import com.cmmoran.envfile.platform.EnvFileEntry; +import com.cmmoran.envfile.platform.EnvVarsProviderExtension; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/ui/table/EnvFilePathColumnInfo.java b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/table/EnvFilePathColumnInfo.java similarity index 90% rename from modules/platform/src/main/java/net/ashald/envfile/platform/ui/table/EnvFilePathColumnInfo.java rename to modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/table/EnvFilePathColumnInfo.java index 149f6dc..e141421 100644 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/ui/table/EnvFilePathColumnInfo.java +++ b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/table/EnvFilePathColumnInfo.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.platform.ui.table; +package com.cmmoran.envfile.platform.ui.table; import com.intellij.openapi.project.Project; import com.intellij.ui.JBColor; @@ -9,11 +9,11 @@ import lombok.Builder; import lombok.NonNull; import lombok.val; -import net.ashald.envfile.EnvVarsProviderFactory; -import net.ashald.envfile.platform.EnvFileEntry; -import net.ashald.envfile.platform.EnvVarsProviderExtension; -import net.ashald.envfile.platform.ProjectFileResolver; -import net.ashald.envfile.providers.runconfig.RunConfigEnvVarsProvider; +import com.cmmoran.envfile.EnvVarsProviderFactory; +import com.cmmoran.envfile.platform.EnvFileEntry; +import com.cmmoran.envfile.platform.EnvVarsProviderExtension; +import com.cmmoran.envfile.platform.ProjectFileResolver; +import com.cmmoran.envfile.providers.runconfig.RunConfigEnvVarsProvider; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/ui/table/EnvFileTypeColumnInfo.java b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/table/EnvFileTypeColumnInfo.java similarity index 90% rename from modules/platform/src/main/java/net/ashald/envfile/platform/ui/table/EnvFileTypeColumnInfo.java rename to modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/table/EnvFileTypeColumnInfo.java index c063708..9fa01af 100644 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/ui/table/EnvFileTypeColumnInfo.java +++ b/modules/platform/src/main/java/com/cmmoran/envfile/platform/ui/table/EnvFileTypeColumnInfo.java @@ -1,12 +1,12 @@ -package net.ashald.envfile.platform.ui.table; +package com.cmmoran.envfile.platform.ui.table; import com.intellij.ui.JBColor; import com.intellij.util.ui.ColumnInfo; import com.intellij.util.ui.UIUtil; import lombok.val; -import net.ashald.envfile.EnvVarsProviderFactory; -import net.ashald.envfile.platform.EnvFileEntry; -import net.ashald.envfile.platform.EnvVarsProviderExtension; +import com.cmmoran.envfile.EnvVarsProviderFactory; +import com.cmmoran.envfile.platform.EnvFileEntry; +import com.cmmoran.envfile.platform.EnvVarsProviderExtension; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileSettings.java b/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileSettings.java deleted file mode 100644 index 8cf2339..0000000 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileSettings.java +++ /dev/null @@ -1,50 +0,0 @@ -package net.ashald.envfile.platform; - -import lombok.Builder; -import lombok.NonNull; -import lombok.Value; - -import java.util.Collections; -import java.util.List; - -@Value -@Builder -public class EnvFileSettings { - - @NonNull - private final Boolean pluginEnabled; - @NonNull - private final Boolean envVarsSubstitutionEnabled; - @NonNull - private final Boolean pathMacroSupported; - @NonNull - private final Boolean ignoreMissing; - @NonNull - private final Boolean enableExperimentalIntegrations; - @NonNull - private final List entries; - - public boolean isPluginEnabledEnabled() { - return Boolean.TRUE.equals(getPluginEnabled()); - } - - public boolean isSubstituteEnvVarsEnabled() { - return Boolean.TRUE.equals(getEnvVarsSubstitutionEnabled()); - } - - public boolean isPathMacroSupported() { - return Boolean.TRUE.equals(getPathMacroSupported()); - } - - public boolean isIgnoreMissing() { - return Boolean.TRUE.equals(getIgnoreMissing()); - } - - public boolean isEnableExperimentalIntegrations() { - return Boolean.TRUE.equals(getEnableExperimentalIntegrations()); - } - - public List getEntries() { - return Collections.unmodifiableList(entries); - } -} diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileTypeFactory.java b/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileTypeFactory.java deleted file mode 100644 index b36a6d6..0000000 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvFileTypeFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.ashald.envfile.platform; - -import com.intellij.openapi.fileTypes.*; -import org.jetbrains.annotations.NotNull; - -public class EnvFileTypeFactory extends FileTypeFactory { - @Override - public void createFileTypes(@NotNull FileTypeConsumer fileTypeConsumer) { - fileTypeConsumer.consume(EnvFileType.INSTANCE, new ExactFileNameMatcher(".env")); - fileTypeConsumer.consume(EnvFileType.INSTANCE, new ExtensionFileNameMatcher("env")); - fileTypeConsumer.consume(EnvFileType.INSTANCE, new WildcardFileNameMatcher(".env.*")); - } -} diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvVarsProviderExtension.java b/modules/platform/src/main/java/net/ashald/envfile/platform/EnvVarsProviderExtension.java deleted file mode 100644 index 445c8bf..0000000 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/EnvVarsProviderExtension.java +++ /dev/null @@ -1,82 +0,0 @@ -package net.ashald.envfile.platform; - -import com.intellij.diagnostic.PluginException; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.extensions.AbstractExtensionPointBean; -import com.intellij.openapi.extensions.ExtensionPointName; -import com.intellij.openapi.extensions.Extensions; -import com.intellij.openapi.util.LazyInstance; -import com.intellij.util.xmlb.annotations.Attribute; -import lombok.NonNull; -import lombok.val; -import net.ashald.envfile.EnvVarsProviderFactory; -import org.jetbrains.annotations.NotNull; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - - -public class EnvVarsProviderExtension extends AbstractExtensionPointBean { - @SuppressWarnings("WeakerAccess") - public static final ExtensionPointName EP_NAME = - new ExtensionPointName<>("net.ashald.envfile.envVarsProvider"); - - @Attribute("id") - public String id; - - @Attribute("factory") - public String factory; - - private final LazyInstance implementation = new LazyInstance() { - protected Class getInstanceClass() throws ClassNotFoundException { - return findClass(factory); - } - }; - - public EnvVarsProviderFactory getFactory() { - return implementation.getValue(); - } - - public static Optional getParserFactoryById(@NonNull String parserId) { - Map parsers = new HashMap<>(); - for (EnvVarsProviderExtension extension: Extensions.getExtensions(EP_NAME)) { - if (parsers.containsKey(extension.getId())) { - Logger.getInstance(EnvVarsProviderExtension.class).error(String.format( - "Cannot load parser '%s' with implementation class '%s' since there is already parser '%s' " + - "registered with the same id. Skipping.", - extension.getId(), extension.factory, parsers.get(extension.getId()) - )); - } else { - parsers.put(extension.getId(), extension); - } - } - val extension = parsers.get(parserId); - return Optional.ofNullable(extension) - .map(EnvVarsProviderExtension::getFactory); - } - - public static List getParserExtensions() { - List extensions = Arrays.asList(Extensions.getExtensions(EP_NAME)); - extensions.sort((o1, o2) -> o1.toString().compareToIgnoreCase(o2.toString())); - return extensions; - } - - public String getId() { - if (id == null) { - String error = "No id specified for environment variable provider factory " + factory; - if (myPluginDescriptor != null) { - throw new PluginException(error, myPluginDescriptor.getPluginId()); - } - throw new IllegalArgumentException(error); - } - return id.toLowerCase(); - } - - @Override - public String toString() { - return implementation.getValue().getTitle(); - } -} diff --git a/modules/platform/src/main/java/net/ashald/envfile/platform/ui/EnvFileConfigurationPanel.java b/modules/platform/src/main/java/net/ashald/envfile/platform/ui/EnvFileConfigurationPanel.java deleted file mode 100644 index b4df4e7..0000000 --- a/modules/platform/src/main/java/net/ashald/envfile/platform/ui/EnvFileConfigurationPanel.java +++ /dev/null @@ -1,306 +0,0 @@ -package net.ashald.envfile.platform.ui; - -import com.intellij.execution.configurations.RunConfigurationBase; -import com.intellij.ide.DataManager; -import com.intellij.openapi.actionSystem.ActionPlaces; -import com.intellij.openapi.actionSystem.AnAction; -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.DefaultActionGroup; -import com.intellij.openapi.fileChooser.FileChooser; -import com.intellij.openapi.fileChooser.FileChooserDescriptor; -import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.ui.popup.ListPopup; -import com.intellij.openapi.util.Conditions; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.ui.AnActionButton; -import com.intellij.ui.AnActionButtonUpdater; -import com.intellij.ui.BooleanTableCellRenderer; -import com.intellij.ui.ToolbarDecorator; -import com.intellij.ui.popup.PopupFactoryImpl; -import com.intellij.ui.table.TableView; -import com.intellij.util.ui.ColumnInfo; -import com.intellij.util.ui.JBUI; -import com.intellij.util.ui.ListTableModel; -import lombok.val; -import net.ashald.envfile.EnvVarsProviderFactory; -import net.ashald.envfile.platform.EnvFileEntry; -import net.ashald.envfile.platform.EnvFileSettings; -import net.ashald.envfile.platform.EnvVarsProviderExtension; -import net.ashald.envfile.platform.ui.table.EnvFileIsActiveColumnInfo; -import net.ashald.envfile.platform.ui.table.EnvFileIsExecutableColumnInfo; -import net.ashald.envfile.platform.ui.table.EnvFilePathColumnInfo; -import net.ashald.envfile.platform.ui.table.EnvFileTypeColumnInfo; -import net.ashald.envfile.providers.runconfig.RunConfigEnvVarsProvider; - -import javax.swing.BoxLayout; -import javax.swing.JCheckBox; -import javax.swing.JPanel; -import javax.swing.table.JTableHeader; -import javax.swing.table.TableColumn; -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.FontMetrics; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.ArrayList; -import java.util.LinkedList; - - -class EnvFileConfigurationPanel> extends JPanel { - private static final int MAX_RECENT = 5; - private static final LinkedList RECENT = new LinkedList<>(); - private final RunConfigurationBase runConfig; - - private final JCheckBox useEnvFileCheckBox; - private final JCheckBox substituteEnvVarsCheckBox; - private final JCheckBox supportPathMacroCheckBox; - private final JCheckBox ignoreMissingCheckBox; - private final JCheckBox experimentalIntegrationsCheckBox; - private final ListTableModel envFilesModel; - private final TableView envFilesTable; - - EnvFileConfigurationPanel(T configuration) { - runConfig = configuration; - - // Define Model - ColumnInfo columnIsActive = new EnvFileIsActiveColumnInfo(); - ColumnInfo columnIsExecutable = new EnvFileIsExecutableColumnInfo(); - ColumnInfo columnFile = new EnvFilePathColumnInfo(runConfig.getProject()); - ColumnInfo columnType = new EnvFileTypeColumnInfo(); - - envFilesModel = new ListTableModel<>(columnIsActive, columnIsExecutable, columnFile, columnType); - - // Create Table - envFilesTable = new TableView<>(envFilesModel); - envFilesTable.getEmptyText().setText("No environment variables files selected"); - - setUpColumnWidth(envFilesTable, 0, columnIsActive, 20); - setUpColumnWidth(envFilesTable, 1, columnIsExecutable, 20); - setUpColumnWidth(envFilesTable, 3, columnType, 50); - - envFilesTable.setColumnSelectionAllowed(false); - envFilesTable.setShowGrid(false); - envFilesTable.setDragEnabled(true); - envFilesTable.setShowHorizontalLines(false); - envFilesTable.setShowVerticalLines(false); - envFilesTable.setIntercellSpacing(new Dimension(0, 0)); - - // Create global activation flag - useEnvFileCheckBox = new JCheckBox("Enable EnvFile"); - useEnvFileCheckBox.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - envFilesTable.setEnabled(useEnvFileCheckBox.isSelected()); - substituteEnvVarsCheckBox.setEnabled(useEnvFileCheckBox.isSelected()); - supportPathMacroCheckBox.setEnabled(useEnvFileCheckBox.isSelected()); - ignoreMissingCheckBox.setEnabled(useEnvFileCheckBox.isSelected()); - experimentalIntegrationsCheckBox.setEnabled(useEnvFileCheckBox.isSelected()); - } - }); - substituteEnvVarsCheckBox = new JCheckBox("Substitute Environment Variables (${FOO} / ${BAR:-default} / $${ESCAPED})"); - supportPathMacroCheckBox = new JCheckBox("Process JetBrains path macro references ($PROJECT_DIR$)"); - ignoreMissingCheckBox = new JCheckBox("Ignore missing files"); - experimentalIntegrationsCheckBox = new JCheckBox("Enable experimental integrations (e.g. Gradle) - may break any time!"); - - // TODO: come up with a generic approach for this - envFilesModel.addRow( - EnvFileEntry.builder() - .parserId(RunConfigEnvVarsProvider.PARSER_ID) - .enabled(true) - .executable(false) - .build() - ); - - // Create Toolbar - Add/Remove/Move actions - final ToolbarDecorator envFilesTableDecorator = ToolbarDecorator.createDecorator(envFilesTable); - - final AnActionButtonUpdater updater = e -> useEnvFileCheckBox.isSelected(); - - envFilesTableDecorator - .setAddAction(button -> doAddAction(button, envFilesTable, envFilesModel)) - .setAddActionUpdater(updater) - .setRemoveActionUpdater(e -> { - boolean allEditable = true; - - for (EnvFileEntry entry : envFilesTable.getSelectedObjects()) { - val editable = - EnvVarsProviderExtension.getParserFactoryById(entry.getParserId()) - .map(EnvVarsProviderFactory::isEditable) - .orElse(true); - - if (!editable) { - allEditable = false; - break; - } - } - - return updater.isEnabled(e) && envFilesTable.getSelectedRowCount() >= 1 && allEditable; - }); - - JPanel optionsPanel = new JPanel(); - optionsPanel.setBorder(JBUI.Borders.empty(5, 22, 5, 5)); - optionsPanel.setLayout(new BoxLayout(optionsPanel, BoxLayout.Y_AXIS)); - - optionsPanel.add(substituteEnvVarsCheckBox); - optionsPanel.add(supportPathMacroCheckBox); - optionsPanel.add(ignoreMissingCheckBox); - optionsPanel.add(experimentalIntegrationsCheckBox); - - // Compose UI - JPanel checkboxPanel = new JPanel(); - checkboxPanel.setLayout(new BoxLayout(checkboxPanel, BoxLayout.Y_AXIS)); - checkboxPanel.add(useEnvFileCheckBox); - checkboxPanel.add(optionsPanel); - - optionsPanel.setLocation(100, 100); - - JPanel envFilesTableDecoratorPanel = envFilesTableDecorator.createPanel(); - Dimension size = new Dimension(-1, 150); - envFilesTableDecoratorPanel.setMinimumSize(size); - envFilesTableDecoratorPanel.setPreferredSize(size); - - setLayout(new BorderLayout()); - add(checkboxPanel, BorderLayout.NORTH); - add(envFilesTableDecoratorPanel, BorderLayout.CENTER); - } - - private void setUpColumnWidth(TableView table, int columnIdx, ColumnInfo columnInfo, int extend) { - JTableHeader tableHeader = table.getTableHeader(); - FontMetrics fontMetrics = tableHeader.getFontMetrics(tableHeader.getFont()); - - int preferredWidth = fontMetrics.stringWidth(columnInfo.getName()) + extend; - - table.getColumnModel().getColumn(columnIdx).setCellRenderer(new BooleanTableCellRenderer()); - TableColumn tableColumn = tableHeader.getColumnModel().getColumn(columnIdx); - tableColumn.setWidth(preferredWidth); - tableColumn.setPreferredWidth(preferredWidth); - tableColumn.setMinWidth(preferredWidth); - tableColumn.setMaxWidth(preferredWidth); - } - - private void doAddAction( - AnActionButton button, - final TableView table, - final ListTableModel model - ) { - DefaultActionGroup actionGroup = new DefaultActionGroup(); - - for (final EnvVarsProviderExtension extension : EnvVarsProviderExtension.getParserExtensions()) { - if (!extension.getFactory().isEditable()) { - continue; - } - - final String title = String.format("%s file", extension.getFactory().getTitle()); - AnAction anAction = new AnAction(title) { - @Override - public void actionPerformed(AnActionEvent e) { - final FileChooserDescriptor chooserDescriptor = FileChooserDescriptorFactory - .createSingleFileNoJarsDescriptor() - .withTitle(String.format("Select %s", title)); - - Project project = runConfig.getProject(); - - VirtualFile selectedFile = FileChooser.chooseFile(chooserDescriptor, project, null); - - if (selectedFile != null) { - String selectedPath = selectedFile.getPath(); - String baseDir = runConfig.getProject().getBaseDir().getPath(); - if (selectedPath.startsWith(baseDir)) { - selectedPath = selectedPath.substring(baseDir.length() + 1); - } - - ArrayList newList = new ArrayList(model.getItems()); - final EnvFileEntry newOptions = EnvFileEntry.builder() - .parserId(extension.getId()) - .path(selectedPath) - .enabled(true) - .executable(false) - .build(); - - newList.add(newOptions); - model.setItems(newList); - int index = model.getRowCount() - 1; - model.fireTableRowsInserted(index, index); - table.setRowSelectionInterval(index, index); - - synchronized (RECENT) { - RECENT.remove(newOptions); - RECENT.addFirst(newOptions); - if (RECENT.size() > MAX_RECENT) RECENT.removeLast(); - } - } - } - }; - actionGroup.add(anAction); - } - synchronized (RECENT) { - if (!RECENT.isEmpty()) { - actionGroup.addSeparator("Recent"); - - for (final EnvFileEntry entry : RECENT) { - val typeTitle = EnvVarsProviderExtension.getParserFactoryById(entry.getParserId()) - .map(EnvVarsProviderFactory::getTitle) - .orElse(String.format("<%s>", entry.getParserId())); - - String title = String.format("%s -> %s", typeTitle, entry.getPath()); - String shortTitle = title.length() < 81 ? title : title.replaceFirst("(.{39}).+(.{39})", "$1...$2"); - AnAction anAction = new AnAction(shortTitle, title, null) { - @Override - public void actionPerformed(AnActionEvent e) { - ArrayList newList = new ArrayList(model.getItems()); - newList.add(entry); - model.setItems(newList); - int index = model.getRowCount() - 1; - model.fireTableRowsInserted(index, index); - table.setRowSelectionInterval(index, index); - synchronized (RECENT) { - RECENT.remove(entry); - RECENT.addFirst(entry); - } - } - }; - actionGroup.add(anAction); - } - } - } - - final String popupPlace = ActionPlaces.getActionGroupPopupPlace(getClass().getSimpleName()); - final ListPopup popup = - new PopupFactoryImpl.ActionGroupPopup( - "Add...", actionGroup, DataManager.getInstance().getDataContext(this), - false, false, false, false, - null, -1, Conditions.alwaysTrue(), popupPlace); - - if (button.getPreferredPopupPoint() != null) { - popup.show(button.getPreferredPopupPoint()); - } - } - - EnvFileSettings getState() { - return EnvFileSettings.builder() - .pluginEnabled(useEnvFileCheckBox.isSelected()) - .envVarsSubstitutionEnabled(substituteEnvVarsCheckBox.isSelected()) - .pathMacroSupported(supportPathMacroCheckBox.isSelected()) - .ignoreMissing(ignoreMissingCheckBox.isSelected()) - .enableExperimentalIntegrations(experimentalIntegrationsCheckBox.isSelected()) - .entries(envFilesModel.getItems()) - .build(); - } - - void setState(EnvFileSettings state) { - useEnvFileCheckBox.setSelected(state.isPluginEnabledEnabled()); - substituteEnvVarsCheckBox.setSelected(state.isSubstituteEnvVarsEnabled()); - supportPathMacroCheckBox.setSelected(state.isPathMacroSupported()); - ignoreMissingCheckBox.setSelected(state.isIgnoreMissing()); - experimentalIntegrationsCheckBox.setSelected(state.isEnableExperimentalIntegrations()); - - envFilesTable.setEnabled(state.isPluginEnabledEnabled()); - substituteEnvVarsCheckBox.setEnabled(state.isPluginEnabledEnabled()); - supportPathMacroCheckBox.setEnabled(state.isPluginEnabledEnabled()); - ignoreMissingCheckBox.setEnabled(state.isPluginEnabledEnabled()); - experimentalIntegrationsCheckBox.setEnabled(state.isPluginEnabledEnabled()); - - envFilesModel.setItems(new ArrayList<>(state.getEntries())); - } -} diff --git a/modules/products/goland/build.gradle b/modules/products/goland/build.gradle deleted file mode 100644 index 90f3cb9..0000000 --- a/modules/products/goland/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -plugins { - id "java" - id "org.jetbrains.intellij.platform.module" -} - -repositories { - intellijPlatform { - defaultRepositories() - } -} - -dependencies { - intellijPlatform { - goland(jetbrains.version) - bundledPlugin("org.jetbrains.plugins.go") - instrumentationTools() - } - - implementation project(":envfile-platform") - implementation 'org.jetbrains:annotations:23.0.0' - - compileOnly 'org.projectlombok:lombok:1.18.42' - annotationProcessor 'org.projectlombok:lombok:1.18.42' -} diff --git a/modules/products/goland/build.gradle.kts b/modules/products/goland/build.gradle.kts new file mode 100644 index 0000000..a0a513e --- /dev/null +++ b/modules/products/goland/build.gradle.kts @@ -0,0 +1,26 @@ +plugins { + id("java") + id("org.jetbrains.intellij.platform.module") +} + +repositories { + intellijPlatform { + defaultRepositories() + } +} + +// Helper to access 'jetbrains' extra property in a type-safe way +val jetbrains: Map by rootProject.extra + +dependencies { + intellijPlatform { + goland(jetbrains["version"]!!) + bundledPlugin("org.jetbrains.plugins.go") + } + + implementation(project(":envfile-platform")) + implementation("org.jetbrains:annotations:23.0.0") + + compileOnly("org.projectlombok:lombok:1.18.42") + annotationProcessor("org.projectlombok:lombok:1.18.42") +} diff --git a/modules/products/goland/src/main/java/net/ashald/envfile/products/goland/GolandRunConfigurationExtension.java b/modules/products/goland/src/main/java/com/cmmoran/envfile/products/goland/GolandRunConfigurationExtension.java similarity index 94% rename from modules/products/goland/src/main/java/net/ashald/envfile/products/goland/GolandRunConfigurationExtension.java rename to modules/products/goland/src/main/java/com/cmmoran/envfile/products/goland/GolandRunConfigurationExtension.java index 967beb3..e306e2d 100644 --- a/modules/products/goland/src/main/java/net/ashald/envfile/products/goland/GolandRunConfigurationExtension.java +++ b/modules/products/goland/src/main/java/com/cmmoran/envfile/products/goland/GolandRunConfigurationExtension.java @@ -1,19 +1,18 @@ -package net.ashald.envfile.products.goland; +package com.cmmoran.envfile.products.goland; +import com.cmmoran.envfile.platform.EnvFileEnvironmentVariables; +import com.cmmoran.envfile.platform.ui.EnvFileConfigurationEditor; import com.goide.execution.GoRunConfigurationBase; import com.goide.execution.extension.GoRunConfigurationExtension; import com.intellij.execution.ExecutionException; import com.intellij.execution.configurations.GeneralCommandLine; import com.intellij.execution.configurations.RunnerSettings; import com.intellij.openapi.options.SettingsEditor; -import net.ashald.envfile.platform.EnvFileEnvironmentVariables; -import net.ashald.envfile.platform.ui.EnvFileConfigurationEditor; +import java.util.Map; import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Map; - public class GolandRunConfigurationExtension extends GoRunConfigurationExtension { @Nullable diff --git a/modules/products/idea/build.gradle b/modules/products/idea/build.gradle deleted file mode 100644 index 28688e1..0000000 --- a/modules/products/idea/build.gradle +++ /dev/null @@ -1,30 +0,0 @@ -plugins { - id "java" - id "org.jetbrains.intellij.platform.module" -} - -repositories { - intellijPlatform { - defaultRepositories() - } -} - -dependencies { - intellijPlatform { - intellijIdeaCommunity(jetbrains.version) - bundledPlugins( - "com.intellij.java", - "com.intellij.gradle", - "org.jetbrains.idea.maven" - ) - plugin(jetbrains.scala) - instrumentationTools() - } - - implementation project(":envfile-core") - implementation project(":envfile-platform") - implementation 'org.jetbrains:annotations:23.0.0' - - compileOnly 'org.projectlombok:lombok:1.18.42' - annotationProcessor 'org.projectlombok:lombok:1.18.42' -} diff --git a/modules/products/idea/build.gradle.kts b/modules/products/idea/build.gradle.kts new file mode 100644 index 0000000..fffc9cc --- /dev/null +++ b/modules/products/idea/build.gradle.kts @@ -0,0 +1,33 @@ +plugins { + id("java") + id("org.jetbrains.intellij.platform.module") +} + +repositories { + intellijPlatform { + defaultRepositories() + } +} + +// Helper to access 'jetbrains' extra property in a type-safe way +val jetbrains: Map by rootProject.extra + +dependencies { + intellijPlatform { + intellijIdeaCommunity(jetbrains["version"]!!) + bundledPlugins( + "com.intellij.java", + "com.intellij.gradle", + "org.jetbrains.idea.maven" + ) + plugin(jetbrains["scala"]!!) + instrumentationTools() + } + + implementation(project(":envfile-core")) + implementation(project(":envfile-platform")) + implementation("org.jetbrains:annotations:23.0.0") + + compileOnly("org.projectlombok:lombok:1.18.42") + annotationProcessor("org.projectlombok:lombok:1.18.42") +} diff --git a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/GradleEnvFileProvider.java b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/GradleEnvFileProvider.java similarity index 94% rename from modules/products/idea/src/main/java/net/ashald/envfile/products/idea/GradleEnvFileProvider.java rename to modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/GradleEnvFileProvider.java index 63d7021..446503c 100644 --- a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/GradleEnvFileProvider.java +++ b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/GradleEnvFileProvider.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.products.idea; +package com.cmmoran.envfile.products.idea; import com.intellij.execution.ExecutionException; import com.intellij.execution.Executor; @@ -6,8 +6,8 @@ import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.openapi.project.Project; import com.intellij.task.ExecuteRunConfigurationTask; -import net.ashald.envfile.platform.EnvFileEnvironmentVariables; -import net.ashald.envfile.platform.ui.EnvFileConfigurationEditor; +import com.cmmoran.envfile.platform.EnvFileEnvironmentVariables; +import com.cmmoran.envfile.platform.ui.EnvFileConfigurationEditor; import org.jetbrains.plugins.gradle.execution.build.GradleExecutionEnvironmentProvider; import org.jetbrains.plugins.gradle.service.execution.GradleRunConfiguration; diff --git a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/IdeaRunConfigurationExtension.java b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/IdeaRunConfigurationExtension.java similarity index 94% rename from modules/products/idea/src/main/java/net/ashald/envfile/products/idea/IdeaRunConfigurationExtension.java rename to modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/IdeaRunConfigurationExtension.java index a77494a..519b52e 100644 --- a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/IdeaRunConfigurationExtension.java +++ b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/IdeaRunConfigurationExtension.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.products.idea; +package com.cmmoran.envfile.products.idea; import com.intellij.execution.ExecutionException; import com.intellij.execution.RunConfigurationExtension; @@ -9,9 +9,9 @@ import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.WriteExternalException; -import net.ashald.envfile.platform.EnvFileEnvironmentVariables; -import net.ashald.envfile.platform.ui.EnvFileConfigurationEditor; -import net.ashald.envfile.utils.ReadOnceMap; +import com.cmmoran.envfile.platform.EnvFileEnvironmentVariables; +import com.cmmoran.envfile.platform.ui.EnvFileConfigurationEditor; +import com.cmmoran.envfile.utils.ReadOnceMap; import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/MavenEnvFileProvider.java b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/MavenEnvFileProvider.java similarity index 94% rename from modules/products/idea/src/main/java/net/ashald/envfile/products/idea/MavenEnvFileProvider.java rename to modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/MavenEnvFileProvider.java index 2024119..5786a3b 100644 --- a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/MavenEnvFileProvider.java +++ b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/MavenEnvFileProvider.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.products.idea; +package com.cmmoran.envfile.products.idea; import java.util.Map; import java.util.Optional; @@ -9,8 +9,8 @@ import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.openapi.project.Project; import com.intellij.task.ExecuteRunConfigurationTask; -import net.ashald.envfile.platform.EnvFileEnvironmentVariables; -import net.ashald.envfile.platform.ui.EnvFileConfigurationEditor; +import com.cmmoran.envfile.platform.EnvFileEnvironmentVariables; +import com.cmmoran.envfile.platform.ui.EnvFileConfigurationEditor; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.idea.maven.execution.MavenRunConfiguration; diff --git a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtEnvFileConfigurationFactory.java b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtEnvFileConfigurationFactory.java similarity index 86% rename from modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtEnvFileConfigurationFactory.java rename to modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtEnvFileConfigurationFactory.java index 7035e8d..70f2bef 100644 --- a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtEnvFileConfigurationFactory.java +++ b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtEnvFileConfigurationFactory.java @@ -1,10 +1,9 @@ -package net.ashald.envfile.products.idea.scala; +package com.cmmoran.envfile.products.idea.scala; import com.intellij.execution.configurations.ConfigurationType; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.NotNull; -import org.jetbrains.sbt.runner.SbtRunConfiguration; import org.jetbrains.sbt.runner.SbtRunConfigurationFactory; public class SbtEnvFileConfigurationFactory extends SbtRunConfigurationFactory { diff --git a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtEnvFileConfigurationType.java b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtEnvFileConfigurationType.java similarity index 91% rename from modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtEnvFileConfigurationType.java rename to modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtEnvFileConfigurationType.java index 88bdf37..6e6f5af 100644 --- a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtEnvFileConfigurationType.java +++ b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtEnvFileConfigurationType.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.products.idea.scala; +package com.cmmoran.envfile.products.idea.scala; import com.intellij.execution.configurations.ConfigurationFactory; import org.jetbrains.annotations.NotNull; diff --git a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtEnvFileRunConfiguration.java b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtEnvFileRunConfiguration.java similarity index 95% rename from modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtEnvFileRunConfiguration.java rename to modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtEnvFileRunConfiguration.java index 0b2eead..c1d2819 100644 --- a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtEnvFileRunConfiguration.java +++ b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtEnvFileRunConfiguration.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.products.idea.scala; +package com.cmmoran.envfile.products.idea.scala; import com.intellij.execution.configurations.ConfigurationFactory; import com.intellij.execution.configurations.RunConfiguration; diff --git a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtRunConfigurationExtensionManager.java b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtRunConfigurationExtensionManager.java similarity index 92% rename from modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtRunConfigurationExtensionManager.java rename to modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtRunConfigurationExtensionManager.java index 60bb87b..bf51a35 100644 --- a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtRunConfigurationExtensionManager.java +++ b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtRunConfigurationExtensionManager.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.products.idea.scala; +package com.cmmoran.envfile.products.idea.scala; import com.intellij.execution.RunConfigurationExtension; import com.intellij.execution.configuration.RunConfigurationExtensionsManager; @@ -14,4 +14,4 @@ public SbtRunConfigurationExtensionManager() { public static SbtRunConfigurationExtensionManager getInstance() { return ServiceManager.getService(SbtRunConfigurationExtensionManager.class); } -} \ No newline at end of file +} diff --git a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtRunEnvFileConfigurationEditor.java b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtRunEnvFileConfigurationEditor.java similarity index 94% rename from modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtRunEnvFileConfigurationEditor.java rename to modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtRunEnvFileConfigurationEditor.java index 74242ff..b4d7ee5 100644 --- a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtRunEnvFileConfigurationEditor.java +++ b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtRunEnvFileConfigurationEditor.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.products.idea.scala; +package com.cmmoran.envfile.products.idea.scala; import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.project.Project; diff --git a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtRunEnvFileConfigurationForm.java b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtRunEnvFileConfigurationForm.java similarity index 87% rename from modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtRunEnvFileConfigurationForm.java rename to modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtRunEnvFileConfigurationForm.java index a1f4a6b..7db981c 100644 --- a/modules/products/idea/src/main/java/net/ashald/envfile/products/idea/scala/SbtRunEnvFileConfigurationForm.java +++ b/modules/products/idea/src/main/java/com/cmmoran/envfile/products/idea/scala/SbtRunEnvFileConfigurationForm.java @@ -1,9 +1,9 @@ -package net.ashald.envfile.products.idea.scala; +package com.cmmoran.envfile.products.idea.scala; import com.intellij.execution.ExecutionException; import com.intellij.openapi.project.Project; -import net.ashald.envfile.platform.EnvFileEnvironmentVariables; -import net.ashald.envfile.platform.ui.EnvFileConfigurationEditor; +import com.cmmoran.envfile.platform.EnvFileEnvironmentVariables; +import com.cmmoran.envfile.platform.ui.EnvFileConfigurationEditor; import org.jetbrains.sbt.runner.SbtRunConfiguration; import org.jetbrains.sbt.runner.SbtRunConfigurationForm; diff --git a/modules/products/pycharm/build.gradle b/modules/products/pycharm/build.gradle deleted file mode 100644 index 13c6e2d..0000000 --- a/modules/products/pycharm/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -plugins { - id "java" - id "org.jetbrains.intellij.platform.module" -} - -repositories { - intellijPlatform { - defaultRepositories() - } -} - -dependencies { - intellijPlatform { - pycharmCommunity(jetbrains.version) - bundledPlugin("PythonCore") - instrumentationTools() - } - - implementation project(":envfile-platform") - implementation 'org.jetbrains:annotations:23.0.0' - - compileOnly 'org.projectlombok:lombok:1.18.42' - annotationProcessor 'org.projectlombok:lombok:1.18.42' -} diff --git a/modules/products/pycharm/build.gradle.kts b/modules/products/pycharm/build.gradle.kts new file mode 100644 index 0000000..a88b8d9 --- /dev/null +++ b/modules/products/pycharm/build.gradle.kts @@ -0,0 +1,27 @@ +plugins { + id("java") + id("org.jetbrains.intellij.platform.module") +} + +repositories { + intellijPlatform { + defaultRepositories() + } +} + +// Helper to access 'jetbrains' extra property in a type-safe way +val jetbrains: Map by rootProject.extra + +dependencies { + intellijPlatform { + pycharmCommunity(jetbrains["version"]!!) + bundledPlugin("PythonCore") + instrumentationTools() + } + + implementation(project(":envfile-platform")) + implementation("org.jetbrains:annotations:23.0.0") + + compileOnly("org.projectlombok:lombok:1.18.42") + annotationProcessor("org.projectlombok:lombok:1.18.42") +} diff --git a/modules/products/pycharm/src/main/java/net/ashald/envfile/products/pycharm/EnvFileProvider.java b/modules/products/pycharm/src/main/java/com/cmmoran/envfile/products/pycharm/EnvFileProvider.java similarity index 90% rename from modules/products/pycharm/src/main/java/net/ashald/envfile/products/pycharm/EnvFileProvider.java rename to modules/products/pycharm/src/main/java/com/cmmoran/envfile/products/pycharm/EnvFileProvider.java index c87c61d..4b35113 100644 --- a/modules/products/pycharm/src/main/java/net/ashald/envfile/products/pycharm/EnvFileProvider.java +++ b/modules/products/pycharm/src/main/java/com/cmmoran/envfile/products/pycharm/EnvFileProvider.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.products.pycharm; +package com.cmmoran.envfile.products.pycharm; import com.intellij.execution.ExecutionException; import com.intellij.openapi.project.Project; @@ -7,8 +7,8 @@ import com.jetbrains.python.run.PythonRunParams; import com.jetbrains.python.run.target.HelpersAwareTargetEnvironmentRequest; import com.jetbrains.python.run.target.PythonCommandLineTargetEnvironmentProvider; -import net.ashald.envfile.platform.EnvFileEnvironmentVariables; -import net.ashald.envfile.platform.ui.EnvFileConfigurationEditor; +import com.cmmoran.envfile.platform.EnvFileEnvironmentVariables; +import com.cmmoran.envfile.platform.ui.EnvFileConfigurationEditor; import org.jetbrains.annotations.NotNull; import java.util.Map; @@ -43,4 +43,4 @@ public void extendTargetEnvironment( } } } -} \ No newline at end of file +} diff --git a/modules/products/pycharm/src/main/java/net/ashald/envfile/products/pycharm/PyCharmRunConfigurationExtension.java b/modules/products/pycharm/src/main/java/com/cmmoran/envfile/products/pycharm/PyCharmRunConfigurationExtension.java similarity index 93% rename from modules/products/pycharm/src/main/java/net/ashald/envfile/products/pycharm/PyCharmRunConfigurationExtension.java rename to modules/products/pycharm/src/main/java/com/cmmoran/envfile/products/pycharm/PyCharmRunConfigurationExtension.java index 77fdf49..fc9d093 100644 --- a/modules/products/pycharm/src/main/java/net/ashald/envfile/products/pycharm/PyCharmRunConfigurationExtension.java +++ b/modules/products/pycharm/src/main/java/com/cmmoran/envfile/products/pycharm/PyCharmRunConfigurationExtension.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.products.pycharm; +package com.cmmoran.envfile.products.pycharm; import com.intellij.execution.ExecutionException; import com.intellij.execution.configurations.GeneralCommandLine; @@ -8,13 +8,12 @@ import com.intellij.openapi.util.WriteExternalException; import com.jetbrains.python.run.AbstractPythonRunConfiguration; import com.jetbrains.python.run.PythonRunConfigurationExtension; -import net.ashald.envfile.platform.EnvFileEnvironmentVariables; -import net.ashald.envfile.platform.ui.EnvFileConfigurationEditor; +import com.cmmoran.envfile.platform.EnvFileEnvironmentVariables; +import com.cmmoran.envfile.platform.ui.EnvFileConfigurationEditor; import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.HashMap; import java.util.Map; public class PyCharmRunConfigurationExtension extends PythonRunConfigurationExtension { diff --git a/modules/products/rubymine/build.gradle b/modules/products/rubymine/build.gradle deleted file mode 100644 index 0f06195..0000000 --- a/modules/products/rubymine/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -plugins { - id "java" - id "org.jetbrains.intellij.platform.module" -} - -repositories { - intellijPlatform { - defaultRepositories() - } -} - -dependencies { - intellijPlatform { - rubymine(jetbrains.version) - bundledPlugin("org.jetbrains.plugins.ruby") - instrumentationTools() - } - - implementation project(":envfile-platform") - implementation 'org.jetbrains:annotations:23.0.0' - - compileOnly 'org.projectlombok:lombok:1.18.42' - annotationProcessor 'org.projectlombok:lombok:1.18.42' -} diff --git a/modules/products/rubymine/build.gradle.kts b/modules/products/rubymine/build.gradle.kts new file mode 100644 index 0000000..0f12aaf --- /dev/null +++ b/modules/products/rubymine/build.gradle.kts @@ -0,0 +1,27 @@ +plugins { + id("java") + id("org.jetbrains.intellij.platform.module") +} + +repositories { + intellijPlatform { + defaultRepositories() + } +} + +// Helper to access 'jetbrains' extra property in a type-safe way +val jetbrains: Map by rootProject.extra + +dependencies { + intellijPlatform { + rubymine(jetbrains["version"]!!) + bundledPlugin("org.jetbrains.plugins.ruby") + instrumentationTools() + } + + implementation(project(":envfile-platform")) + implementation("org.jetbrains:annotations:23.0.0") + + compileOnly("org.projectlombok:lombok:1.18.42") + annotationProcessor("org.projectlombok:lombok:1.18.42") +} diff --git a/modules/products/rubymine/src/main/java/net/ashald/envfile/products/rubymine/RubyMineRunConfigurationExtension.java b/modules/products/rubymine/src/main/java/com/cmmoran/envfile/products/rubymine/RubyMineRunConfigurationExtension.java similarity index 94% rename from modules/products/rubymine/src/main/java/net/ashald/envfile/products/rubymine/RubyMineRunConfigurationExtension.java rename to modules/products/rubymine/src/main/java/com/cmmoran/envfile/products/rubymine/RubyMineRunConfigurationExtension.java index bf0e304..ae792ed 100644 --- a/modules/products/rubymine/src/main/java/net/ashald/envfile/products/rubymine/RubyMineRunConfigurationExtension.java +++ b/modules/products/rubymine/src/main/java/com/cmmoran/envfile/products/rubymine/RubyMineRunConfigurationExtension.java @@ -1,4 +1,4 @@ -package net.ashald.envfile.products.rubymine; +package com.cmmoran.envfile.products.rubymine; import com.intellij.execution.ExecutionException; import com.intellij.execution.configurations.GeneralCommandLine; @@ -6,8 +6,8 @@ import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.WriteExternalException; -import net.ashald.envfile.platform.EnvFileEnvironmentVariables; -import net.ashald.envfile.platform.ui.EnvFileConfigurationEditor; +import com.cmmoran.envfile.platform.EnvFileEnvironmentVariables; +import com.cmmoran.envfile.platform.ui.EnvFileConfigurationEditor; import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/main/resources/META-INF/envfile-goland.xml b/src/main/resources/META-INF/envfile-goland.xml index 1d220f6..860e8fc 100644 --- a/src/main/resources/META-INF/envfile-goland.xml +++ b/src/main/resources/META-INF/envfile-goland.xml @@ -1,5 +1,5 @@ - + - + diff --git a/src/main/resources/META-INF/envfile-gradle.xml b/src/main/resources/META-INF/envfile-gradle.xml index c63a570..f5aafec 100644 --- a/src/main/resources/META-INF/envfile-gradle.xml +++ b/src/main/resources/META-INF/envfile-gradle.xml @@ -1,5 +1,5 @@ - + diff --git a/src/main/resources/META-INF/envfile-idea.xml b/src/main/resources/META-INF/envfile-idea.xml index 1330c15..5d3e2fe 100644 --- a/src/main/resources/META-INF/envfile-idea.xml +++ b/src/main/resources/META-INF/envfile-idea.xml @@ -1,6 +1,6 @@ - + diff --git a/src/main/resources/META-INF/envfile-pycharm.xml b/src/main/resources/META-INF/envfile-pycharm.xml index 73975a9..11e3b96 100644 --- a/src/main/resources/META-INF/envfile-pycharm.xml +++ b/src/main/resources/META-INF/envfile-pycharm.xml @@ -1,6 +1,6 @@ - - + + diff --git a/src/main/resources/META-INF/envfile-rubymine.xml b/src/main/resources/META-INF/envfile-rubymine.xml index 52e3a99..8d7335b 100644 --- a/src/main/resources/META-INF/envfile-rubymine.xml +++ b/src/main/resources/META-INF/envfile-rubymine.xml @@ -1,5 +1,5 @@ - + diff --git a/src/main/resources/META-INF/envfile-sbt.xml b/src/main/resources/META-INF/envfile-sbt.xml index eb85412..c165fcf 100644 --- a/src/main/resources/META-INF/envfile-sbt.xml +++ b/src/main/resources/META-INF/envfile-sbt.xml @@ -1,5 +1,5 @@ - + - + diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index 90ea94f..41716b0 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -1,8 +1,8 @@ - net.ashald.envfile - EnvFile + com.cmmoran.envfile + EnvFile-CM 4.1.0 - Borys Pierov + chris moran EnvFile @@ -56,21 +56,27 @@ com.intellij.modules.lang - - + + - - - - + + + + - - - + + + org.intellij.scala