aboutsummaryrefslogtreecommitdiff
path: root/src/me/laria/code/idea_caseconv/CamelCaseAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/me/laria/code/idea_caseconv/CamelCaseAction.java')
-rw-r--r--src/me/laria/code/idea_caseconv/CamelCaseAction.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/me/laria/code/idea_caseconv/CamelCaseAction.java b/src/me/laria/code/idea_caseconv/CamelCaseAction.java
new file mode 100644
index 0000000..93ca85b
--- /dev/null
+++ b/src/me/laria/code/idea_caseconv/CamelCaseAction.java
@@ -0,0 +1,18 @@
+package me.laria.code.idea_caseconv;
+
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Optional;
+
+public class CamelCaseAction extends SelectionReplacerAction {
+ @NotNull
+ public static String ucfirst(String s) {
+ s = s.toLowerCase();
+ return s.substring(0, 1).toUpperCase().concat(s.substring(1));
+ }
+
+ @Override
+ protected String replace(String s) {
+ return WordSplitConverter.convert(s, "", (i, part) -> Optional.of(i == 0 ? part.toLowerCase() : ucfirst(part)));
+ }
+}