From 0c1710029ff84c8343750485aed351c78ce7c3f1 Mon Sep 17 00:00:00 2001 From: JPilson Date: Tue, 16 Apr 2024 20:33:57 +0200 Subject: [PATCH] feat: Add naming convention setting for presets Implemented a new setting, `getCaseFormat`, in the `ProjectSettings` interface, returning the naming convention used. Also extended corresponding implementations (`DefaultPreset`, `VueI18nPreset`, `ReactI18NextPreset`, `SettingsTestPreset`) to return `NamingConvention.CAMEL_CASE`. A new enum `NamingConvention` was created for this, with options `SNAKE_CASE` and `CAMEL_CASE`. --- .../easyi18n/settings/NamingConvention.java | 18 ++++++++++++++++++ .../easyi18n/settings/ProjectSettings.java | 2 ++ .../settings/presets/DefaultPreset.java | 6 ++++++ .../settings/presets/ReactI18NextPreset.java | 6 ++++++ .../settings/presets/VueI18nPreset.java | 6 ++++++ .../easyi18n/settings/SettingsTestPreset.java | 9 ++++++++- 6 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 src/main/java/de/marhali/easyi18n/settings/NamingConvention.java diff --git a/src/main/java/de/marhali/easyi18n/settings/NamingConvention.java b/src/main/java/de/marhali/easyi18n/settings/NamingConvention.java new file mode 100644 index 0000000..9feaec5 --- /dev/null +++ b/src/main/java/de/marhali/easyi18n/settings/NamingConvention.java @@ -0,0 +1,18 @@ +package de.marhali.easyi18n.settings; + +import com.google.common.base.CaseFormat; + +public enum NamingConvention { + SNAKE_CASE("Snake"), + CAMEL_CASE("Camel"),; + private final String name; + + private NamingConvention(String name) { + this.name = name; + } + + @Override + public String toString() { + return super.name().toLowerCase(); + } +} diff --git a/src/main/java/de/marhali/easyi18n/settings/ProjectSettings.java b/src/main/java/de/marhali/easyi18n/settings/ProjectSettings.java index 019408a..fdf4e4b 100644 --- a/src/main/java/de/marhali/easyi18n/settings/ProjectSettings.java +++ b/src/main/java/de/marhali/easyi18n/settings/ProjectSettings.java @@ -1,5 +1,6 @@ package de.marhali.easyi18n.settings; +import com.google.common.base.CaseFormat; import de.marhali.easyi18n.io.parser.ParserStrategyType; import de.marhali.easyi18n.io.folder.FolderStrategyType; @@ -34,4 +35,5 @@ public interface ProjectSettings { // Experimental Configuration boolean isAlwaysFold(); String getFlavorTemplate(); + @NotNull NamingConvention getCaseFormat(); } diff --git a/src/main/java/de/marhali/easyi18n/settings/presets/DefaultPreset.java b/src/main/java/de/marhali/easyi18n/settings/presets/DefaultPreset.java index 383a5d3..c475019 100644 --- a/src/main/java/de/marhali/easyi18n/settings/presets/DefaultPreset.java +++ b/src/main/java/de/marhali/easyi18n/settings/presets/DefaultPreset.java @@ -2,6 +2,7 @@ package de.marhali.easyi18n.settings.presets; import de.marhali.easyi18n.io.parser.ParserStrategyType; import de.marhali.easyi18n.io.folder.FolderStrategyType; +import de.marhali.easyi18n.settings.NamingConvention; import de.marhali.easyi18n.settings.ProjectSettings; import org.jetbrains.annotations.NotNull; @@ -91,4 +92,9 @@ public class DefaultPreset implements ProjectSettings { public String getFlavorTemplate() { return "$i18n.t"; } + + @Override + public @NotNull NamingConvention getCaseFormat() { + return NamingConvention.CAMEL_CASE; + } } diff --git a/src/main/java/de/marhali/easyi18n/settings/presets/ReactI18NextPreset.java b/src/main/java/de/marhali/easyi18n/settings/presets/ReactI18NextPreset.java index 26c16b7..6d44310 100644 --- a/src/main/java/de/marhali/easyi18n/settings/presets/ReactI18NextPreset.java +++ b/src/main/java/de/marhali/easyi18n/settings/presets/ReactI18NextPreset.java @@ -1,7 +1,9 @@ package de.marhali.easyi18n.settings.presets; +import com.google.common.base.CaseFormat; import de.marhali.easyi18n.io.parser.ParserStrategyType; import de.marhali.easyi18n.io.folder.FolderStrategyType; +import de.marhali.easyi18n.settings.NamingConvention; import de.marhali.easyi18n.settings.ProjectSettings; import org.jetbrains.annotations.NotNull; @@ -91,4 +93,8 @@ public class ReactI18NextPreset implements ProjectSettings { public String getFlavorTemplate() { return "$i18n.t"; } + @Override + public @NotNull NamingConvention getCaseFormat() { + return NamingConvention.CAMEL_CASE; + } } diff --git a/src/main/java/de/marhali/easyi18n/settings/presets/VueI18nPreset.java b/src/main/java/de/marhali/easyi18n/settings/presets/VueI18nPreset.java index 491edf8..b720d75 100644 --- a/src/main/java/de/marhali/easyi18n/settings/presets/VueI18nPreset.java +++ b/src/main/java/de/marhali/easyi18n/settings/presets/VueI18nPreset.java @@ -2,6 +2,7 @@ package de.marhali.easyi18n.settings.presets; import de.marhali.easyi18n.io.parser.ParserStrategyType; import de.marhali.easyi18n.io.folder.FolderStrategyType; +import de.marhali.easyi18n.settings.NamingConvention; import de.marhali.easyi18n.settings.ProjectSettings; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -90,4 +91,9 @@ public class VueI18nPreset implements ProjectSettings { public String getFlavorTemplate() { return "$i18n.t"; } + + @Override + public @NotNull NamingConvention getCaseFormat() { + return NamingConvention.CAMEL_CASE; + } } diff --git a/src/test/java/de/marhali/easyi18n/settings/SettingsTestPreset.java b/src/test/java/de/marhali/easyi18n/settings/SettingsTestPreset.java index ab646ec..b76e185 100644 --- a/src/test/java/de/marhali/easyi18n/settings/SettingsTestPreset.java +++ b/src/test/java/de/marhali/easyi18n/settings/SettingsTestPreset.java @@ -1,5 +1,6 @@ package de.marhali.easyi18n.settings; +import com.google.common.base.CaseFormat; import de.marhali.easyi18n.io.folder.FolderStrategyType; import de.marhali.easyi18n.io.parser.ParserStrategyType; @@ -8,6 +9,7 @@ import org.jetbrains.annotations.Nullable; /** * Settings preset to test the functionality of the settings service. + * * @author marhali */ public class SettingsTestPreset implements ProjectSettings { @@ -88,6 +90,11 @@ public class SettingsTestPreset implements ProjectSettings { @Override public String getFlavorTemplate() { - return ""; + return "t"; + } + + @Override + public @NotNull NamingConvention getCaseFormat() { + return NamingConvention.CAMEL_CASE; } }