mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
clean up disablement of LSP
This commit is contained in:
parent
a650dd13d8
commit
fd19e740de
8 changed files with 128 additions and 109 deletions
|
@ -15,13 +15,10 @@ import java.util.Arrays;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
|
||||
import org.eclipse.cdt.core.model.CModelException;
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.model.ICProject;
|
||||
import org.eclipse.cdt.core.model.IPathEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||
import org.eclipse.cdt.make.core.MakeCorePlugin;
|
||||
import org.eclipse.cdt.make.core.MakeProjectNature;
|
||||
import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2;
|
||||
|
@ -183,10 +180,8 @@ public class DiscoveryOptionsBlock extends AbstractDiscoveryOptionsBlock {
|
|||
((GridData)scEnabledButton.getLayoutData()).horizontalSpan = numColumns;
|
||||
((GridData)scEnabledButton.getLayoutData()).grabExcessHorizontalSpace = true;
|
||||
// VMIR* old projects will have discovery disabled by default
|
||||
boolean autodiscoveryEnabled2 = getBuildInfo().isAutoDiscoveryEnabled() &&
|
||||
ScannerDiscoveryLegacySupport.isLegacyScannerDiscoveryOn(getProject());
|
||||
scEnabledButton.setSelection(needsSCNature ? false
|
||||
: (autodiscoveryEnabled2
|
||||
scEnabledButton.setSelection(needsSCNature ? false
|
||||
: (getBuildInfo().isAutoDiscoveryEnabled()
|
||||
&& !getBuildInfo().getSelectedProfileId().equals(ScannerConfigProfileManager.NULL_PROFILE_ID)));
|
||||
scEnabledButton.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
|
|
|
@ -274,7 +274,7 @@ PropertyPageDefsTab_7=Show disc. page names if they are unique. Else show profil
|
|||
PropertyPageDefsTab_8=Always show names + profile IDs
|
||||
PropertyPageDefsTab_9=Always show profile IDs only
|
||||
PropertyPageDefsTab_showIncludeFileTab=Display "Include Files" tab
|
||||
PropertyPageDefsTab_showProvidersTab=Display new experimental Scanner Discovery Providers tabs
|
||||
PropertyPageDefsTab_showProvidersTab=Display "Preprocessor Include Paths" tabs
|
||||
ProjectConvert_convertersList=Converters List
|
||||
|
||||
AbstractPrefPage_0=\ Preference settings will be applied to new projects \n only when there were no toolchains selected.
|
||||
|
|
|
@ -76,8 +76,7 @@ public class PropertyPageDefsTab extends AbstractCPropertyTab {
|
|||
show_exp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||
|
||||
show_providers_tab = new Button(usercomp, SWT.CHECK);
|
||||
show_providers_tab.setText(Messages.PropertyPageDefsTab_showProvidersTab + ", " //$NON-NLS-1$
|
||||
+ org.eclipse.cdt.internal.ui.newui.Messages.CDTMainWizardPage_TrySD90);
|
||||
show_providers_tab.setText(Messages.PropertyPageDefsTab_showProvidersTab);
|
||||
show_providers_tab.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||
|
||||
show_tipbox = new Button(usercomp, SWT.CHECK);
|
||||
|
|
|
@ -29,6 +29,7 @@ import org.eclipse.cdt.core.model.util.CDTListComparator;
|
|||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
|
||||
import org.eclipse.cdt.core.settings.model.util.CDataUtil;
|
||||
import org.eclipse.cdt.internal.ui.language.settings.providers.LanguageSettingsProvidersPage;
|
||||
import org.eclipse.cdt.internal.ui.newui.StatusMessageLine;
|
||||
import org.eclipse.cdt.make.core.MakeCorePlugin;
|
||||
import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2;
|
||||
|
@ -351,7 +352,7 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf
|
|||
private void setEnablement() {
|
||||
IStatus status = null;
|
||||
ICConfigurationDescription cfgDescription = page.getResDesc().getConfiguration();
|
||||
boolean isEnabled = ScannerDiscoveryLegacySupport.isLegacyScannerDiscoveryOn(cfgDescription);
|
||||
boolean isEnabled = !LanguageSettingsProvidersPage.isLanguageSettingsProvidersEnabled(getProject()) || ScannerDiscoveryLegacySupport.isMbsLanguageSettingsProviderOn(cfgDescription);
|
||||
if (!isEnabled) {
|
||||
status = new Status(IStatus.INFO, CUIPlugin.PLUGIN_ID, "Managed Build language settings provider is not enabled.");
|
||||
}
|
||||
|
|
|
@ -92,8 +92,10 @@ public class ScannerDiscoveryLegacySupport {
|
|||
|
||||
/**
|
||||
* Check if legacy Scanner Discovery in MBS should be active.
|
||||
* @noreference This is internal helper method to support compatibility with previous versions
|
||||
* which is not intended to be referenced by clients.
|
||||
*/
|
||||
private static boolean isMbsLanguageSettingsProviderOn(ICConfigurationDescription cfgDescription) {
|
||||
public static boolean isMbsLanguageSettingsProviderOn(ICConfigurationDescription cfgDescription) {
|
||||
if (cfgDescription instanceof ILanguageSettingsProvidersKeeper) {
|
||||
List<ILanguageSettingsProvider> lsProviders = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
for (ILanguageSettingsProvider lsp : lsProviders) {
|
||||
|
|
|
@ -47,7 +47,6 @@ import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvide
|
|||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsBaseProvider;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
|
||||
import org.eclipse.cdt.core.model.ILanguage;
|
||||
import org.eclipse.cdt.core.model.LanguageManager;
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
|
@ -453,29 +452,25 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
|||
* Create check-box to allow disable/enable language settings providers functionality.
|
||||
*/
|
||||
private void createEnableProvidersCheckBox() {
|
||||
enableProvidersCheckBox = setupCheck(usercomp, Messages.CDTMainWizardPage_TrySD90, 2, GridData.FILL_HORIZONTAL);
|
||||
enableProvidersCheckBox.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
boolean enabled = enableProvidersCheckBox.getSelection();
|
||||
if (masterPropertyPage != null) {
|
||||
masterPropertyPage.setLanguageSettingsProvidersEnabled(enabled);
|
||||
}
|
||||
|
||||
enableTabControls(enabled);
|
||||
updateStatusLine();
|
||||
}
|
||||
});
|
||||
|
||||
// take the flag from master page if available (normally for resource properties)
|
||||
if (masterPropertyPage != null) {
|
||||
// take the flag from master page if available (normally for resource properties)
|
||||
enableProvidersCheckBox = setupCheck(usercomp, Messages.CDTMainWizardPage_TrySD90, 2, GridData.FILL_HORIZONTAL);
|
||||
enableProvidersCheckBox.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
boolean enabled = enableProvidersCheckBox.getSelection();
|
||||
masterPropertyPage.setLanguageSettingsProvidersEnabled(enabled);
|
||||
enableTabControls(enabled);
|
||||
updateStatusLine();
|
||||
}
|
||||
});
|
||||
|
||||
enableProvidersCheckBox.setSelection(masterPropertyPage.isLanguageSettingsProvidersEnabled());
|
||||
} else {
|
||||
enableProvidersCheckBox.setSelection(ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(page.getProject()));
|
||||
|
||||
// display but disable the checkbox for file/folder resource
|
||||
enableProvidersCheckBox.setEnabled(page.isForProject());
|
||||
enableTabControls(enableProvidersCheckBox.getSelection());
|
||||
}
|
||||
// display but disable the checkbox for file/folder resource
|
||||
enableProvidersCheckBox.setEnabled(page.isForProject());
|
||||
enableTabControls(enableProvidersCheckBox.getSelection());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1105,7 +1100,7 @@ providers: for (ILanguageSettingsProvider provider : oldProviders) {
|
|||
}
|
||||
}
|
||||
|
||||
setLanguageSettingsProvidersFunctionalityEnablement();
|
||||
performOK();
|
||||
|
||||
trackInitialSettings();
|
||||
updateData(getResDesc());
|
||||
|
@ -1113,20 +1108,8 @@ providers: for (ILanguageSettingsProvider provider : oldProviders) {
|
|||
|
||||
@Override
|
||||
protected void performOK() {
|
||||
setLanguageSettingsProvidersFunctionalityEnablement();
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*/
|
||||
private void setLanguageSettingsProvidersFunctionalityEnablement() {
|
||||
if (page.isForProject() && enableProvidersCheckBox != null) {
|
||||
boolean enabled = enableProvidersCheckBox.getSelection();
|
||||
if (masterPropertyPage != null) {
|
||||
enabled = masterPropertyPage.isLanguageSettingsProvidersEnabled();
|
||||
}
|
||||
ScannerDiscoveryLegacySupport.setLanguageSettingsProvidersFunctionalityEnabled(page.getProject(), enabled);
|
||||
enableProvidersCheckBox.setSelection(enabled);
|
||||
if (masterPropertyPage != null && enableProvidersCheckBox.getEnabled()) {
|
||||
masterPropertyPage.applyLanguageSettingsProvidersEnabled();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -51,7 +51,6 @@ import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvide
|
|||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsSerializableProvider;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
|
||||
import org.eclipse.cdt.ui.CDTSharedImages;
|
||||
|
@ -630,27 +629,24 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
* Create check-box to allow disable/enable language settings providers functionality.
|
||||
*/
|
||||
private void createEnableProvidersCheckBox() {
|
||||
enableProvidersCheckBox = setupCheck(usercomp, Messages.CDTMainWizardPage_TrySD90, 2, GridData.FILL_HORIZONTAL);
|
||||
enableProvidersCheckBox.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
boolean enabled = enableProvidersCheckBox.getSelection();
|
||||
if (masterPropertyPage != null) {
|
||||
// take the flag from master page if available (normally for resource properties)
|
||||
if (masterPropertyPage != null) {
|
||||
enableProvidersCheckBox = setupCheck(usercomp, Messages.CDTMainWizardPage_TrySD90, 2, GridData.FILL_HORIZONTAL);
|
||||
enableProvidersCheckBox.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
boolean enabled = enableProvidersCheckBox.getSelection();
|
||||
masterPropertyPage.setLanguageSettingsProvidersEnabled(enabled);
|
||||
enableTabControls(enabled);
|
||||
}
|
||||
});
|
||||
|
||||
enableTabControls(enabled);
|
||||
}
|
||||
});
|
||||
|
||||
if (masterPropertyPage!=null) {
|
||||
enableProvidersCheckBox.setSelection(masterPropertyPage.isLanguageSettingsProvidersEnabled());
|
||||
} else {
|
||||
enableProvidersCheckBox.setSelection(ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(page.getProject()));
|
||||
|
||||
// display but disable the checkbox for file/folder resource
|
||||
enableProvidersCheckBox.setEnabled(page.isForProject());
|
||||
enableTabControls(enableProvidersCheckBox.getSelection());
|
||||
}
|
||||
// display but disable the checkbox for file/folder resource
|
||||
enableProvidersCheckBox.setEnabled(page.isForProject());
|
||||
enableTabControls(enableProvidersCheckBox.getSelection());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1037,6 +1033,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
}
|
||||
}
|
||||
}
|
||||
tableProvidersViewer.refresh();
|
||||
|
||||
optionsPageMap.clear();
|
||||
for (ILanguageSettingsProvider provider : presentedProviders) {
|
||||
|
@ -1062,7 +1059,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
setAllVisible(true, null);
|
||||
}
|
||||
|
||||
if (enableProvidersCheckBox != null && masterPropertyPage != null) {
|
||||
if (masterPropertyPage != null) {
|
||||
boolean enabled = masterPropertyPage.isLanguageSettingsProvidersEnabled();
|
||||
enableProvidersCheckBox.setSelection(enabled);
|
||||
enableTabControls(enabled);
|
||||
|
@ -1164,13 +1161,8 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
initializeProviders();
|
||||
}
|
||||
|
||||
if (page.isForProject() && enableProvidersCheckBox != null) {
|
||||
boolean enabled = enableProvidersCheckBox.getSelection();
|
||||
if (masterPropertyPage != null) {
|
||||
enabled = masterPropertyPage.isLanguageSettingsProvidersEnabled();
|
||||
}
|
||||
ScannerDiscoveryLegacySupport.setLanguageSettingsProvidersFunctionalityEnabled(page.getProject(), enabled);
|
||||
enableProvidersCheckBox.setSelection(enabled);
|
||||
if (masterPropertyPage != null && enableProvidersCheckBox.getEnabled()) {
|
||||
masterPropertyPage.applyLanguageSettingsProvidersEnabled();
|
||||
}
|
||||
|
||||
Collection<ICOptionPage> optionPages = optionsPageMap.values();
|
||||
|
|
|
@ -10,18 +10,22 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.language.settings.providers;
|
||||
|
||||
import org.eclipse.core.resources.IProject;
|
||||
|
||||
import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
|
||||
import org.eclipse.cdt.ui.newui.AbstractPage;
|
||||
import org.eclipse.cdt.ui.newui.ICPropertyTab;
|
||||
|
||||
/**
|
||||
* Property page for language settings providers tabs.
|
||||
* The handling of isLanguageSettingsProvidersEnabled is temporary, this control is to be removed.
|
||||
*
|
||||
* @noextend This class is not intended to be subclassed by clients.
|
||||
* @noinstantiate This class is not intended to be instantiated by clients.
|
||||
*/
|
||||
public class LanguageSettingsProvidersPage extends AbstractPage {
|
||||
private Boolean isLanguageSettingsProvidersEnabled = null;
|
||||
private static boolean isLanguageSettingsProvidersEnabled = false;
|
||||
private static IProject project = null;
|
||||
|
||||
@Override
|
||||
protected boolean isSingle() {
|
||||
|
@ -29,24 +33,67 @@ public class LanguageSettingsProvidersPage extends AbstractPage {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check if language settings providers functionality is enabled for a current project.
|
||||
* Check if language settings providers functionality is enabled for the project.
|
||||
* Need this method as another page could be inquiring before this page gets initialized.
|
||||
*
|
||||
* @noreference This method is temporary and not intended to be referenced by clients.
|
||||
*/
|
||||
public static boolean isLanguageSettingsProvidersEnabled(IProject prj) {
|
||||
if (prj != null) {
|
||||
if (prj.equals(project)) {
|
||||
return isLanguageSettingsProvidersEnabled;
|
||||
} else {
|
||||
return ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(project);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if language settings providers functionality is enabled for the current project.
|
||||
*
|
||||
* @noreference This method is temporary and not intended to be referenced by clients.
|
||||
*/
|
||||
public boolean isLanguageSettingsProvidersEnabled() {
|
||||
if (isLanguageSettingsProvidersEnabled == null) {
|
||||
isLanguageSettingsProvidersEnabled = ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(getProject());
|
||||
IProject prj = getProject();
|
||||
if (prj != null) {
|
||||
if (!prj.equals(project)) {
|
||||
project = prj;
|
||||
isLanguageSettingsProvidersEnabled = ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(project);
|
||||
}
|
||||
return isLanguageSettingsProvidersEnabled;
|
||||
}
|
||||
return isLanguageSettingsProvidersEnabled;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable or disable language settings providers functionality for a current project.
|
||||
* Enable or disable language settings providers functionality for the current project.
|
||||
* Triggers update of all the property pages.
|
||||
*
|
||||
* Note that this method only sets property for the current editing session.
|
||||
* Use {@link #applyLanguageSettingsProvidersEnabled()} to apply to the project.
|
||||
*
|
||||
* @noreference This method is temporary and not intended to be referenced by clients.
|
||||
*/
|
||||
public void setLanguageSettingsProvidersEnabled(boolean enable) {
|
||||
isLanguageSettingsProvidersEnabled = enable;
|
||||
project = getProject();
|
||||
forEach(ICPropertyTab.UPDATE,getResDesc());
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply enablement of language settings providers functionality to the current project.
|
||||
*
|
||||
* @noreference This method is temporary and not intended to be referenced by clients.
|
||||
*/
|
||||
public void applyLanguageSettingsProvidersEnabled() {
|
||||
ScannerDiscoveryLegacySupport.setLanguageSettingsProvidersFunctionalityEnabled(getProject(), isLanguageSettingsProvidersEnabled);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
isLanguageSettingsProvidersEnabled = false;
|
||||
project = null;
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue