package org.erlide.ui.editors.erl.correction.assists;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.quickassist.IQuickAssistInvocationContext;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.PlatformUI;
import org.erlide.engine.model.root.IErlModule;
import org.erlide.engine.services.parsing.ErlToken;
import org.erlide.ui.editors.erl.ErlangEditor;
import org.erlide.ui.editors.erl.correction.QuickFixExecutor;
public class ConvertMultiStringQuickFix extends QuickFixExecutor {
@Override
public void run() throws Exception {
super.run();
}
@Override
public boolean appliesAt(final IQuickAssistInvocationContext invocationContext) {
final ISourceViewer viewer = invocationContext.getSourceViewer();
final IEditorPart editorPart = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage().getActiveEditor();
if (!(editorPart instanceof ErlangEditor)) {
return false;
}
final ErlangEditor editor = (ErlangEditor) editorPart;
if (editor.getViewer() != viewer) {
return false;
}
final IErlModule module = editor.getModule();
final int offset = invocationContext.getOffset();
final ErlToken token = module.getScanner().getTokenAt(offset);
if (token == null || token.getKind() != ErlToken.KIND_STRING) {
return false;
}
final IDocument doc = viewer.getDocument();
String text;
try {
text = doc.get(token.getOffset(), token.getLength());
if (text.contains("\n")) {
return true;
}
} catch (final BadLocationException e) {
}
return false;
}
}