This commit is contained in:
Ilya 2024-12-23 13:49:15 +03:00
parent 562de99470
commit 9e8867bbff
2 changed files with 50 additions and 0 deletions

View File

@ -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;

View File

@ -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<String, String> translations = new HashMap<>();
translations.put("hello", "Привет");
translations.put("world", "Мир");
return translations.getOrDefault(key, key);
}
}