diff --git a/src/main/java/de/marhali/easyi18n/ui/editor/I18nCompletionProvider.java b/src/main/java/de/marhali/easyi18n/ui/editor/I18nCompletionProvider.java index b2dcd3c..75e44a0 100644 --- a/src/main/java/de/marhali/easyi18n/ui/editor/I18nCompletionProvider.java +++ b/src/main/java/de/marhali/easyi18n/ui/editor/I18nCompletionProvider.java @@ -4,8 +4,6 @@ import com.intellij.codeInsight.completion.CompletionParameters; import com.intellij.codeInsight.completion.CompletionProvider; import com.intellij.codeInsight.completion.CompletionResultSet; import com.intellij.codeInsight.lookup.LookupElementBuilder; -import com.intellij.ide.DataManager; -import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.project.Project; import com.intellij.util.ProcessingContext; @@ -24,18 +22,11 @@ import java.util.List; */ public class I18nCompletionProvider extends CompletionProvider { - private Project project; - private String previewLocale; - - public I18nCompletionProvider() { - DataManager.getInstance().getDataContextFromFocusAsync().onSuccess(data -> { - project = PlatformDataKeys.PROJECT.getData(data); - previewLocale = SettingsService.getInstance(project).getState().getPreviewLocale(); - }); - } - @Override protected void addCompletions(@NotNull CompletionParameters parameters, @NotNull ProcessingContext context, @NotNull CompletionResultSet result) { + Project project = parameters.getEditor().getProject(); + String previewLocale = SettingsService.getInstance(project).getState().getPreviewLocale(); + String query = result.getPrefixMatcher().getPrefix(); List sections = TranslationsUtil.getSections(query); String lastSection = null; @@ -54,12 +45,13 @@ public class I18nCompletionProvider extends CompletionProvider { - project = PlatformDataKeys.PROJECT.getData(data); - previewLocale = SettingsService.getInstance(project).getState().getPreviewLocale(); - }); - } - @Override public void annotate(@NotNull PsiElement element, @NotNull AnnotationHolder holder) { if(!(element instanceof PsiLiteralValue)) { @@ -42,6 +32,9 @@ public class I18nKeyAnnotator implements Annotator { return; } + Project project = element.getProject(); + String previewLocale = SettingsService.getInstance(project).getState().getPreviewLocale(); + LocalizedNode node = DataStore.getInstance(project).getTranslations().getNode(value); if(node == null) { // Unknown translation. Just ignore it