Search in sources :

Example 1 with ITextualMultiModification

use of org.eclipse.xtext.ui.editor.model.edit.ITextualMultiModification in project xtext-xtend by eclipse.

the class XtendQuickfixProvider method removeUnnecessaryModifier.

@Fix(IssueCodes.UNNECESSARY_MODIFIER)
public void removeUnnecessaryModifier(final Issue issue, IssueResolutionAcceptor acceptor) {
    String[] issueData = issue.getData();
    if (issueData == null || issueData.length == 0) {
        return;
    }
    // use the same label, description and image
    // to be able to use the quickfixes (issue resolution) in batch mode
    String label = "Remove the unnecessary modifier.";
    String description = "The modifier is unnecessary and could be removed.";
    String image = "fix_indent.gif";
    acceptor.accept(issue, label, description, image, new ITextualMultiModification() {

        @Override
        public void apply(IModificationContext context) throws Exception {
            if (context instanceof IssueModificationContext) {
                Issue theIssue = ((IssueModificationContext) context).getIssue();
                Integer offset = theIssue.getOffset();
                IXtextDocument document = context.getXtextDocument();
                document.replace(offset, theIssue.getLength(), "");
                while (Character.isWhitespace(document.getChar(offset))) {
                    document.replace(offset, 1, "");
                }
            }
        }
    });
}
Also used : IssueModificationContext(org.eclipse.xtext.ui.editor.model.edit.IssueModificationContext) Issue(org.eclipse.xtext.validation.Issue) IModificationContext(org.eclipse.xtext.ui.editor.model.edit.IModificationContext) ITextualMultiModification(org.eclipse.xtext.ui.editor.model.edit.ITextualMultiModification) CoreException(org.eclipse.core.runtime.CoreException) BadLocationException(org.eclipse.jface.text.BadLocationException) IXtextDocument(org.eclipse.xtext.ui.editor.model.IXtextDocument) Fix(org.eclipse.xtext.ui.editor.quickfix.Fix)

Aggregations

CoreException (org.eclipse.core.runtime.CoreException)1 BadLocationException (org.eclipse.jface.text.BadLocationException)1 IXtextDocument (org.eclipse.xtext.ui.editor.model.IXtextDocument)1 IModificationContext (org.eclipse.xtext.ui.editor.model.edit.IModificationContext)1 ITextualMultiModification (org.eclipse.xtext.ui.editor.model.edit.ITextualMultiModification)1 IssueModificationContext (org.eclipse.xtext.ui.editor.model.edit.IssueModificationContext)1 Fix (org.eclipse.xtext.ui.editor.quickfix.Fix)1 Issue (org.eclipse.xtext.validation.Issue)1