本文整理汇总了Java中com.intellij.debugger.ui.tree.LocalVariableDescriptor类的典型用法代码示例。如果您正苦于以下问题:Java LocalVariableDescriptor类的具体用法?Java LocalVariableDescriptor怎么用?Java LocalVariableDescriptor使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
LocalVariableDescriptor类属于com.intellij.debugger.ui.tree包,在下文中一共展示了LocalVariableDescriptor类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: computeSourcePosition
import com.intellij.debugger.ui.tree.LocalVariableDescriptor; //导入依赖的package包/类
@Nullable
@Override
protected SourcePosition computeSourcePosition(@NotNull NodeDescriptor descriptor,
@NotNull Project project,
@NotNull DebuggerContextImpl context,
boolean nearest) {
StackFrameProxyImpl frame = context.getFrameProxy();
if (frame == null) {
return null;
}
if (descriptor instanceof FieldDescriptor) {
return getSourcePositionForField((FieldDescriptor)descriptor, project, context, nearest);
}
else if (descriptor instanceof LocalVariableDescriptor) {
return getSourcePositionForLocalVariable(descriptor.getName(), project, context, nearest);
}
else if (descriptor instanceof ArgumentValueDescriptorImpl) {
Collection<String> names = ((ArgumentValueDescriptorImpl)descriptor).getVariable().getMatchedNames();
if (!names.isEmpty()) {
return getSourcePositionForLocalVariable(names.iterator().next(), project, context, nearest);
}
}
return null;
}
示例2: action
import com.intellij.debugger.ui.tree.LocalVariableDescriptor; //导入依赖的package包/类
@Override
public void action() {
// TODO: see if it is possible to cache this evaluation
// if (myIsEvaluated) return;
DebugProcess debugProcess = myEvaluationContext.getDebugProcess();
if (!(debugProcess instanceof DebugProcessImpl)) {
return;
}
final DebuggerContextImpl debuggerContext = ((DebugProcessImpl)debugProcess).getDebuggerContext();
PsiAnnotation annotation = ApplicationManager.getApplication().runReadAction(new Computable<PsiAnnotation>() {
@Override
public PsiAnnotation compute() {
PsiElement context = PositionUtil.getContextElement(debuggerContext);
if (context == null) {
return null;
}
if (myDescriptor instanceof LocalVariableDescriptor) {
return AndroidResolveHelper.getAnnotationForLocal(context, myDescriptor.getName());
}
else if (myDescriptor instanceof FieldDescriptor) {
String className = ((FieldDescriptor)myDescriptor).getField().declaringType().name();
return AndroidResolveHelper.getAnnotationForField(context, className, myDescriptor.getName());
}
else {
return null;
}
}
});
if (annotation != null) {
ResourceIdResolver resolver = ServiceManager.getService(myEvaluationContext.getProject(), ResourceIdResolver.class);
DynamicResourceIdResolver resolver1 = new DynamicResourceIdResolver(myEvaluationContext, resolver);
myResult = AnnotationsRenderer.render(resolver1, annotation, ((IntegerValue)myValue).value());
}
evaluationResult("");
}
示例3: computeSourcePosition
import com.intellij.debugger.ui.tree.LocalVariableDescriptor; //导入依赖的package包/类
@Nullable
@Override
protected SourcePosition computeSourcePosition(@NotNull NodeDescriptor descriptor, @NotNull Project project, @NotNull DebuggerContextImpl context, boolean nearest)
{
StackFrameProxyImpl frame = context.getFrameProxy();
if(frame == null)
{
return null;
}
if(descriptor instanceof FieldDescriptor)
{
return getSourcePositionForField((FieldDescriptor) descriptor, project, context, nearest);
}
else if(descriptor instanceof LocalVariableDescriptor)
{
return getSourcePositionForLocalVariable(descriptor.getName(), project, context, nearest);
}
else if(descriptor instanceof ArgumentValueDescriptorImpl)
{
Collection<String> names = ((ArgumentValueDescriptorImpl) descriptor).getVariable().getMatchedNames();
if(!names.isEmpty())
{
return getSourcePositionForLocalVariable(names.iterator().next(), project, context, nearest);
}
}
else if(descriptor instanceof MethodReturnValueDescriptorImpl)
{
DebugProcessImpl debugProcess = context.getDebugProcess();
if(debugProcess != null)
{
return debugProcess.getPositionManager().getSourcePosition(((MethodReturnValueDescriptorImpl) descriptor).getMethod().location());
}
}
return null;
}