Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,12 @@ public static String ucfirst(String s) {
return s.substring(0, 1).toUpperCase().concat(s.substring(1));
}

public static String replaceString(String s) {
return WordSplitConverter.convert(s, "", (i, part) -> Optional.of(i == 0 ? part.toLowerCase() : ucfirst(part)));
}

@Override
protected String replace(String s) {
return WordSplitConverter.convert(s, "", (i, part) -> Optional.of(i == 0 ? part.toLowerCase() : ucfirst(part)));
return replaceString(s);
}
}
44 changes: 44 additions & 0 deletions src/main/java/me/laria/code/idea_caseconv/ConversionType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package me.laria.code.idea_caseconv;

import java.util.HashMap;
import java.util.Map;

public enum ConversionType {
CAMEL(0),
DASH(1),
DOT(2),
FLIP(3),
LOWER(4),
PASCAL(5),
SCREAMING_SNAKE(6),
SENTENCE(7),
SEPARATE_WORDS(8),
SNAKE(9),
TITLE(10),
UPPER(11),
;


private static final Map<Integer, ConversionType> BY_VALUE = new HashMap<>();

static {
for (ConversionType e : values()) {
BY_VALUE.put(e.value, e);
}
}

private final int value;

ConversionType(int value) {
this.value = value;
}

public static ConversionType fromValue(int value) {
return BY_VALUE.get(value);
}

private int toValue() {
return value;
}
}

48 changes: 48 additions & 0 deletions src/main/java/me/laria/code/idea_caseconv/CycleAllCaseAction.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package me.laria.code.idea_caseconv;

