From 63164a94a472912a74f514c8cd92f0712812e5e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20Ha=C3=9Flinger?= Date: Fri, 14 May 2021 14:58:33 +0200 Subject: [PATCH] Fix exception on key completion / annotation Now using builtin project getters. This should avoid null calls. --- .../ui/editor/I18nCompletionProvider.java | 20 ++++++------------- .../easyi18n/ui/editor/I18nKeyAnnotator.java | 17 +++++----------- 2 files changed, 11 insertions(+), 26 deletions(-) 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