public class MyEditorAction extends EditorAction {
/**
* @param unitEditor
* @return
*/
private IDocument getDocument(final CompilationUnitEditor unitEditor) {
IDocumentProvider provider = unitEditor.getDocumentProvider();
IEditorInput input = unitEditor.getEditorInput();
IDocument document = provider.getDocument(input);
return document;
}
public void runAction() {
if (getTargetEditor() instanceof CompilationUnitEditor) {
CompilationUnitEditor unitEditor = (CompilationUnitEditor) getTargetEditor();
ICompilationUnit varContainerUnit = (ICompilationUnit) unitEditor.getViewPartInput();
IDocument document = getDocument(unitEditor);
try {
JavaTextSelection javaSelection = new JavaTextSelection(varContainerUnit.getTypes()[0].getTypeRoot(),
document, getTextSelection().getOffset(), getTextSelection().getLength());
ILocalVariable localVar = (ILocalVariable) javaSelection.resolveElementAtOffset()[0];
String varQualifiedTypeName = Signature.getSignatureSimpleName(localVar.getTypeSignature());
//At this point with variable's container unit and qualified type name, use search engine to retrieve IType...
IType varType = SearchEngine.getVarType(varQualifiedTypeName, varContainerUnit);
}
}
No comments:
Post a Comment