diff --git a/org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LanguageServerPreferencePage.java b/org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LanguageServerPreferencePage.java index fe93516fe..a76cacfb9 100644 --- a/org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LanguageServerPreferencePage.java +++ b/org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LanguageServerPreferencePage.java @@ -28,6 +28,8 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewerColumn; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.lsp4e.ContentTypeToLSPLaunchConfigEntry; import org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition; import org.eclipse.lsp4e.LanguageServersRegistry; @@ -252,6 +254,16 @@ public String getText(Object element) { }); } + // Sort by content type label + checkboxViewer.setComparator(new ViewerComparator() { + @Override + public int compare(@Nullable Viewer viewer, @Nullable Object e1, @Nullable Object e2) { + if(e1 instanceof ContentTypeToLanguageServerDefinition d1 && e1 instanceof ContentTypeToLanguageServerDefinition d2) { + return getComparator().compare(d1.getKey().getName(), d2.getKey().getName()); + } + return 0; + } + }); checkboxViewer.setInput(contentTypeToLanguageServerDefinitions); checkboxViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); checkboxViewer.getTable().setHeaderVisible(true); diff --git a/org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LoggingPreferencePage.java b/org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LoggingPreferencePage.java index 355017c46..fe28cc053 100644 --- a/org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LoggingPreferencePage.java +++ b/org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LoggingPreferencePage.java @@ -33,6 +33,8 @@ import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.jface.wizard.WizardDialog; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.lsp4e.ContentTypeToLSPLaunchConfigEntry; import org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition; import org.eclipse.lsp4e.LanguageServerPlugin; @@ -146,6 +148,18 @@ public String getText(Object element) { } }); addLoggingColumnsToViewer(languageServerViewer); + + // Sort by language server label + languageServerViewer.setComparator(new ViewerComparator() { + @Override + public int compare(@Nullable Viewer viewer, @Nullable Object e1, @Nullable Object e2) { + if(e1 instanceof ContentTypeToLanguageServerDefinition d1 && e1 instanceof ContentTypeToLanguageServerDefinition d2) { + return getComparator().compare(d1.getValue().label, d2.getValue().label); + } + return 0; + } + }); + languageServerViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); languageServerViewer.getTable().setHeaderVisible(true); languageServerViewer.getTable().setLinesVisible(true);