diff options
author | Alena Laskavaia | 2010-05-02 02:31:03 +0000 |
---|---|---|
committer | Alena Laskavaia | 2010-05-02 02:31:03 +0000 |
commit | a93035a04c9be432d9939fd54adc88be5853b88b (patch) | |
tree | 421bd83557f7e9dfc21b04d351b59c643350c56d /codan/org.eclipse.cdt.codan.checkers.ui | |
parent | 7872cd18fd3077fba502aa725d416f3164ed0c43 (diff) | |
download | org.eclipse.cdt-a93035a04c9be432d9939fd54adc88be5853b88b.tar.gz org.eclipse.cdt-a93035a04c9be432d9939fd54adc88be5853b88b.tar.xz org.eclipse.cdt-a93035a04c9be432d9939fd54adc88be5853b88b.zip |
Added quick fix for parenthesis checker
Diffstat (limited to 'codan/org.eclipse.cdt.codan.checkers.ui')
4 files changed, 43 insertions, 0 deletions
diff --git a/codan/org.eclipse.cdt.codan.checkers.ui/plugin.xml b/codan/org.eclipse.cdt.codan.checkers.ui/plugin.xml index 980a19f6e98..7052603655e 100644 --- a/codan/org.eclipse.cdt.codan.checkers.ui/plugin.xml +++ b/codan/org.eclipse.cdt.codan.checkers.ui/plugin.xml @@ -13,6 +13,10 @@ class="org.eclipse.cdt.codan.internal.checkers.ui.quickfix.QuickFixAssignmentInCondition" problemId="org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem"> </resolution> + <resolution + class="org.eclipse.cdt.codan.internal.checkers.ui.quickfix.SuggestedParenthesisQuickFix" + problemId="org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem"> + </resolution> </extension> </plugin> diff --git a/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/internal/checkers/ui/Messages.java b/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/internal/checkers/ui/Messages.java index e68a5ce2f10..525de8a6b3a 100644 --- a/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/internal/checkers/ui/Messages.java +++ b/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/internal/checkers/ui/Messages.java @@ -19,6 +19,7 @@ public class Messages extends NLS { private static final String BUNDLE_NAME = "org.eclipse.cdt.codan.internal.checkers.ui.messages"; //$NON-NLS-1$ public static String CatchByReferenceQuickFix_Message; public static String QuickFixAssignmentInCondition_Message; + public static String SuggestedParenthesisQuickFix_Message; static { // initialize resource bundle NLS.initializeMessages(BUNDLE_NAME, Messages.class); diff --git a/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/internal/checkers/ui/messages.properties b/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/internal/checkers/ui/messages.properties index 5ce0a9ff7e9..2d965d9d38d 100644 --- a/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/internal/checkers/ui/messages.properties +++ b/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/internal/checkers/ui/messages.properties @@ -1,2 +1,3 @@ CatchByReferenceQuickFix_Message=Change to use '&' QuickFixAssignmentInCondition_Message=Change to '==' +SuggestedParenthesisQuickFix_Message=Surround with '()' diff --git a/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/internal/checkers/ui/quickfix/SuggestedParenthesisQuickFix.java b/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/internal/checkers/ui/quickfix/SuggestedParenthesisQuickFix.java new file mode 100644 index 00000000000..6cf54134b68 --- /dev/null +++ b/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/internal/checkers/ui/quickfix/SuggestedParenthesisQuickFix.java @@ -0,0 +1,37 @@ +package org.eclipse.cdt.codan.internal.checkers.ui.quickfix; + +import org.eclipse.cdt.codan.internal.checkers.ui.CheckersUiActivator; +import org.eclipse.cdt.codan.internal.checkers.ui.Messages; +import org.eclipse.cdt.codan.ui.AbstarctCodanCMarkerResolution; +import org.eclipse.core.resources.IMarker; +import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.text.IDocument; + +public class SuggestedParenthesisQuickFix extends + AbstarctCodanCMarkerResolution { + public String getLabel() { + return Messages.SuggestedParenthesisQuickFix_Message; + } + + @Override + public boolean isApplicable(IMarker marker) { + int charEnd = marker.getAttribute(IMarker.CHAR_END, -1); + if (charEnd == -1) + return false; + return true; + } + + @Override + public void apply(IMarker marker, IDocument document) { + int charStart = marker.getAttribute(IMarker.CHAR_START, -1); + int charEnd = marker.getAttribute(IMarker.CHAR_END, -1); + if (charEnd == -1) + return; + try { + document.replace(charStart, 0, "("); //$NON-NLS-1$ + document.replace(charEnd+1, 0, ")"); //$NON-NLS-1$ + } catch (BadLocationException e) { + CheckersUiActivator.log(e); + } + } +} |