mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-05 00:36:16 +02:00
added on deman launch profile instead of on inc build
This commit is contained in:
parent
f3bb6aa2dd
commit
e01c3cc7c3
5 changed files with 41 additions and 13 deletions
|
@ -27,4 +27,8 @@ public enum CheckerLaunchMode {
|
|||
* checker run in editor as you type
|
||||
*/
|
||||
RUN_AS_YOU_TYPE,
|
||||
/**
|
||||
* checker run when explicit command is given
|
||||
*/
|
||||
RUN_ON_DEMAND,
|
||||
}
|
|
@ -24,10 +24,20 @@ import org.eclipse.core.runtime.IProgressMonitor;
|
|||
*/
|
||||
public interface ICodanBuilder {
|
||||
/**
|
||||
* Run code analysis on given resource
|
||||
* Run code analysis on given resource in {@link CheckerLaunchMode#RUN_ON_FULL_BUILD} mode
|
||||
*
|
||||
* @param resource - resource to process
|
||||
* @param monitor - progress monitor
|
||||
*/
|
||||
public void processResource(IResource resource, IProgressMonitor monitor);
|
||||
|
||||
/**
|
||||
* Run code analysis on given resource in a given mode
|
||||
*
|
||||
* @param resource - resource to process
|
||||
* @param monitor - progress monitor
|
||||
* @param mode - launch mode, @see {@link CheckerLaunchMode}
|
||||
* @since 2.0
|
||||
*/
|
||||
public void processResource(IResource resource, IProgressMonitor monitor, CheckerLaunchMode mode);
|
||||
}
|
|
@ -93,8 +93,20 @@ public class CodanBuilder extends IncrementalProjectBuilder implements ICodanBui
|
|||
processResource(resource, monitor, null, CheckerLaunchMode.RUN_ON_FULL_BUILD);
|
||||
}
|
||||
|
||||
public void processResourceDelta(IResource resource, IProgressMonitor monitor) {
|
||||
processResource(resource, monitor, null, CheckerLaunchMode.RUN_ON_INC_BUILD);
|
||||
/**
|
||||
* Run code analysis on given resource in a given mode
|
||||
*
|
||||
* @param resource - resource to process
|
||||
* @param monitor - progress monitor
|
||||
* @param mode - launch mode, @see {@link CheckerLaunchMode}
|
||||
* @since 2.0
|
||||
*/
|
||||
public void processResource(IResource resource, IProgressMonitor monitor, CheckerLaunchMode mode) {
|
||||
processResource(resource, monitor, null, mode);
|
||||
}
|
||||
|
||||
private void processResourceDelta(IResource resource, IProgressMonitor monitor) {
|
||||
processResource(resource, monitor, CheckerLaunchMode.RUN_ON_INC_BUILD);
|
||||
}
|
||||
|
||||
protected void processResource(IResource resource, IProgressMonitor monitor, Object model, CheckerLaunchMode checkerLaunchMode) {
|
||||
|
@ -147,7 +159,8 @@ public class CodanBuilder extends IncrementalProjectBuilder implements ICodanBui
|
|||
CodanCorePlugin.log(e);
|
||||
}
|
||||
}
|
||||
if (resource instanceof IContainer && (checkerLaunchMode == CheckerLaunchMode.RUN_ON_FULL_BUILD)) {
|
||||
if (resource instanceof IContainer
|
||||
&& (checkerLaunchMode == CheckerLaunchMode.RUN_ON_FULL_BUILD || checkerLaunchMode == CheckerLaunchMode.RUN_ON_DEMAND)) {
|
||||
try {
|
||||
IResource[] members = ((IContainer) resource).members();
|
||||
for (int i = 0; i < members.length; i++) {
|
||||
|
|
|
@ -13,6 +13,7 @@ package org.eclipse.cdt.codan.internal.ui.actions;
|
|||
import java.util.Iterator;
|
||||
|
||||
import org.eclipse.cdt.codan.core.CodanRuntime;
|
||||
import org.eclipse.cdt.codan.core.model.CheckerLaunchMode;
|
||||
import org.eclipse.cdt.codan.internal.ui.CodanUIMessages;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.runtime.IAdaptable;
|
||||
|
@ -52,7 +53,7 @@ public class RunCodeAnalysis implements IObjectActionDelegate {
|
|||
if (o instanceof IResource) {
|
||||
IResource res = (IResource) o;
|
||||
SubProgressMonitor subMon = new SubProgressMonitor(monitor, 100);
|
||||
CodanRuntime.getInstance().getBuilder().processResource(res, subMon);
|
||||
CodanRuntime.getInstance().getBuilder().processResource(res, subMon, CheckerLaunchMode.RUN_ON_DEMAND);
|
||||
if (subMon.isCanceled())
|
||||
return Status.CANCEL_STATUS;
|
||||
}
|
||||
|
|
|
@ -61,7 +61,7 @@ public class LaunchModesPropertyPage extends FieldEditorPreferencePage {
|
|||
protected void createFieldEditors() {
|
||||
createSelectionGroup(getFieldEditorParent());
|
||||
addField(new BooleanFieldEditor(CheckerLaunchMode.RUN_ON_FULL_BUILD.name(), "Run on full build", useLocalGroup));
|
||||
addField(new BooleanFieldEditor(CheckerLaunchMode.RUN_ON_INC_BUILD.name(), "Run on incremental build", useLocalGroup));
|
||||
addField(new BooleanFieldEditor(CheckerLaunchMode.RUN_ON_DEMAND.name(), "Run on demand", useLocalGroup));
|
||||
addField(new BooleanFieldEditor(CheckerLaunchMode.RUN_AS_YOU_TYPE.name(), "Run as you type", useLocalGroup));
|
||||
updateFieldEditors();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue