Source:
<code><START> private void createSearchProviderCombo() { <END> Label searchProviderLabel = new Label(this, SWT.NONE); searchProviderLabel.setText("Search Provider:"); searchProviderLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1)); IDialogSettings dialogSettings = M2EUIPluginActivator.getDefault().getDialogSettings(); searchProviderCombo = new ComboViewer(this, SWT.BORDER); searchProviderCombo.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1)); searchProviderCombo.setContentProvider(ArrayContentProvider.getInstance()); searchProviderCombo.setLabelProvider(new LabelProvider() { @Override public String getText(Object o) { if(o instanceof IConfigurationElement) { IConfigurationElement element = (IConfigurationElement) o; return element.getAttribute("name"); } return super.getText(o); } }); searchProviderCombo.addPostSelectionChangedListener(event -> { IStructuredSelection selection = event.getStructuredSelection(); try { if(selection != null && !selection.isEmpty()) { IConfigurationElement extension = (IConfigurationElement) selection.getFirstElement(); searchProvider = (ISearchProvider) extension.createExecutableExtension("class"); ((DeferredSearchResultTreeContentProvider) searchResultViewer.getContentProvider()) .setSearchProvider(searchProvider); if(searchText != null) { dialogSettings.put(this.getClass().getSimpleName() + ".searchProvider", extension.getAttribute("class")); scheduleSearch(searchText.getText(), true); } warningArea.setStatus(searchProvider.getStatus()); } } catch(CoreException ex) { StatusManager.getManager().handle(ex, M2EUIPluginActivator.PLUGIN_ID); } }); }</code><technical_language>users need this. aggregating results multiple providers? case start artifact completion xml editor</technical_language>

Target:
private void createSearchProviderCombo() { Label searchProviderLabel = new Label(this, SWT.NONE); searchProviderLabel.setText("Search Provider:"); searchProviderLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1)); IDialogSettings dialogSettings = M2EUIPluginActivator.getDefault().getDialogSettings(); searchProviderCombo = new ComboViewer(this, SWT.BORDER | SWT.READ_ONLY); searchProviderCombo.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1)); searchProviderCombo.setContentProvider(ArrayContentProvider.getInstance()); searchProviderCombo.setLabelProvider(new LabelProvider() { @Override public String getText(Object o) { if(o instanceof IConfigurationElement) { IConfigurationElement element = (IConfigurationElement) o; return element.getAttribute("name"); } return super.getText(o); } }); searchProviderCombo.addPostSelectionChangedListener(event -> { IStructuredSelection selection = event.getStructuredSelection(); try { if(selection != null && !selection.isEmpty()) { IConfigurationElement extension = (IConfigurationElement) selection.getFirstElement(); searchProvider = (ISearchProvider) extension.createExecutableExtension("class"); ((DeferredSearchResultTreeContentProvider) searchResultViewer.getContentProvider()) .setSearchProvider(searchProvider); if(searchText != null) { dialogSettings.put(this.getClass().getSimpleName() + ".searchProvider", extension.getAttribute("class")); scheduleSearch(searchText.getText(), true); } warningArea.setStatus(searchProvider.getStatus()); } } catch(CoreException ex) { StatusManager.getManager().handle(ex, M2EUIPluginActivator.PLUGIN_ID); } }); }