From a20d4be2cfdb327bd73c1d074f491f0bc28792e2 Mon Sep 17 00:00:00 2001 From: marhali Date: Sat, 6 Nov 2021 23:04:06 +0100 Subject: [PATCH] upgrade to new data structure --- .../marhali/easyi18n/editor/KeyAnnotator.java | 4 +++- .../editor/KeyCompletionProvider.java | 20 ++++++++++++------- .../marhali/easyi18n/editor/KeyReference.java | 9 ++++++--- .../GenericKeyReferenceContributor.java | 3 ++- .../kotlin/KotlinKeyReferenceContributor.java | 3 ++- 5 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/main/java/de/marhali/easyi18n/editor/KeyAnnotator.java b/src/main/java/de/marhali/easyi18n/editor/KeyAnnotator.java index 6b9f91d..6bb9fe7 100644 --- a/src/main/java/de/marhali/easyi18n/editor/KeyAnnotator.java +++ b/src/main/java/de/marhali/easyi18n/editor/KeyAnnotator.java @@ -4,6 +4,8 @@ import com.intellij.lang.annotation.AnnotationHolder; import com.intellij.lang.annotation.HighlightSeverity; import com.intellij.openapi.project.Project; +import de.marhali.easyi18n.InstanceManager; +import de.marhali.easyi18n.model.TranslationNode; import de.marhali.easyi18n.service.SettingsService; import org.jetbrains.annotations.NotNull; @@ -37,7 +39,7 @@ public class KeyAnnotator { searchKey = searchKey.substring(1); } - LocalizedNode node = LegacyDataStore.getInstance(project).getTranslations().getNode(searchKey); + TranslationNode node = InstanceManager.get(project).store().getData().getNode(searchKey); if(node == null) { // Unknown translation. Just ignore it return; diff --git a/src/main/java/de/marhali/easyi18n/editor/KeyCompletionProvider.java b/src/main/java/de/marhali/easyi18n/editor/KeyCompletionProvider.java index 79e1e8e..d76b936 100644 --- a/src/main/java/de/marhali/easyi18n/editor/KeyCompletionProvider.java +++ b/src/main/java/de/marhali/easyi18n/editor/KeyCompletionProvider.java @@ -5,7 +5,11 @@ import com.intellij.codeInsight.lookup.*; import com.intellij.icons.AllIcons; import com.intellij.openapi.project.*; import com.intellij.util.*; +import de.marhali.easyi18n.DataStore; +import de.marhali.easyi18n.InstanceManager; +import de.marhali.easyi18n.model.Translation; import de.marhali.easyi18n.service.*; +import de.marhali.easyi18n.util.PathUtil; import org.jetbrains.annotations.*; import java.util.*; @@ -27,7 +31,8 @@ public class KeyCompletionProvider extends CompletionProvider fullKeys = store.getTranslations().getFullKeys(); + Set fullKeys = store.getData().getFullKeys(); int sections = path.split("\\.").length; int maxSectionForwardLookup = 5; @@ -63,19 +68,20 @@ public class KeyCompletionProvider extends CompletionProvider sections + maxSectionForwardLookup) { // Key is too deep nested - String shrinkKey = TranslationsUtil.sectionsToFullPath(Arrays.asList( - Arrays.copyOf(keySections, sections + maxSectionForwardLookup))); + String shrinkKey = pathUtil.concat(Arrays.asList( + Arrays.copyOf(keySections, sections + maxSectionForwardLookup) + )); result.addElement(LookupElementBuilder.create(pathPrefix + shrinkKey) .appendTailText(" I18n([])", true)); } else { - LocalizedNode node = store.getTranslations().getNode(key); - String translation = node != null ? node.getValue().get(previewLocale) : null; + Translation translation = store.getData().getTranslation(key); + String content = translation.get(previewLocale); result.addElement(LookupElementBuilder.create(pathPrefix + key) .withIcon(AllIcons.Actions.PreserveCaseHover) - .appendTailText(" I18n(" + previewLocale + ": " + translation + ")", true) + .appendTailText(" I18n(" + previewLocale + ": " + content + ")", true) ); } } diff --git a/src/main/java/de/marhali/easyi18n/editor/KeyReference.java b/src/main/java/de/marhali/easyi18n/editor/KeyReference.java index 960f680..56d5733 100644 --- a/src/main/java/de/marhali/easyi18n/editor/KeyReference.java +++ b/src/main/java/de/marhali/easyi18n/editor/KeyReference.java @@ -4,9 +4,12 @@ import com.intellij.openapi.util.TextRange; import com.intellij.psi.*; import com.intellij.psi.impl.FakePsiElement; +import de.marhali.easyi18n.InstanceManager; import de.marhali.easyi18n.dialog.AddDialog; import de.marhali.easyi18n.dialog.EditDialog; +import de.marhali.easyi18n.model.KeyedTranslation; +import de.marhali.easyi18n.model.Translation; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -49,10 +52,10 @@ public class KeyReference extends PsiReferenceBase { @Override public void navigate(boolean requestFocus) { - LocalizedNode node = LegacyDataStore.getInstance(getProject()).getTranslations().getNode(getKey()); + Translation translation = InstanceManager.get(getProject()).store().getData().getTranslation(getKey()); - if(node != null) { - new EditDialog(getProject(), new LegacyKeyedTranslation(getKey(), node.getValue())).showAndHandle(); + if(translation != null) { + new EditDialog(getProject(), new KeyedTranslation(getKey(), translation)).showAndHandle(); } else { new AddDialog(getProject(), getKey()).showAndHandle(); } diff --git a/src/main/java/de/marhali/easyi18n/editor/generic/GenericKeyReferenceContributor.java b/src/main/java/de/marhali/easyi18n/editor/generic/GenericKeyReferenceContributor.java index 4debdc3..a6b0542 100644 --- a/src/main/java/de/marhali/easyi18n/editor/generic/GenericKeyReferenceContributor.java +++ b/src/main/java/de/marhali/easyi18n/editor/generic/GenericKeyReferenceContributor.java @@ -4,6 +4,7 @@ import com.intellij.patterns.PlatformPatterns; import com.intellij.psi.*; import com.intellij.util.ProcessingContext; +import de.marhali.easyi18n.InstanceManager; import de.marhali.easyi18n.editor.KeyReference; import de.marhali.easyi18n.service.SettingsService; @@ -37,7 +38,7 @@ public class GenericKeyReferenceContributor extends PsiReferenceContributor { return PsiReference.EMPTY_ARRAY; } - if(LegacyDataStore.getInstance(element.getProject()).getTranslations().getNode(value) == null) { + if(InstanceManager.get(element.getProject()).store().getData().getTranslation(value) == null) { if(!KeyReference.isReferencable(value)) { // Creation policy return PsiReference.EMPTY_ARRAY; } diff --git a/src/main/java/de/marhali/easyi18n/editor/kotlin/KotlinKeyReferenceContributor.java b/src/main/java/de/marhali/easyi18n/editor/kotlin/KotlinKeyReferenceContributor.java index 1ae339e..77bfd20 100644 --- a/src/main/java/de/marhali/easyi18n/editor/kotlin/KotlinKeyReferenceContributor.java +++ b/src/main/java/de/marhali/easyi18n/editor/kotlin/KotlinKeyReferenceContributor.java @@ -5,6 +5,7 @@ import com.intellij.psi.*; import com.intellij.util.ProcessingContext; +import de.marhali.easyi18n.InstanceManager; import de.marhali.easyi18n.editor.KeyReference; import de.marhali.easyi18n.service.SettingsService; @@ -44,7 +45,7 @@ public class KotlinKeyReferenceContributor extends PsiReferenceContributor { return PsiReference.EMPTY_ARRAY; } - if(LegacyDataStore.getInstance(element.getProject()).getTranslations().getNode(value) == null) { + if(InstanceManager.get(element.getProject()).store().getData().getNode(value) == null) { return PsiReference.EMPTY_ARRAY; }