1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-08 18:26:01 +02:00

- refactored to extract checkers.ui to another plugin

This commit is contained in:
Alena Laskavaia 2009-04-18 02:11:45 +00:00
parent 8950983042
commit c60533c54f
6 changed files with 18 additions and 139 deletions

View file

@ -7,10 +7,6 @@ Bundle-Activator: org.eclipse.cdt.codan.checkers.Activator
Require-Bundle: org.eclipse.core.runtime, Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.resources;bundle-version="3.5.0", org.eclipse.core.resources;bundle-version="3.5.0",
org.eclipse.cdt.core;bundle-version="5.1.0", org.eclipse.cdt.core;bundle-version="5.1.0",
org.eclipse.cdt.codan.core;bundle-version="1.0.0", org.eclipse.cdt.codan.core;bundle-version="1.0.0"
org.eclipse.ui.editors;bundle-version="3.5.0",
org.eclipse.jface.text;bundle-version="3.5.0",
org.eclipse.ui;bundle-version="3.5.0",
org.eclipse.ui.ide;bundle-version="3.5.0"
Bundle-ActivationPolicy: lazy Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5 Bundle-RequiredExecutionEnvironment: J2SE-1.5

View file

@ -2,24 +2,18 @@
<?eclipse version="3.4"?> <?eclipse version="3.4"?>
<plugin> <plugin>
<extension <extension
point="org.eclipse.cdt.codan.core.checkers"> point="org.eclipse.cdt.codan.core.checkers"
id="org.eclipse.cdt.codan.core.checkers.sample">
<checker <checker
class="org.eclipse.cdt.codan.checkers.sample.AssignmentInConditionChecker" class="org.eclipse.cdt.codan.checkers.sample.AssignmentInConditionChecker"
id="org.eclipse.cdt.codan.checkers.checker1" id="org.eclipse.cdt.codan.checkers.sample.AssignmentInConditionChecker"
name="Assignment in condition"> name="Assignment in condition">
<problem <problem
defaultSeverity="Warning" defaultSeverity="Warning"
id="org.eclipse.cdt.codan.checkers.sample.assignment_in_condition" id="org.eclipse.cdt.codan.checkers.sample.AssignmentInConditionProblem"
name="Assignment in condition"> name="Assignment in condition">
</problem> </problem>
</checker> </checker>
</extension> </extension>
<extension
point="org.eclipse.ui.ide.markerResolution">
<markerResolutionGenerator
class="org.eclipse.cdt.codan.checkers.sample.MarkerResolutionGenerator"
markerType="org.eclipse.cdt.codan.core.codanProblem">
</markerResolutionGenerator>
</extension>
</plugin> </plugin>

View file

@ -1,16 +1,14 @@
package org.eclipse.cdt.codan.checkers; package org.eclipse.cdt.codan.checkers;
import org.eclipse.ui.plugin.AbstractUIPlugin; import org.eclipse.core.runtime.Plugin;
import org.osgi.framework.BundleContext; import org.osgi.framework.BundleContext;
/** /**
* The activator class controls the plug-in life cycle * The activator class controls the plug-in life cycle
*/ */
public class Activator extends AbstractUIPlugin { public class Activator extends Plugin {
// The plug-in ID // The plug-in ID
public static final String PLUGIN_ID = "org.eclipse.cdt.codan.checkers"; public static final String PLUGIN_ID = "org.eclipse.cdt.codan.checkers";
// The shared instance // The shared instance
private static Activator plugin; private static Activator plugin;
@ -22,7 +20,10 @@ public class Activator extends AbstractUIPlugin {
/* /*
* (non-Javadoc) * (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) *
* @see
* org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
* )
*/ */
public void start(BundleContext context) throws Exception { public void start(BundleContext context) throws Exception {
super.start(context); super.start(context);
@ -31,7 +32,10 @@ public class Activator extends AbstractUIPlugin {
/* /*
* (non-Javadoc) * (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) *
* @see
* org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
* )
*/ */
public void stop(BundleContext context) throws Exception { public void stop(BundleContext context) throws Exception {
plugin = null; plugin = null;
@ -46,5 +50,4 @@ public class Activator extends AbstractUIPlugin {
public static Activator getDefault() { public static Activator getDefault() {
return plugin; return plugin;
} }
} }

View file

@ -20,7 +20,7 @@ import org.eclipse.cdt.core.dom.ast.IASTIfStatement;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
public class AssignmentInConditionChecker extends AbstractIndexAstChecker { public class AssignmentInConditionChecker extends AbstractIndexAstChecker {
private static final String ER_ID = "org.eclipse.cdt.codan.checkers.sample.assignment_in_condition"; private static final String ER_ID = "org.eclipse.cdt.codan.checkers.sample.AssignmentInConditionProblem";
@Override @Override
public void processAst(IASTTranslationUnit ast) { public void processAst(IASTTranslationUnit ast) {

View file

@ -1,24 +0,0 @@
/*******************************************************************************
* Copyright (c) 2009 Andrew Gvozdev
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Andrew Gvozdev - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.codan.checkers.sample;
import org.eclipse.core.resources.IMarker;
import org.eclipse.ui.IMarkerResolution;
import org.eclipse.ui.IMarkerResolutionGenerator;
public class MarkerResolutionGenerator implements IMarkerResolutionGenerator {
@Override
public IMarkerResolution[] getResolutions(IMarker marker) {
return new IMarkerResolution[] { new QuickFixAssignmentInCondition() };
}
}

View file

@ -1,90 +0,0 @@
/*******************************************************************************
* Copyright (c) 2009 Andrew Gvozdev
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Andrew Gvozdev - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.codan.checkers.sample;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IMarkerResolution;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;
import org.eclipse.ui.part.FileEditorInput;
import org.eclipse.ui.texteditor.ITextEditor;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.FindReplaceDocumentAdapter;
import org.eclipse.jface.text.IDocument;
public class QuickFixAssignmentInCondition implements IMarkerResolution {
@Override
public String getLabel() {
return "Change first occurence '=' in the line to condition '=='";
}
@Override
public void run(IMarker marker) {
// See if there is an open editor on the file containing the marker
IWorkbenchWindow w = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (w == null) {
return;
}
IWorkbenchPage page = w.getActivePage();
if (page == null) {
return;
}
IFileEditorInput input = new FileEditorInput((IFile) marker.getResource());
IEditorPart editorPart = page.findEditor(input);
if (editorPart == null) {
// open an editor
try {
editorPart = IDE.openEditor(page, (IFile) marker.getResource(), true);
} catch (PartInitException e) {
e.printStackTrace();
}
}
if (editorPart == null) {
return;
}
if (editorPart instanceof ITextEditor) {
ITextEditor editor = (ITextEditor) editorPart;
IDocument doc = editor.getDocumentProvider().getDocument(
editor.getEditorInput());
int line = marker.getAttribute(IMarker.LINE_NUMBER, -1)-1;
FindReplaceDocumentAdapter dad = new FindReplaceDocumentAdapter(doc);
try {
dad.find(doc.getLineOffset(line), "=", /*forwardSearch*/ true, /*caseSensitive*/ false,
/*wholeWord*/ false, /*regExSearch*/ false);
dad.replace("==", /*regExReplace*/ false);
marker.delete();
} catch (BadLocationException e) {
// TODO: log the error
e.printStackTrace();
} catch (CoreException e) {
// TODO: log the error
e.printStackTrace();
}
}
}
}