From 9e8867bbff8cb8000054e2b91d081e5bcfd98a6b Mon Sep 17 00:00:00 2001 From: Ilya Date: Mon, 23 Dec 2024 13:49:15 +0300 Subject: [PATCH] update --- .../de/marhali/easyi18n/InstanceManager.java | 1 + .../de/marhali/easyi18n/action/Folding.java | 49 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/main/java/de/marhali/easyi18n/action/Folding.java diff --git a/src/main/java/de/marhali/easyi18n/InstanceManager.java b/src/main/java/de/marhali/easyi18n/InstanceManager.java index 829c60a..bee4c61 100644 --- a/src/main/java/de/marhali/easyi18n/InstanceManager.java +++ b/src/main/java/de/marhali/easyi18n/InstanceManager.java @@ -1,6 +1,7 @@ package de.marhali.easyi18n; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.editor.Document; import com.intellij.openapi.project.Project; import de.marhali.easyi18n.model.action.TranslationUpdate; diff --git a/src/main/java/de/marhali/easyi18n/action/Folding.java b/src/main/java/de/marhali/easyi18n/action/Folding.java new file mode 100644 index 0000000..5de9996 --- /dev/null +++ b/src/main/java/de/marhali/easyi18n/action/Folding.java @@ -0,0 +1,49 @@ +package de.marhali.easyi18n.action; + +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.actionSystem.CommonDataKeys; +import com.intellij.openapi.editor.Document; +import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.editor.FoldRegion; +import com.intellij.openapi.editor.FoldingModel; +import com.intellij.openapi.util.TextRange; + +import java.util.HashMap; +import java.util.Map; + +public class Folding extends AnAction { + @Override + public void actionPerformed(AnActionEvent event) { + Editor editor = event.getData(CommonDataKeys.EDITOR); + if (editor != null) { + Document document = editor.getDocument(); + int start = editor.getSelectionModel().getSelectionStart(); + int end = editor.getSelectionModel().getSelectionEnd(); + if (start != end) { + String selectedText = document.getText(new TextRange(start, end)).trim(); + String translationKey = selectedText; + + // Получение переведенного текста + String translatedText = getTranslationForKey(translationKey); + + FoldingModel foldingModel = editor.getFoldingModel(); + foldingModel.runBatchFoldingOperation(() -> { + TextRange selectionRange = new TextRange(start, end); + FoldRegion foldRegion = foldingModel.addFoldRegion(start, end, translatedText); + if (foldRegion != null) { + foldRegion.setExpanded(false); + } + }); + } + } + } + + private String getTranslationForKey(String key) { + // Здесь может быть логика получения перевода по ключу + Map translations = new HashMap<>(); + translations.put("hello", "Привет"); + translations.put("world", "Мир"); + return translations.getOrDefault(key, key); + } +}