Skip to content

Commit dc6ebdc

Browse files
committed
fix: sort LanguageServer tables in preferences
- Sort table in LanguageServerPreferencePage by content type - Sort table in LoggingPreferencePage by language server name
1 parent ab2551b commit dc6ebdc

2 files changed

Lines changed: 24 additions & 0 deletions

File tree

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
import org.eclipse.jface.viewers.IStructuredSelection;
2929
import org.eclipse.jface.viewers.TableViewer;
3030
import org.eclipse.jface.viewers.TableViewerColumn;
31+
import org.eclipse.jface.viewers.Viewer;
32+
import org.eclipse.jface.viewers.ViewerComparator;
3133
import org.eclipse.lsp4e.ContentTypeToLSPLaunchConfigEntry;
3234
import org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition;
3335
import org.eclipse.lsp4e.LanguageServersRegistry;
@@ -252,6 +254,15 @@ public String getText(Object element) {
252254
});
253255
}
254256

257+
// Sort by content type label
258+
checkboxViewer.setComparator(new ViewerComparator() {
259+
@Override
260+
public int compare(Viewer viewer, Object e1, Object e2) {
261+
String s1 = ((ContentTypeToLanguageServerDefinition) e1).getKey().getName();
262+
String s2 = ((ContentTypeToLanguageServerDefinition) e2).getKey().getName();
263+
return getComparator().compare(s1, s2);
264+
}
265+
});
255266
checkboxViewer.setInput(contentTypeToLanguageServerDefinitions);
256267
checkboxViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
257268
checkboxViewer.getTable().setHeaderVisible(true);

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
import org.eclipse.jface.viewers.TableViewer;
3434
import org.eclipse.jface.viewers.TableViewerColumn;
3535
import org.eclipse.jface.wizard.WizardDialog;
36+
import org.eclipse.jface.viewers.Viewer;
37+
import org.eclipse.jface.viewers.ViewerComparator;
3638
import org.eclipse.lsp4e.ContentTypeToLSPLaunchConfigEntry;
3739
import org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition;
3840
import org.eclipse.lsp4e.LanguageServerPlugin;
@@ -146,6 +148,17 @@ public String getText(Object element) {
146148
}
147149
});
148150
addLoggingColumnsToViewer(languageServerViewer);
151+
152+
// Sort by language server label
153+
languageServerViewer.setComparator(new ViewerComparator() {
154+
@Override
155+
public int compare(Viewer viewer, Object e1, Object e2) {
156+
String s1 = ((ContentTypeToLanguageServerDefinition) e1).getValue().label;
157+
String s2 = ((ContentTypeToLanguageServerDefinition) e2).getValue().label;
158+
return getComparator().compare(s1, s2);
159+
}
160+
});
161+
149162
languageServerViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
150163
languageServerViewer.getTable().setHeaderVisible(true);
151164
languageServerViewer.getTable().setLinesVisible(true);

0 commit comments

Comments
 (0)