From 5bc6fb55593641a34b382c8261e6f39112086755 Mon Sep 17 00:00:00 2001 From: Sebastian Thomschke Date: Thu, 30 Oct 2025 16:41:56 +0100 Subject: [PATCH] feat: add ID tooltip to Language Server columns in preference pages --- .../eclipse/lsp4e/ui/LanguageServerPreferencePage.java | 9 ++++++++- .../src/org/eclipse/lsp4e/ui/LoggingPreferencePage.java | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) 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 a76cacfb9..ea2ed2460 100644 --- a/org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LanguageServerPreferencePage.java +++ b/org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LanguageServerPreferencePage.java @@ -24,6 +24,7 @@ import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.CheckboxTableViewer; import org.eclipse.jface.viewers.ColumnLabelProvider; +import org.eclipse.jface.viewers.ColumnViewerToolTipSupport; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.TableViewer; @@ -181,9 +182,10 @@ private void createStaticServersTable(Composite res) { GridDataFactory.swtDefaults().align(SWT.FILL, SWT.TOP).grab(true, false).span(2, 1).hint(400, SWT.DEFAULT).applyTo(staticServersIntro); staticServersIntro.setText(Messages.PreferencesPage_staticServers); staticServersIntro.addSelectionListener(this.contentTypeLinkListener); - checkboxViewer = CheckboxTableViewer.newCheckList(res, SWT.NONE); + checkboxViewer = CheckboxTableViewer.newCheckList(res, SWT.FULL_SELECTION); checkboxViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); checkboxViewer.setContentProvider(new ArrayContentProvider()); + ColumnViewerToolTipSupport.enableFor(checkboxViewer); final var enablementColumn = new TableViewerColumn(checkboxViewer, SWT.NONE); enablementColumn.getColumn().setText(Messages.PreferencesPage_Enabled); @@ -213,6 +215,11 @@ public String getText(Object element) { public String getText(Object element) { return ((ContentTypeToLanguageServerDefinition)element).getValue().label; } + + @Override + public String getToolTipText(Object element) { + return "ID: " + ((ContentTypeToLanguageServerDefinition) element).getValue().id; //$NON-NLS-1$ + } }); 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 fe28cc053..248b99c5d 100644 --- a/org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LoggingPreferencePage.java +++ b/org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LoggingPreferencePage.java @@ -29,12 +29,13 @@ import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.CheckboxCellEditor; import org.eclipse.jface.viewers.ColumnLabelProvider; +import org.eclipse.jface.viewers.ColumnViewerToolTipSupport; import org.eclipse.jface.viewers.EditingSupport; 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.jface.wizard.WizardDialog; import org.eclipse.lsp4e.ContentTypeToLSPLaunchConfigEntry; import org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition; import org.eclipse.lsp4e.LanguageServerPlugin; @@ -137,6 +138,7 @@ private void createStaticServersTable(Composite res) { languageServerViewer = new TableViewer(res, SWT.FULL_SELECTION); languageServerViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); languageServerViewer.setContentProvider(new ArrayContentProvider()); + ColumnViewerToolTipSupport.enableFor(languageServerViewer); final var launchConfigColumn = new TableViewerColumn(languageServerViewer, SWT.NONE); launchConfigColumn.getColumn().setText(Messages.PreferencesPage_languageServer); @@ -146,6 +148,11 @@ private void createStaticServersTable(Composite res) { public String getText(Object element) { return ((ContentTypeToLanguageServerDefinition) element).getValue().label; } + + @Override + public String getToolTipText(Object element) { + return "ID: " + ((ContentTypeToLanguageServerDefinition) element).getValue().id; //$NON-NLS-1$ + } }); addLoggingColumnsToViewer(languageServerViewer);