Skip to content

Commit 562fd0c

Browse files
committed
refact: enable NonNullByDefault for lsp4e.ui package
1 parent f168eac commit 562fd0c

9 files changed

+115
-85
lines changed

org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/EnableDisableLSJob.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.eclipse.core.runtime.IStatus;
1818
import org.eclipse.core.runtime.Status;
1919
import org.eclipse.core.runtime.jobs.Job;
20+
import org.eclipse.jdt.annotation.Nullable;
2021
import org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition;
2122
import org.eclipse.lsp4e.LanguageServersRegistry.LanguageServerDefinition;
2223
import org.eclipse.lsp4e.LanguageServiceAccessor;
@@ -25,17 +26,17 @@
2526
public class EnableDisableLSJob extends Job {
2627

2728
private final List<ContentTypeToLanguageServerDefinition> serverDefinitions;
28-
private final IEditorReference[] editors;
29+
private final IEditorReference @Nullable [] editors;
2930

3031
public EnableDisableLSJob(List<ContentTypeToLanguageServerDefinition> serverDefinitions,
31-
IEditorReference[] editors) {
32+
IEditorReference @Nullable [] editors) {
3233
super(Messages.enableDisableLSJob);
3334
this.serverDefinitions = serverDefinitions;
3435
this.editors = editors;
3536
}
3637

3738
@Override
38-
protected IStatus run(IProgressMonitor monitor) {
39+
protected IStatus run(@Nullable IProgressMonitor monitor) {
3940
for (ContentTypeToLanguageServerDefinition changedDefinition : serverDefinitions) {
4041
LanguageServerDefinition serverDefinition = changedDefinition.getValue();
4142
if (serverDefinition != null) {

org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LSPImages.java

+12-8
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,16 @@
1111
*******************************************************************************/
1212
package org.eclipse.lsp4e.ui;
1313

14+
import static org.eclipse.lsp4e.internal.NullSafetyHelper.castNonNull;
15+
1416
import java.net.URL;
1517
import java.util.HashMap;
1618
import java.util.Map;
1719

1820
import org.eclipse.core.runtime.FileLocator;
1921
import org.eclipse.core.runtime.Path;
2022
import org.eclipse.core.runtime.Platform;
23+
import org.eclipse.jdt.annotation.Nullable;
2124
import org.eclipse.jface.resource.ImageDescriptor;
2225
import org.eclipse.jface.resource.ImageRegistry;
2326
import org.eclipse.lsp4e.LSPEclipseUtils;
@@ -38,7 +41,7 @@ private LSPImages() {
3841
// this class shouldn't be instantiated
3942
}
4043

41-
private static ImageRegistry imageRegistry;
44+
private static @Nullable ImageRegistry imageRegistry;
4245
private static final Map<java.awt.Color, Image> colorToImageCache = new HashMap<>();
4346
private static final String ICONS_PATH = "$nl$/icons/full/"; //$NON-NLS-1$
4447
private static final String OBJECT = ICONS_PATH + "obj16/"; // basic colors - size 16x16 //$NON-NLS-1$
@@ -123,7 +126,7 @@ private static final void declareRegistryImage(String key, String path) {
123126
desc = ImageDescriptor.createFromURL(url);
124127
}
125128
}
126-
imageRegistry.put(key, desc);
129+
castNonNull(imageRegistry).put(key, desc);
127130
}
128131

129132
/**
@@ -141,8 +144,9 @@ public static ImageDescriptor getImageDescriptor(String key) {
141144
}
142145

143146
public static ImageRegistry getImageRegistry() {
147+
ImageRegistry imageRegistry = LSPImages.imageRegistry;
144148
if (imageRegistry == null) {
145-
imageRegistry = LanguageServerPlugin.getDefault().getImageRegistry();
149+
imageRegistry = LSPImages.imageRegistry = LanguageServerPlugin.getDefault().getImageRegistry();
146150
}
147151
return imageRegistry;
148152
}
@@ -151,7 +155,7 @@ public static ImageRegistry getImageRegistry() {
151155
* @param imageId See static IMG_* fields of {@link ISharedImages}
152156
* @return the workbench's shared image for the , or null if not found
153157
*/
154-
public static Image getSharedImage(String imageId) {
158+
public static @Nullable Image getSharedImage(@Nullable String imageId) {
155159
if(imageId == null) {
156160
return null;
157161
}
@@ -162,14 +166,14 @@ public static Image getSharedImage(String imageId) {
162166
* @param imageId See static IMG_* fields of {@link ISharedImages}
163167
* @return the workbench's shared image descriptor for the workbench, or null if not found
164168
*/
165-
public static ImageDescriptor getSharedImageDescriptor(String imageId) {
169+
public static @Nullable ImageDescriptor getSharedImageDescriptor(@Nullable String imageId) {
166170
if(imageId == null) {
167171
return null;
168172
}
169173
return PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(imageId);
170174
}
171175

172-
public static Image imageFromSymbolKind(SymbolKind kind) {
176+
public static @Nullable Image imageFromSymbolKind(@Nullable SymbolKind kind) {
173177
if (kind == null) {
174178
return EMPTY_IMAGE;
175179
}
@@ -199,7 +203,7 @@ public static Image imageFromSymbolKind(SymbolKind kind) {
199203
};
200204
}
201205

202-
public static Image imageFromCompletionItem(CompletionItem completionItem) {
206+
public static @Nullable Image imageFromCompletionItem(CompletionItem completionItem) {
203207
return switch (completionItem.getKind()) {
204208
case Text -> getImage(IMG_TEXT);
205209
case Method -> getImage(IMG_METHOD);
@@ -226,7 +230,7 @@ public static Image imageFromCompletionItem(CompletionItem completionItem) {
226230
};
227231
}
228232

229-
private static Image getImageForColor(CompletionItem completionItem) {
233+
private static @Nullable Image getImageForColor(CompletionItem completionItem) {
230234
String hexValue = null;
231235

232236
// TODO most probably can be extended for more cases

org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LanguageServerPreferencePage.java

+24-22
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,13 @@
1111
*******************************************************************************/
1212
package org.eclipse.lsp4e.ui;
1313

14+
import static org.eclipse.lsp4e.internal.NullSafetyHelper.lazyNonNull;
15+
1416
import java.util.ArrayList;
1517
import java.util.List;
1618

19+
import org.eclipse.jdt.annotation.NonNullByDefault;
20+
import org.eclipse.jdt.annotation.Nullable;
1721
import org.eclipse.jface.action.Action;
1822
import org.eclipse.jface.dialogs.IDialogConstants;
1923
import org.eclipse.jface.layout.GridDataFactory;
@@ -47,19 +51,19 @@
4751

4852
public class LanguageServerPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
4953

50-
private LanguageServersRegistry registry;
51-
private List<ContentTypeToLSPLaunchConfigEntry> workingCopy;
52-
private Button removeButton;
53-
private CheckboxTableViewer checkboxViewer;
54-
private TableViewer viewer;
54+
private final LanguageServersRegistry registry = LanguageServersRegistry.getInstance();
55+
private List<ContentTypeToLSPLaunchConfigEntry> workingCopy = lazyNonNull();
56+
private Button removeButton = lazyNonNull();
57+
private CheckboxTableViewer checkboxViewer = lazyNonNull();
58+
private TableViewer viewer = lazyNonNull();
5559
private final SelectionAdapter contentTypeLinkListener;
56-
private List<ContentTypeToLanguageServerDefinition> changedDefinitions;
60+
private final List<ContentTypeToLanguageServerDefinition> changedDefinitions = new ArrayList<>();
5761

5862
public LanguageServerPreferencePage() {
5963

6064
contentTypeLinkListener = new SelectionAdapter() {
6165
@Override
62-
public void widgetSelected(SelectionEvent e) {
66+
public void widgetSelected(@NonNullByDefault({}) SelectionEvent e) {
6367
if (getContainer() instanceof IWorkbenchPreferenceContainer preferenceContainer) {
6468
preferenceContainer.openPage("org.eclipse.ui.preferencePages.ContentTypes", null); //$NON-NLS-1$
6569
}
@@ -68,9 +72,7 @@ public void widgetSelected(SelectionEvent e) {
6872
}
6973

7074
@Override
71-
public void init(IWorkbench workbench) {
72-
this.changedDefinitions = new ArrayList<>();
73-
this.registry = LanguageServersRegistry.getInstance();
75+
public void init(@NonNullByDefault({}) IWorkbench workbench) {
7476
}
7577

7678
@Override
@@ -82,7 +84,7 @@ public void setVisible(boolean visible) {
8284
}
8385

8486
@Override
85-
protected Control createContents(Composite parent) {
87+
protected Control createContents(@NonNullByDefault({}) Composite parent) {
8688
final var res = new Composite(parent, SWT.NONE);
8789
res.setLayout(new GridLayout(2, false));
8890
final var intro = new Link(res, SWT.WRAP);
@@ -106,7 +108,7 @@ protected Control createContents(Composite parent) {
106108
contentTypeColumn.getColumn().setWidth(200);
107109
contentTypeColumn.setLabelProvider(new ColumnLabelProvider() {
108110
@Override
109-
public String getText(Object element) {
111+
public String getText(@NonNullByDefault({}) Object element) {
110112
return ((ContentTypeToLanguageServerDefinition)element).getKey().getName();
111113
}
112114
});
@@ -115,7 +117,7 @@ public String getText(Object element) {
115117
launchConfigColumn.getColumn().setWidth(300);
116118
launchConfigColumn.setLabelProvider(new ColumnLabelProvider() {
117119
@Override
118-
public String getText(Object element) {
120+
public String getText(@NonNullByDefault({}) Object element) {
119121
return ((ContentTypeToLSPLaunchConfigEntry)element).getLaunchConfiguration().getName();
120122
}
121123
});
@@ -124,7 +126,7 @@ public String getText(Object element) {
124126
launchModeColumn.getColumn().setWidth(100);
125127
launchModeColumn.setLabelProvider(new ColumnLabelProvider() {
126128
@Override
127-
public String getText(Object element) {
129+
public String getText(@NonNullByDefault({}) Object element) {
128130
final var res = new StringBuilder();
129131
for (String s : ((ContentTypeToLSPLaunchConfigEntry)element).getLaunchModes()) {
130132
res.append(s);
@@ -145,7 +147,7 @@ public String getText(Object element) {
145147
addButton.setText(Messages.PreferencesPage_Add);
146148
addButton.addSelectionListener(new SelectionAdapter() {
147149
@Override
148-
public void widgetSelected(SelectionEvent e) {
150+
public void widgetSelected(@NonNullByDefault({}) SelectionEvent e) {
149151
NewContentTypeLSPLaunchDialog dialog = new NewContentTypeLSPLaunchDialog(getShell());
150152
if (dialog.open() == IDialogConstants.OK_ID) {
151153
workingCopy.add(new ContentTypeToLSPLaunchConfigEntry(dialog.getContentType(),
@@ -160,7 +162,7 @@ public void widgetSelected(SelectionEvent e) {
160162
removeButton.setText(Messages.PreferencesPage_Remove);
161163
removeButton.addSelectionListener(new SelectionAdapter() {
162164
@Override
163-
public void widgetSelected(SelectionEvent e) {
165+
public void widgetSelected(@NonNullByDefault({}) SelectionEvent e) {
164166
ISelection sel = viewer.getSelection();
165167
if (!sel.isEmpty() && sel instanceof IStructuredSelection structuredSel) {
166168
structuredSel.forEach(workingCopy::remove);
@@ -188,7 +190,7 @@ private void createStaticServersTable(Composite res) {
188190
enablementColumn.getColumn().setWidth(70);
189191
enablementColumn.setLabelProvider(new ColumnLabelProvider() {
190192
@Override
191-
public String getText(Object element) {
193+
public @Nullable String getText(@NonNullByDefault({}) Object element) {
192194
return null;
193195
}
194196
});
@@ -198,7 +200,7 @@ public String getText(Object element) {
198200
contentTypeColumn.getColumn().setWidth(200);
199201
contentTypeColumn.setLabelProvider(new ColumnLabelProvider() {
200202
@Override
201-
public String getText(Object element) {
203+
public String getText(@NonNullByDefault({}) Object element) {
202204
return ((ContentTypeToLanguageServerDefinition)element).getKey().getName();
203205
}
204206
});
@@ -208,7 +210,7 @@ public String getText(Object element) {
208210
launchConfigColumn.getColumn().setWidth(300);
209211
launchConfigColumn.setLabelProvider(new ColumnLabelProvider() {
210212
@Override
211-
public String getText(Object element) {
213+
public String getText(@NonNullByDefault({}) Object element) {
212214
return ((ContentTypeToLanguageServerDefinition)element).getValue().label;
213215
}
214216
});
@@ -223,7 +225,7 @@ public String getText(Object element) {
223225
conditionColumn.getColumn().setWidth(150);
224226
conditionColumn.setLabelProvider(new ColumnLabelProvider() {
225227
@Override
226-
public String getText(Object element) {
228+
public String getText(@NonNullByDefault({}) Object element) {
227229
EnablementTester tester = ((ContentTypeToLanguageServerDefinition) element)
228230
.getEnablementCondition();
229231

@@ -239,7 +241,7 @@ public String getText(Object element) {
239241
}
240242

241243
@Override
242-
public Color getBackground(Object element) {
244+
public @Nullable Color getBackground(@NonNullByDefault({}) Object element) {
243245
EnablementTester tester = ((ContentTypeToLanguageServerDefinition) element)
244246
.getEnablementCondition();
245247
if (tester == null) {
@@ -280,7 +282,7 @@ public boolean performOk() {
280282
return super.performOk();
281283
}
282284

283-
private IEditorReference[] getEditors() {
285+
private IEditorReference @Nullable [] getEditors() {
284286
var page = UI.getActivePage();
285287
if (page != null) {
286288
return page.getEditorReferences();

0 commit comments

Comments
 (0)