public class CycleAllCaseAction extends SelectionReplacerAction {

private static int counter = 0;

private static String replaceString(final String s) {
switch (ConversionType.fromValue(counter)) {

case CAMEL:
return CamelCaseAction.replaceString(s);
case DASH:
return DashCaseAction.replaceString(s);
case DOT:
return DotCaseAction.replaceString(s);
case FLIP:
return FlipCaseAction.replaceString(s);
case LOWER:
return LowerCaseAction.replaceString(s);
case PASCAL:
return PascalCaseAction.replaceString(s);
case SCREAMING_SNAKE:
return ScreamingSnakeCaseAction.replaceString(s);
case SENTENCE:
return SentenceCaseAction.replaceString(s);
case SEPARATE_WORDS:
return SeparateWordsAction.replaceString(s);
case SNAKE:
return SnakeCaseAction.replaceString(s);
case TITLE:
return TitleCaseAction.replaceString(s);
case UPPER:
return UpperCaseAction.replaceString(s);
}

return null;
}

private static void updateCounter() {
counter = (counter + 1) % ConversionType.values().length;
}

@Override
protected String replace(String s) {
updateCounter();
return replaceString(s);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
import java.util.Optional;

public class DashCaseAction extends SelectionReplacerAction {

public static String replaceString(String s) {
return WordSplitConverter.convert(s, "-", (i, s1) -> Optional.of(s1.toLowerCase()));
}

@Override
protected String replace(String s) {
return WordSplitConverter.convert(s, "-", (i, s1) -> Optional.of(s1.toLowerCase()));
return replaceString(s);
}
}
7 changes: 6 additions & 1 deletion src/main/java/me/laria/code/idea_caseconv/DotCaseAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
import java.util.Optional;

public class DotCaseAction extends SelectionReplacerAction {

public static String replaceString(String s) {
return WordSplitConverter.convert(s, ".", (i, part) -> Optional.of(part.toLowerCase()));
}

@Override
protected String replace(String s) {
return WordSplitConverter.convert(s, ".", (i, part) -> Optional.of(part.toLowerCase()));
return replaceString(s);
}
}
9 changes: 7 additions & 2 deletions src/main/java/me/laria/code/idea_caseconv/FlipCaseAction.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
package me.laria.code.idea_caseconv;

public class FlipCaseAction extends SelectionReplacerAction {
@Override
protected String replace(String s) {

public static String replaceString(String s) {
StringBuilder builder = new StringBuilder();

s.codePoints().forEach(c -> builder.appendCodePoint(Character.isLowerCase(c) ? Character.toUpperCase(c) : Character.toLowerCase(c)));

return builder.toString();
}

@Override
protected String replace(String s) {
return replaceString(s);
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package me.laria.code.idea_caseconv;

public class LowerCaseAction extends SelectionReplacerAction {

public static String replaceString(String s) {
return s.toLowerCase();
}

@Override
protected String replace(String s) {
return s.toLowerCase();
return replaceString(s);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
import java.util.Optional;

public class PascalCaseAction extends SelectionReplacerAction {

public static String replaceString(String s) {
return WordSplitConverter.convert(s, "", (i, part) -> Optional.of(CamelCaseAction.ucfirst(part)));
}

@Override
protected String replace(String s) {
return WordSplitConverter.convert(s, "", (i, part) -> Optional.of(CamelCaseAction.ucfirst(part)));
return replaceString(s);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
import java.util.Optional;

public class ScreamingSnakeCaseAction extends SelectionReplacerAction {

public static String replaceString(String s) {
return WordSplitConverter.convert(s, "_", (i, part) -> Optional.of(part.toUpperCase()));
}

@Override
protected String replace(String s) {
return WordSplitConverter.convert(s, "_", (i, part) -> Optional.of(part.toUpperCase()));
return replaceString(s);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import java.util.Optional;

public class SentenceCaseAction extends SelectionReplacerAction {
@Override
protected String replace(String s) {

public static String replaceString(String s) {
return WordSplitConverter.convert(
s,
" ",
Expand All @@ -14,4 +14,9 @@ protected String replace(String s) {
)
);
}

@Override
protected String replace(String s) {
return replaceString(s);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
import java.util.Optional;

public class SeparateWordsAction extends SelectionReplacerAction {

public static String replaceString(String s) {
return WordSplitConverter.convert(s, " ", (i, part) -> Optional.of(part.toLowerCase()));
}

@Override
protected String replace(String s) {
return WordSplitConverter.convert(s, " ", (i, part) -> Optional.of(part.toLowerCase()));
return replaceString(s);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
import java.util.Optional;

public class SnakeCaseAction extends SelectionReplacerAction {

public static String replaceString(String s) {
return WordSplitConverter.convert(s, "_", (i, part) -> Optional.of(part.toLowerCase()));
}

@Override
protected String replace(String s) {
return WordSplitConverter.convert(s, "_", (i, part) -> Optional.of(part.toLowerCase()));
return replaceString(s);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
import java.util.Optional;

public class TitleCaseAction extends SelectionReplacerAction {

public static String replaceString(String s) {
return WordSplitConverter.convert(s, " ", (i, part) -> Optional.of(CamelCaseAction.ucfirst(part)));
}

@Override
protected String replace(String s) {
return WordSplitConverter.convert(s, " ", (i, part) -> Optional.of(CamelCaseAction.ucfirst(part)));
return replaceString(s);
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package me.laria.code.idea_caseconv;

public class UpperCaseAction extends SelectionReplacerAction {

public static String replaceString(String s) {
return s.toUpperCase();
}

@Override
protected String replace(String s) {
return s.toUpperCase();
return replaceString(s);
}
}
4 changes: 4 additions & 0 deletions src/main/resources/META-INF/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,10 @@
<action id="me.laria.code.idea_caseconv.DotCaseAction" class="me.laria.code.idea_caseconv.DotCaseAction"
text="Convert Case: dot.case">
</action>

<action id="me.laria.code.idea_caseconv.CycleAllCaseAction" class="me.laria.code.idea_caseconv.CycleAllCaseAction"
text="Convert Case: Cycle All Cases">
</action>
</group>
</actions>
</idea-plugin>