mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-22 14:12:10 +02:00
Bug 397208 - Problem markers don't get updated when preferences change
This commit is contained in:
parent
1ff1f798d5
commit
f7f56bb08e
12 changed files with 184 additions and 118 deletions
|
@ -11,31 +11,17 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.codan.internal.core;
|
package org.eclipse.cdt.codan.internal.core;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.codan.core.CodanCorePlugin;
|
import org.eclipse.cdt.codan.core.CodanCorePlugin;
|
||||||
import org.eclipse.cdt.codan.core.model.CheckerLaunchMode;
|
import org.eclipse.cdt.codan.core.model.CheckerLaunchMode;
|
||||||
import org.eclipse.cdt.codan.core.model.IChecker;
|
import org.eclipse.cdt.codan.core.model.IChecker;
|
||||||
import org.eclipse.cdt.codan.core.model.ICheckerInvocationContext;
|
import org.eclipse.cdt.codan.core.model.ICheckerInvocationContext;
|
||||||
import org.eclipse.cdt.codan.core.model.ICodanProblemMarker;
|
|
||||||
import org.eclipse.cdt.codan.core.model.IProblem;
|
|
||||||
import org.eclipse.cdt.codan.core.model.IProblemProfile;
|
|
||||||
import org.eclipse.cdt.codan.core.model.IRunnableInEditorChecker;
|
import org.eclipse.cdt.codan.core.model.IRunnableInEditorChecker;
|
||||||
import org.eclipse.core.resources.IContainer;
|
import org.eclipse.core.resources.IContainer;
|
||||||
import org.eclipse.core.resources.IMarker;
|
|
||||||
import org.eclipse.core.resources.IResource;
|
import org.eclipse.core.resources.IResource;
|
||||||
import org.eclipse.core.resources.IResourceRuleFactory;
|
|
||||||
import org.eclipse.core.resources.ResourcesPlugin;
|
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
import org.eclipse.core.runtime.IStatus;
|
|
||||||
import org.eclipse.core.runtime.OperationCanceledException;
|
import org.eclipse.core.runtime.OperationCanceledException;
|
||||||
import org.eclipse.core.runtime.Status;
|
|
||||||
import org.eclipse.core.runtime.SubMonitor;
|
|
||||||
import org.eclipse.core.runtime.SubProgressMonitor;
|
import org.eclipse.core.runtime.SubProgressMonitor;
|
||||||
import org.eclipse.core.runtime.jobs.Job;
|
|
||||||
import org.eclipse.osgi.util.NLS;
|
import org.eclipse.osgi.util.NLS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -134,71 +120,4 @@ public class CodanRunner {
|
||||||
monitor.done();
|
monitor.done();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void asynchronouslyRemoveMarkersForDisabledProblems(final IResource resource) {
|
|
||||||
Job job = new Job(Messages.CodanRunner_Update_markers) {
|
|
||||||
@Override
|
|
||||||
protected IStatus run(IProgressMonitor monitor) {
|
|
||||||
removeMarkersForDisabledProblems(resource, monitor);
|
|
||||||
return Status.OK_STATUS;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
IResourceRuleFactory ruleFactory = ResourcesPlugin.getWorkspace().getRuleFactory();
|
|
||||||
job.setRule(ruleFactory.markerRule(resource));
|
|
||||||
job.setSystem(true);
|
|
||||||
job.schedule();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void removeMarkersForDisabledProblems(IResource resource, IProgressMonitor monitor) {
|
|
||||||
CheckersRegistry chegistry = CheckersRegistry.getInstance();
|
|
||||||
Set<String> markerTypes = new HashSet<String>();
|
|
||||||
for (IChecker checker : chegistry) {
|
|
||||||
Collection<IProblem> problems = chegistry.getRefProblems(checker);
|
|
||||||
for (IProblem problem : problems) {
|
|
||||||
markerTypes.add(problem.getMarkerType());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
removeMarkersForDisabledProblems(chegistry, markerTypes, resource, monitor);
|
|
||||||
} catch (CoreException e) {
|
|
||||||
CodanCorePlugin.log(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void removeMarkersForDisabledProblems(CheckersRegistry chegistry,
|
|
||||||
Set<String> markerTypes, IResource resource, IProgressMonitor monitor) throws CoreException {
|
|
||||||
if (!resource.isAccessible()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
IResource[] children = null;
|
|
||||||
if (resource instanceof IContainer) {
|
|
||||||
children = ((IContainer) resource).members();
|
|
||||||
}
|
|
||||||
int numChildren = children == null ? 0 : children.length;
|
|
||||||
int childWeight = 10;
|
|
||||||
SubMonitor progress = SubMonitor.convert(monitor, 1 + numChildren * childWeight);
|
|
||||||
IProblemProfile resourceProfile = null;
|
|
||||||
for (String markerType : markerTypes) {
|
|
||||||
IMarker[] markers = resource.findMarkers(markerType, false, IResource.DEPTH_ZERO);
|
|
||||||
for (IMarker marker : markers) {
|
|
||||||
String problemId = (String) marker.getAttribute(ICodanProblemMarker.ID);
|
|
||||||
if (resourceProfile == null) {
|
|
||||||
resourceProfile = chegistry.getResourceProfile(resource);
|
|
||||||
}
|
|
||||||
IProblem problem = resourceProfile.findProblem(problemId);
|
|
||||||
if (problem != null && !problem.isEnabled()) {
|
|
||||||
marker.delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
progress.worked(1);
|
|
||||||
if (children != null) {
|
|
||||||
for (IResource child : children) {
|
|
||||||
if (monitor.isCanceled())
|
|
||||||
return;
|
|
||||||
removeMarkersForDisabledProblems(chegistry, markerTypes, child,
|
|
||||||
progress.newChild(childWeight));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,6 @@ class Messages extends NLS {
|
||||||
public static String CodanApplication_Usage;
|
public static String CodanApplication_Usage;
|
||||||
public static String CodanApplication_verbose_option;
|
public static String CodanApplication_verbose_option;
|
||||||
public static String CodanRunner_Code_analysis_on;
|
public static String CodanRunner_Code_analysis_on;
|
||||||
public static String CodanRunner_Update_markers;
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
NLS.initializeMessages(Messages.class.getName(), Messages.class);
|
NLS.initializeMessages(Messages.class.getName(), Messages.class);
|
||||||
|
|
|
@ -18,4 +18,3 @@ CodanApplication_Options=Options:
|
||||||
CodanApplication_all_option= -all - run on all projects in workspace
|
CodanApplication_all_option= -all - run on all projects in workspace
|
||||||
CodanApplication_verbose_option= -verbose - print verbose build information
|
CodanApplication_verbose_option= -verbose - print verbose build information
|
||||||
CodanRunner_Code_analysis_on=Code analysis on {0}
|
CodanRunner_Code_analysis_on=Code analysis on {0}
|
||||||
CodanRunner_Update_markers=Updating error markers
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ class CodanPartListener implements IPartListener2 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processResource(final IResource resource, final CheckerLaunchMode launchMode) {
|
private static void processResource(final IResource resource, final CheckerLaunchMode launchMode) {
|
||||||
if (resource != null) {
|
if (resource != null) {
|
||||||
Job job = new Job(NLS.bind(Messages.Startup_AnalyzingFile, resource.getName())) {
|
Job job = new Job(NLS.bind(Messages.Startup_AnalyzingFile, resource.getName())) {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
#Sun Feb 27 22:29:21 EST 2011
|
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
|
@ -18,6 +22,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=
|
||||||
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
|
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
|
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
|
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
|
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
|
||||||
org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
|
org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
|
||||||
|
@ -25,12 +30,15 @@ org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
|
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
|
org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
|
||||||
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
|
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
|
||||||
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
|
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
|
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
|
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
|
org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
|
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
|
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
|
||||||
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
|
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
|
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
|
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
|
||||||
|
@ -39,20 +47,31 @@ org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warni
|
||||||
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
|
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
|
||||||
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
|
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
|
||||||
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
|
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
|
||||||
org.eclipse.jdt.core.compiler.problem.nullReference=error
|
org.eclipse.jdt.core.compiler.problem.nullReference=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
|
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
|
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
|
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
|
||||||
org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
|
org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
|
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
|
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
|
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
|
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
|
||||||
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
|
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
|
||||||
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
|
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
|
||||||
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
|
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
|
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
|
||||||
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
|
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
|
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
|
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
|
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
|
||||||
|
@ -65,7 +84,8 @@ org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverridin
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedImport=error
|
org.eclipse.jdt.core.compiler.problem.unusedImport=error
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
|
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
|
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
|
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
|
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
|
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||||
|
|
|
@ -5,17 +5,18 @@ Bundle-SymbolicName: org.eclipse.cdt.codan.ui; singleton:=true
|
||||||
Bundle-Version: 3.2.0.qualifier
|
Bundle-Version: 3.2.0.qualifier
|
||||||
Bundle-Activator: org.eclipse.cdt.codan.internal.ui.CodanUIActivator
|
Bundle-Activator: org.eclipse.cdt.codan.internal.ui.CodanUIActivator
|
||||||
Bundle-Vendor: %Bundle-Vendor
|
Bundle-Vendor: %Bundle-Vendor
|
||||||
Require-Bundle: org.eclipse.ui,
|
Require-Bundle: org.eclipse.cdt.codan.core,
|
||||||
org.eclipse.core.runtime,
|
org.eclipse.cdt.core,
|
||||||
org.eclipse.core.resources,
|
|
||||||
org.eclipse.ui.workbench.texteditor,
|
|
||||||
org.eclipse.cdt.codan.core,
|
|
||||||
org.eclipse.jface.text,
|
|
||||||
org.eclipse.ui.ide,
|
|
||||||
org.eclipse.cdt.ui,
|
org.eclipse.cdt.ui,
|
||||||
org.eclipse.core.filesystem,
|
org.eclipse.core.filesystem,
|
||||||
|
org.eclipse.core.resources,
|
||||||
|
org.eclipse.core.runtime,
|
||||||
|
org.eclipse.jface.text,
|
||||||
|
org.eclipse.ui,
|
||||||
org.eclipse.ui.console,
|
org.eclipse.ui.console,
|
||||||
org.eclipse.ui.editors
|
org.eclipse.ui.editors,
|
||||||
|
org.eclipse.ui.ide,
|
||||||
|
org.eclipse.ui.workbench.texteditor
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
Export-Package: org.eclipse.cdt.codan.internal.ui;x-friends:="org.eclipse.cdt.codan.ui.cxx",
|
Export-Package: org.eclipse.cdt.codan.internal.ui;x-friends:="org.eclipse.cdt.codan.ui.cxx",
|
||||||
|
|
|
@ -30,6 +30,7 @@ public class CodanUIMessages extends NLS {
|
||||||
public static String CodanPreferencePage_MessageLabel;
|
public static String CodanPreferencePage_MessageLabel;
|
||||||
public static String CodanPreferencePage_NoInfo;
|
public static String CodanPreferencePage_NoInfo;
|
||||||
public static String CodanPreferencePage_Parameters;
|
public static String CodanPreferencePage_Parameters;
|
||||||
|
public static String CodanPreferencePage_Update_markers;
|
||||||
public static String ProblemsTreeEditor_NameColumn;
|
public static String ProblemsTreeEditor_NameColumn;
|
||||||
public static String ProblemsTreeEditor_Problems;
|
public static String ProblemsTreeEditor_Problems;
|
||||||
public static String ProblemsTreeEditor_SeverityColumn;
|
public static String ProblemsTreeEditor_SeverityColumn;
|
||||||
|
|
|
@ -22,6 +22,7 @@ CodanPreferencePage_Info=Info
|
||||||
CodanPreferencePage_MessageLabel=Message:
|
CodanPreferencePage_MessageLabel=Message:
|
||||||
CodanPreferencePage_NoInfo=No description
|
CodanPreferencePage_NoInfo=No description
|
||||||
CodanPreferencePage_Parameters=Parameters:
|
CodanPreferencePage_Parameters=Parameters:
|
||||||
|
CodanPreferencePage_Update_markers=Updating error markers
|
||||||
CustomizeProblemComposite_LaunchingTab=Launching
|
CustomizeProblemComposite_LaunchingTab=Launching
|
||||||
CustomizeProblemComposite_TabParameters=Preferences
|
CustomizeProblemComposite_TabParameters=Preferences
|
||||||
CustomizeProblemComposite_TabScope=Scope
|
CustomizeProblemComposite_TabScope=Scope
|
||||||
|
|
|
@ -8,23 +8,49 @@
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Alena Laskavaia - initial API and implementation
|
* Alena Laskavaia - initial API and implementation
|
||||||
* Alex Ruiz (Google)
|
* Alex Ruiz (Google)
|
||||||
|
* Sergey Prigogin (Google)
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.codan.internal.ui.preferences;
|
package org.eclipse.cdt.codan.internal.ui.preferences;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.eclipse.cdt.codan.core.CodanCorePlugin;
|
import org.eclipse.cdt.codan.core.CodanCorePlugin;
|
||||||
import org.eclipse.cdt.codan.core.CodanRuntime;
|
import org.eclipse.cdt.codan.core.CodanRuntime;
|
||||||
|
import org.eclipse.cdt.codan.core.model.CheckerLaunchMode;
|
||||||
|
import org.eclipse.cdt.codan.core.model.IChecker;
|
||||||
import org.eclipse.cdt.codan.core.model.ICheckersRegistry;
|
import org.eclipse.cdt.codan.core.model.ICheckersRegistry;
|
||||||
|
import org.eclipse.cdt.codan.core.model.ICodanProblemMarker;
|
||||||
import org.eclipse.cdt.codan.core.model.IProblem;
|
import org.eclipse.cdt.codan.core.model.IProblem;
|
||||||
import org.eclipse.cdt.codan.core.model.IProblemProfile;
|
import org.eclipse.cdt.codan.core.model.IProblemProfile;
|
||||||
|
import org.eclipse.cdt.codan.internal.core.CheckersRegistry;
|
||||||
import org.eclipse.cdt.codan.internal.core.CodanRunner;
|
import org.eclipse.cdt.codan.internal.core.CodanRunner;
|
||||||
import org.eclipse.cdt.codan.internal.ui.CodanUIActivator;
|
import org.eclipse.cdt.codan.internal.ui.CodanUIActivator;
|
||||||
import org.eclipse.cdt.codan.internal.ui.CodanUIMessages;
|
import org.eclipse.cdt.codan.internal.ui.CodanUIMessages;
|
||||||
import org.eclipse.cdt.codan.internal.ui.dialogs.CustomizeProblemDialog;
|
import org.eclipse.cdt.codan.internal.ui.dialogs.CustomizeProblemDialog;
|
||||||
|
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||||
|
import org.eclipse.cdt.core.model.CoreModelUtil;
|
||||||
|
import org.eclipse.cdt.core.model.ILanguage;
|
||||||
|
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||||
|
import org.eclipse.cdt.internal.core.model.ASTCache.ASTRunnable;
|
||||||
|
import org.eclipse.cdt.internal.corext.util.CModelUtil;
|
||||||
|
import org.eclipse.cdt.internal.ui.editor.ASTProvider;
|
||||||
|
import org.eclipse.cdt.ui.ICEditor;
|
||||||
|
import org.eclipse.core.resources.IContainer;
|
||||||
|
import org.eclipse.core.resources.IFile;
|
||||||
|
import org.eclipse.core.resources.IMarker;
|
||||||
import org.eclipse.core.resources.IResource;
|
import org.eclipse.core.resources.IResource;
|
||||||
|
import org.eclipse.core.resources.IResourceRuleFactory;
|
||||||
import org.eclipse.core.resources.ResourcesPlugin;
|
import org.eclipse.core.resources.ResourcesPlugin;
|
||||||
|
import org.eclipse.core.runtime.CoreException;
|
||||||
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
|
import org.eclipse.core.runtime.IStatus;
|
||||||
|
import org.eclipse.core.runtime.Status;
|
||||||
|
import org.eclipse.core.runtime.SubMonitor;
|
||||||
|
import org.eclipse.core.runtime.jobs.Job;
|
||||||
import org.eclipse.core.runtime.preferences.InstanceScope;
|
import org.eclipse.core.runtime.preferences.InstanceScope;
|
||||||
import org.eclipse.jface.dialogs.IDialogSettings;
|
import org.eclipse.jface.dialogs.IDialogSettings;
|
||||||
import org.eclipse.jface.layout.GridDataFactory;
|
import org.eclipse.jface.layout.GridDataFactory;
|
||||||
|
@ -42,8 +68,13 @@ import org.eclipse.swt.layout.GridLayout;
|
||||||
import org.eclipse.swt.widgets.Button;
|
import org.eclipse.swt.widgets.Button;
|
||||||
import org.eclipse.swt.widgets.Composite;
|
import org.eclipse.swt.widgets.Composite;
|
||||||
import org.eclipse.swt.widgets.Control;
|
import org.eclipse.swt.widgets.Control;
|
||||||
|
import org.eclipse.ui.IEditorPart;
|
||||||
|
import org.eclipse.ui.IEditorReference;
|
||||||
import org.eclipse.ui.IWorkbench;
|
import org.eclipse.ui.IWorkbench;
|
||||||
|
import org.eclipse.ui.IWorkbenchPage;
|
||||||
import org.eclipse.ui.IWorkbenchPreferencePage;
|
import org.eclipse.ui.IWorkbenchPreferencePage;
|
||||||
|
import org.eclipse.ui.IWorkbenchWindow;
|
||||||
|
import org.eclipse.ui.PlatformUI;
|
||||||
import org.eclipse.ui.preferences.ScopedPreferenceStore;
|
import org.eclipse.ui.preferences.ScopedPreferenceStore;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -163,7 +194,7 @@ public class CodanPreferencePage extends FieldEditorOverlayPage implements IWork
|
||||||
if (resource == null) {
|
if (resource == null) {
|
||||||
resource = ResourcesPlugin.getWorkspace().getRoot();
|
resource = ResourcesPlugin.getWorkspace().getRoot();
|
||||||
}
|
}
|
||||||
CodanRunner.asynchronouslyRemoveMarkersForDisabledProblems(resource);
|
asynchronouslyUpdateMarkers(resource);
|
||||||
}
|
}
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
@ -215,4 +246,111 @@ public class CodanPreferencePage extends FieldEditorOverlayPage implements IWork
|
||||||
private boolean hasSelectedProblems() {
|
private boolean hasSelectedProblems() {
|
||||||
return selectedProblems != null && !selectedProblems.isEmpty();
|
return selectedProblems != null && !selectedProblems.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void asynchronouslyUpdateMarkers(final IResource resource) {
|
||||||
|
final Set<IFile> filesToUpdate = new HashSet<IFile>();
|
||||||
|
final IWorkbench workbench = PlatformUI.getWorkbench();
|
||||||
|
IWorkbenchWindow active = workbench.getActiveWorkbenchWindow();
|
||||||
|
final IWorkbenchPage page = active.getActivePage();
|
||||||
|
// Get the files open C/C++ editors.
|
||||||
|
for (IEditorReference partRef : page.getEditorReferences()) {
|
||||||
|
IEditorPart editor = partRef.getEditor(false);
|
||||||
|
if (editor instanceof ICEditor) {
|
||||||
|
IFile file = (IFile) editor.getEditorInput().getAdapter(IFile.class);
|
||||||
|
if (file != null && resource.getFullPath().isPrefixOf(file.getFullPath())) {
|
||||||
|
filesToUpdate.add(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Job job = new Job(CodanUIMessages.CodanPreferencePage_Update_markers) {
|
||||||
|
@Override
|
||||||
|
protected IStatus run(IProgressMonitor monitor) {
|
||||||
|
final SubMonitor submonitor = SubMonitor.convert(monitor, 1 + 2 * filesToUpdate.size());
|
||||||
|
removeMarkersForDisabledProblems(resource, submonitor.newChild(1));
|
||||||
|
if (filesToUpdate.isEmpty())
|
||||||
|
return Status.OK_STATUS;
|
||||||
|
|
||||||
|
// Run checkers on the currently open files to update the problem markers.
|
||||||
|
for (final IFile file : filesToUpdate) {
|
||||||
|
ITranslationUnit tu = CoreModelUtil.findTranslationUnit(file);
|
||||||
|
if (tu != null) {
|
||||||
|
tu = CModelUtil.toWorkingCopy(tu);
|
||||||
|
ASTProvider.getASTProvider().runOnAST(
|
||||||
|
tu, ASTProvider.WAIT_ACTIVE_ONLY, submonitor.newChild(1),
|
||||||
|
new ASTRunnable() {
|
||||||
|
@Override
|
||||||
|
public IStatus runOnAST(ILanguage lang, IASTTranslationUnit ast) {
|
||||||
|
if (ast != null) {
|
||||||
|
CodanRunner.runInEditor(ast, file, submonitor.newChild(1));
|
||||||
|
} else {
|
||||||
|
CodanRunner.processResource(file, CheckerLaunchMode.RUN_ON_FILE_OPEN,
|
||||||
|
submonitor.newChild(1));
|
||||||
|
}
|
||||||
|
return Status.OK_STATUS;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Status.OK_STATUS;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
IResourceRuleFactory ruleFactory = ResourcesPlugin.getWorkspace().getRuleFactory();
|
||||||
|
job.setRule(ruleFactory.markerRule(resource));
|
||||||
|
job.setSystem(true);
|
||||||
|
job.schedule();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void removeMarkersForDisabledProblems(IResource resource, IProgressMonitor monitor) {
|
||||||
|
CheckersRegistry chegistry = CheckersRegistry.getInstance();
|
||||||
|
Set<String> markerTypes = new HashSet<String>();
|
||||||
|
for (IChecker checker : chegistry) {
|
||||||
|
Collection<IProblem> problems = chegistry.getRefProblems(checker);
|
||||||
|
for (IProblem problem : problems) {
|
||||||
|
markerTypes.add(problem.getMarkerType());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
removeMarkersForDisabledProblems(chegistry, markerTypes, resource, monitor);
|
||||||
|
} catch (CoreException e) {
|
||||||
|
CodanUIActivator.log(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void removeMarkersForDisabledProblems(CheckersRegistry chegistry,
|
||||||
|
Set<String> markerTypes, IResource resource, IProgressMonitor monitor) throws CoreException {
|
||||||
|
if (!resource.isAccessible()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
IResource[] children = null;
|
||||||
|
if (resource instanceof IContainer) {
|
||||||
|
children = ((IContainer) resource).members();
|
||||||
|
}
|
||||||
|
int numChildren = children == null ? 0 : children.length;
|
||||||
|
int childWeight = 10;
|
||||||
|
SubMonitor progress = SubMonitor.convert(monitor, 1 + numChildren * childWeight);
|
||||||
|
IProblemProfile resourceProfile = null;
|
||||||
|
for (String markerType : markerTypes) {
|
||||||
|
IMarker[] markers = resource.findMarkers(markerType, false, IResource.DEPTH_ZERO);
|
||||||
|
for (IMarker marker : markers) {
|
||||||
|
String problemId = (String) marker.getAttribute(ICodanProblemMarker.ID);
|
||||||
|
if (resourceProfile == null) {
|
||||||
|
resourceProfile = chegistry.getResourceProfile(resource);
|
||||||
|
}
|
||||||
|
IProblem problem = resourceProfile.findProblem(problemId);
|
||||||
|
if (problem != null && !problem.isEnabled()) {
|
||||||
|
marker.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
progress.worked(1);
|
||||||
|
if (children != null) {
|
||||||
|
for (IResource child : children) {
|
||||||
|
if (monitor.isCanceled())
|
||||||
|
return;
|
||||||
|
removeMarkersForDisabledProblems(chegistry, markerTypes, child,
|
||||||
|
progress.newChild(childWeight));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -15,7 +15,6 @@ import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.eclipse.cdt.codan.core.param.FileScopeProblemPreference;
|
import org.eclipse.cdt.codan.core.param.FileScopeProblemPreference;
|
||||||
import org.eclipse.cdt.codan.internal.ui.CodanUIActivator;
|
|
||||||
import org.eclipse.cdt.codan.internal.ui.CodanUIMessages;
|
import org.eclipse.cdt.codan.internal.ui.CodanUIMessages;
|
||||||
import org.eclipse.cdt.codan.internal.ui.dialogs.ExclusionInclusionEntryDialog;
|
import org.eclipse.cdt.codan.internal.ui.dialogs.ExclusionInclusionEntryDialog;
|
||||||
import org.eclipse.cdt.codan.internal.ui.widgets.BasicElementLabels;
|
import org.eclipse.cdt.codan.internal.ui.widgets.BasicElementLabels;
|
||||||
|
@ -33,7 +32,6 @@ import org.eclipse.core.runtime.IPath;
|
||||||
import org.eclipse.core.runtime.Path;
|
import org.eclipse.core.runtime.Path;
|
||||||
import org.eclipse.jface.dialogs.Dialog;
|
import org.eclipse.jface.dialogs.Dialog;
|
||||||
import org.eclipse.jface.preference.PreferencePage;
|
import org.eclipse.jface.preference.PreferencePage;
|
||||||
import org.eclipse.jface.resource.ImageDescriptor;
|
|
||||||
import org.eclipse.jface.viewers.LabelProvider;
|
import org.eclipse.jface.viewers.LabelProvider;
|
||||||
import org.eclipse.jface.viewers.ViewerComparator;
|
import org.eclipse.jface.viewers.ViewerComparator;
|
||||||
import org.eclipse.jface.window.Window;
|
import org.eclipse.jface.window.Window;
|
||||||
|
@ -43,7 +41,6 @@ import org.eclipse.swt.layout.GridData;
|
||||||
import org.eclipse.swt.layout.GridLayout;
|
import org.eclipse.swt.layout.GridLayout;
|
||||||
import org.eclipse.swt.widgets.Composite;
|
import org.eclipse.swt.widgets.Composite;
|
||||||
import org.eclipse.swt.widgets.Control;
|
import org.eclipse.swt.widgets.Control;
|
||||||
import org.eclipse.swt.widgets.Shell;
|
|
||||||
|
|
||||||
public class FileScopePreferencePage extends PreferencePage {
|
public class FileScopePreferencePage extends PreferencePage {
|
||||||
private ListDialogField<String> fInclusionPatternList;
|
private ListDialogField<String> fInclusionPatternList;
|
||||||
|
@ -106,18 +103,13 @@ public class FileScopePreferencePage extends PreferencePage {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ExclusionInclusionLabelProvider extends LabelProvider {
|
private static class ExclusionInclusionLabelProvider extends LabelProvider {
|
||||||
private Image fElementImage;
|
|
||||||
|
|
||||||
public ExclusionInclusionLabelProvider(String descriptorPath) {
|
public ExclusionInclusionLabelProvider(String descriptorPath) {
|
||||||
if (descriptorPath != null) {
|
|
||||||
ImageDescriptor d = CodanUIActivator.getImageDescriptor(descriptorPath);
|
|
||||||
}
|
|
||||||
fElementImage = null; // XXX
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Image getImage(Object element) {
|
public Image getImage(Object element) {
|
||||||
return fElementImage;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -126,10 +118,11 @@ public class FileScopePreferencePage extends PreferencePage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ListDialogField<String> createListContents(FileScopeProblemPreference entryToEdit, String key, String label, String descriptor,
|
private ListDialogField<String> createListContents(FileScopeProblemPreference entryToEdit,
|
||||||
String[] buttonLabels) {
|
String key, String label, String descriptor, String[] buttonLabels) {
|
||||||
ExclusionPatternAdapter adapter = new ExclusionPatternAdapter();
|
ExclusionPatternAdapter adapter = new ExclusionPatternAdapter();
|
||||||
ListDialogField<String> patternList = new ListDialogField<String>(adapter, buttonLabels, new ExclusionInclusionLabelProvider(descriptor));
|
ListDialogField<String> patternList =
|
||||||
|
new ListDialogField<String>(adapter, buttonLabels, new ExclusionInclusionLabelProvider(descriptor));
|
||||||
patternList.setDialogFieldListener(adapter);
|
patternList.setDialogFieldListener(adapter);
|
||||||
patternList.setLabelText(label);
|
patternList.setLabelText(label);
|
||||||
patternList.enableButton(IDX_EDIT, false);
|
patternList.enableButton(IDX_EDIT, false);
|
||||||
|
@ -265,12 +258,6 @@ public class FileScopePreferencePage extends PreferencePage {
|
||||||
return getPattern(fInclusionPatternList);
|
return getPattern(fInclusionPatternList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* @see org.eclipse.jface.window.Window#configureShell(Shell)
|
|
||||||
*/
|
|
||||||
protected void configureShell(Shell newShell) {
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addMultipleEntries(ListDialogField<String> field) {
|
private void addMultipleEntries(ListDialogField<String> field) {
|
||||||
String title, message;
|
String title, message;
|
||||||
if (isExclusion(field)) {
|
if (isExclusion(field)) {
|
||||||
|
@ -280,7 +267,8 @@ public class FileScopePreferencePage extends PreferencePage {
|
||||||
title = CodanUIMessages.ExclusionInclusionDialog_ChooseInclusionPattern_title;
|
title = CodanUIMessages.ExclusionInclusionDialog_ChooseInclusionPattern_title;
|
||||||
message = CodanUIMessages.ExclusionInclusionDialog_ChooseInclusionPattern_description;
|
message = CodanUIMessages.ExclusionInclusionDialog_ChooseInclusionPattern_description;
|
||||||
}
|
}
|
||||||
IPath[] res = ExclusionInclusionEntryDialog.chooseExclusionPattern(getShell(), fCurrSourceFolder, title, message, null, true);
|
IPath[] res = ExclusionInclusionEntryDialog.chooseExclusionPattern(getShell(),
|
||||||
|
fCurrSourceFolder, title, message, null, true);
|
||||||
if (res != null) {
|
if (res != null) {
|
||||||
for (int i = 0; i < res.length; i++) {
|
for (int i = 0; i < res.length; i++) {
|
||||||
field.addElement(res[i].toString());
|
field.addElement(res[i].toString());
|
||||||
|
|
|
@ -70,7 +70,7 @@ Export-Package: org.eclipse.cdt.core,
|
||||||
org.eclipse.cdt.internal.core.indexer;x-internal:=true,
|
org.eclipse.cdt.internal.core.indexer;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.core.language;x-friends:="org.eclipse.cdt.ui",
|
org.eclipse.cdt.internal.core.language;x-friends:="org.eclipse.cdt.ui",
|
||||||
org.eclipse.cdt.internal.core.language.settings.providers;x-internal:=true,
|
org.eclipse.cdt.internal.core.language.settings.providers;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.core.model;x-friends:="org.eclipse.cdt.ui,org.eclipse.cdt.debug.core,org.eclipse.cdt.debug.ui",
|
org.eclipse.cdt.internal.core.model;x-friends:="org.eclipse.cdt.ui,org.eclipse.cdt.debug.core,org.eclipse.cdt.debug.ui,org.eclipse.cdt.codan.ui",
|
||||||
org.eclipse.cdt.internal.core.model.ext;x-friends:="org.eclipse.cdt.ui",
|
org.eclipse.cdt.internal.core.model.ext;x-friends:="org.eclipse.cdt.ui",
|
||||||
org.eclipse.cdt.internal.core.parser;x-internal:=true,
|
org.eclipse.cdt.internal.core.parser;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.core.parser.problem;x-internal:=true,
|
org.eclipse.cdt.internal.core.parser.problem;x-internal:=true,
|
||||||
|
|
|
@ -10,7 +10,7 @@ Export-Package: org.eclipse.cdt.internal.corext;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.corext.codemanipulation;x-internal:=true,
|
org.eclipse.cdt.internal.corext.codemanipulation;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.corext.fix;x-internal:=true,
|
org.eclipse.cdt.internal.corext.fix;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.corext.template.c;x-internal:=true,
|
org.eclipse.cdt.internal.corext.template.c;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.corext.util;x-internal:=true,
|
org.eclipse.cdt.internal.corext.util;x-friends:="org.eclipse.cdt.codan.ui",
|
||||||
org.eclipse.cdt.internal.ui;x-friends:="org.eclipse.cdt.debug.edc.tests",
|
org.eclipse.cdt.internal.ui;x-friends:="org.eclipse.cdt.debug.edc.tests",
|
||||||
org.eclipse.cdt.internal.ui.actions;x-internal:=true,
|
org.eclipse.cdt.internal.ui.actions;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.ui.browser.opentype;x-internal:=true,
|
org.eclipse.cdt.internal.ui.browser.opentype;x-internal:=true,
|
||||||
|
@ -22,7 +22,7 @@ Export-Package: org.eclipse.cdt.internal.corext;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.ui.dialogs;x-internal:=true,
|
org.eclipse.cdt.internal.ui.dialogs;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.ui.dialogs.cpaths;x-internal:=true,
|
org.eclipse.cdt.internal.ui.dialogs.cpaths;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.ui.dnd;x-internal:=true,
|
org.eclipse.cdt.internal.ui.dnd;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.ui.editor;x-friends:="org.eclipse.cdt.codan.ui.cxx",
|
org.eclipse.cdt.internal.ui.editor;x-friends:="org.eclipse.cdt.codan.ui,org.eclipse.cdt.codan.ui.cxx",
|
||||||
org.eclipse.cdt.internal.ui.editor.asm;x-internal:=true,
|
org.eclipse.cdt.internal.ui.editor.asm;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.ui.filters;x-internal:=true,
|
org.eclipse.cdt.internal.ui.filters;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.ui.help;x-internal:=true,
|
org.eclipse.cdt.internal.ui.help;x-internal:=true,
|
||||||
|
@ -65,7 +65,7 @@ Export-Package: org.eclipse.cdt.internal.corext;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.ui.viewsupport;x-internal:=true,
|
org.eclipse.cdt.internal.ui.viewsupport;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.ui.wizards;x-internal:=true,
|
org.eclipse.cdt.internal.ui.wizards;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.ui.wizards.classwizard;x-internal:=true,
|
org.eclipse.cdt.internal.ui.wizards.classwizard;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.ui.wizards.dialogfields;x-internal:=true,
|
org.eclipse.cdt.internal.ui.wizards.dialogfields;x-friends:="org.eclipse.cdt.codan.ui",
|
||||||
org.eclipse.cdt.internal.ui.wizards.filewizard;x-internal:=true,
|
org.eclipse.cdt.internal.ui.wizards.filewizard;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.ui.wizards.folderwizard;x-internal:=true,
|
org.eclipse.cdt.internal.ui.wizards.folderwizard;x-internal:=true,
|
||||||
org.eclipse.cdt.internal.ui.wizards.indexwizards;x-internal:=true,
|
org.eclipse.cdt.internal.ui.wizards.indexwizards;x-internal:=true,
|
||||||
|
|
Loading…
Add table
Reference in a new issue