From 2a87bc2f749660d00ec786f46ac755417653acd7 Mon Sep 17 00:00:00 2001 From: aboyko Date: Fri, 13 Dec 2024 11:47:04 -0500 Subject: [PATCH] Dealing with JDT null check annotations --- org.eclipse.lsp4e.jdt/.settings/org.eclipse.jdt.core.prefs | 3 +-- org.eclipse.lsp4e.jdt/META-INF/MANIFEST.MF | 2 -- .../org/eclipse/lsp4e/jdt/LSJavaSemanticTokensProvider.java | 6 +++++- .../src/org/eclipse/lsp4e/jdt/LanguageServerJdtPlugin.java | 5 +++-- .../src/org/eclipse/lsp4e/jdt/LspJdtPrefsInitializer.java | 6 +++++- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/org.eclipse.lsp4e.jdt/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.lsp4e.jdt/.settings/org.eclipse.jdt.core.prefs index 37ae9cab5..b8c626f76 100644 --- a/org.eclipse.lsp4e.jdt/.settings/org.eclipse.jdt.core.prefs +++ b/org.eclipse.lsp4e.jdt/.settings/org.eclipse.jdt.core.prefs @@ -65,7 +65,7 @@ org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error org.eclipse.jdt.core.compiler.problem.nullReference=error -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=info org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore @@ -109,7 +109,6 @@ org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverridin org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedImport=warning org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLambdaParameter=warning org.eclipse.jdt.core.compiler.problem.unusedLocal=warning org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning org.eclipse.jdt.core.compiler.problem.unusedParameter=warning diff --git a/org.eclipse.lsp4e.jdt/META-INF/MANIFEST.MF b/org.eclipse.lsp4e.jdt/META-INF/MANIFEST.MF index bcabdfbda..42acc29b8 100644 --- a/org.eclipse.lsp4e.jdt/META-INF/MANIFEST.MF +++ b/org.eclipse.lsp4e.jdt/META-INF/MANIFEST.MF @@ -17,9 +17,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="3.12.0", org.eclipse.lsp4e;bundle-version="0.18.13", org.eclipse.jdt.core;bundle-version="3.20.0", org.eclipse.jdt.ui;bundle-version="3.34.0", - org.eclipse.swt, org.eclipse.core.resources, org.eclipse.lsp4j, - org.eclipse.jdt.annotation, org.eclipse.lsp4j.jsonrpc, org.eclipse.ui.editors diff --git a/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LSJavaSemanticTokensProvider.java b/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LSJavaSemanticTokensProvider.java index 0ce7727ac..8b8cf1a64 100644 --- a/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LSJavaSemanticTokensProvider.java +++ b/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LSJavaSemanticTokensProvider.java @@ -41,7 +41,11 @@ public class LSJavaSemanticTokensProvider implements ISemanticTokensProvider { @Override public Collection computeSemanticTokens(CompilationUnit ast) { IPreferenceStore prefStore = LanguageServerPlugin.getDefault().getPreferenceStore(); - IPreferenceStore jstPrefStore = LanguageServerJdtPlugin.getDefault().getPreferenceStore(); + LanguageServerJdtPlugin plugin = LanguageServerJdtPlugin.getDefault(); + if (plugin == null) { + throw new IllegalStateException("Plugin hasn't been started!"); + } + IPreferenceStore jstPrefStore = plugin.getPreferenceStore(); if (prefStore.getBoolean(SemanticHighlightReconcilerStrategy.SEMANTIC_HIGHLIGHT_RECONCILER_DISABLED) || !jstPrefStore.getBoolean(LspJdtConstants.PREF_SEMANTIC_TOKENS_SWITCH)) { diff --git a/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LanguageServerJdtPlugin.java b/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LanguageServerJdtPlugin.java index a0f74c1b3..c6ad418fe 100644 --- a/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LanguageServerJdtPlugin.java +++ b/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LanguageServerJdtPlugin.java @@ -10,6 +10,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.jdt; +import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; @@ -23,7 +24,7 @@ public class LanguageServerJdtPlugin extends AbstractUIPlugin { - private static LanguageServerJdtPlugin plugin; + private static @Nullable LanguageServerJdtPlugin plugin; private final IPropertyChangeListener prefsLisetner = new IPropertyChangeListener() { @@ -45,7 +46,7 @@ public void propertyChange(PropertyChangeEvent event) { } }; - public static final LanguageServerJdtPlugin getDefault() { + public static final @Nullable LanguageServerJdtPlugin getDefault() { return plugin; } diff --git a/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LspJdtPrefsInitializer.java b/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LspJdtPrefsInitializer.java index c81056884..57bd52764 100644 --- a/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LspJdtPrefsInitializer.java +++ b/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LspJdtPrefsInitializer.java @@ -20,7 +20,11 @@ public LspJdtPrefsInitializer() { @Override public void initializeDefaultPreferences() { - IPreferenceStore store = LanguageServerJdtPlugin.getDefault().getPreferenceStore(); + LanguageServerJdtPlugin plugin = LanguageServerJdtPlugin.getDefault(); + if (plugin == null) { + throw new IllegalStateException("Plugin hasn't been started!"); + } + IPreferenceStore store = plugin.getPreferenceStore(); store.setDefault(LspJdtConstants.PREF_SEMANTIC_TOKENS_SWITCH, true); }