aboutsummaryrefslogtreecommitdiff
path: root/src/me/laria/code/idea_caseconv/SelectionReplacerAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/me/laria/code/idea_caseconv/SelectionReplacerAction.java')
-rw-r--r--src/me/laria/code/idea_caseconv/SelectionReplacerAction.java59
1 files changed, 0 insertions, 59 deletions
diff --git a/src/me/laria/code/idea_caseconv/SelectionReplacerAction.java b/src/me/laria/code/idea_caseconv/SelectionReplacerAction.java
deleted file mode 100644
index 692fd6c..0000000
--- a/src/me/laria/code/idea_caseconv/SelectionReplacerAction.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package me.laria.code.idea_caseconv;
-
-import com.intellij.openapi.actionSystem.AnAction;
-import com.intellij.openapi.actionSystem.AnActionEvent;
-import com.intellij.openapi.actionSystem.CommonDataKeys;
-import com.intellij.openapi.command.WriteCommandAction;
-import com.intellij.openapi.editor.Caret;
-import com.intellij.openapi.editor.CaretModel;
-import com.intellij.openapi.editor.Document;
-import com.intellij.openapi.editor.Editor;
-import com.intellij.openapi.project.Project;
-
-import java.util.ArrayList;
-
-abstract class SelectionReplacerAction extends AnAction {
- @Override
- public void update(final AnActionEvent e) {
- //Get required data keys
- final Project project = e.getData(CommonDataKeys.PROJECT);
- final Editor editor = e.getData(CommonDataKeys.EDITOR);
- //Set visibility only in case of existing project and editor and if some text in the editor is selected
- e.getPresentation().setVisible(
- project != null
- && editor != null
- && editor.getSelectionModel().hasSelection()
- );
- }
-
- @Override
- public void actionPerformed(AnActionEvent anActionEvent) {
- Editor editor = anActionEvent.getData(CommonDataKeys.EDITOR);
- Project project = anActionEvent.getData(CommonDataKeys.PROJECT);
- assert editor != null;
- assert project != null;
-
- CaretModel caretModel = editor.getCaretModel();
- Document document = editor.getDocument();
-
- ArrayList<Replacement> replacements = new ArrayList<>();
- for (Caret caret : caretModel.getAllCarets()) {
- if (!caret.hasSelection()) {
- continue;
- }
-
- replacements.add(new Replacement(
- caret.getSelectionStart(),
- caret.getSelectionEnd(),
- this.replace(caret.getSelectedText())
- ));
- }
-
- // Sort in reverse order so a replacement won't mess up the indices of the other replacements
- replacements.sort((o1, o2) -> -o1.compareTo(o2));
-
- WriteCommandAction.runWriteCommandAction(project, () -> replacements.forEach(r -> r.doReplace(document)));
- }
-
- abstract protected String replace(String s);
-}