com.intellij.psi.search.GlobalSearchScopes#com.intellij.xdebugger.XDebuggerUtil源码实例Demo

下面列出了com.intellij.psi.search.GlobalSearchScopes#com.intellij.xdebugger.XDebuggerUtil 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: flutter-intellij   文件: ObservatoryFile.java
/**
 * Given a token id, returns the source position to display to the user.
 * <p>
 * If no local file was provided, uses the snapshot if available. (However, in that
 * case, breakpoints won't work.)
 */
@Nullable
XSourcePosition createPosition(@Nullable VirtualFile local, int tokenPos) {
  final VirtualFile fileToUse = local == null ? snapshot : local;
  if (fileToUse == null) return null;

  if (positionMap == null) {
    return null;
  }

  final Position pos = positionMap.get(tokenPos);
  if (pos == null) {
    return XDebuggerUtil.getInstance().createPositionByOffset(fileToUse, 0);
  }
  return XDebuggerUtil.getInstance().createPosition(fileToUse, pos.line, pos.column);
}
 
源代码2 项目: flutter-intellij   文件: ObservatoryFile.java
/**
 * Given a token id, returns the source position to display to the user.
 * <p>
 * If no local file was provided, uses the snapshot if available. (However, in that
 * case, breakpoints won't work.)
 */
@Nullable
XSourcePosition createPosition(@Nullable VirtualFile local, int tokenPos) {
  final VirtualFile fileToUse = local == null ? snapshot : local;
  if (fileToUse == null) return null;

  if (positionMap == null) {
    return null;
  }

  final Position pos = positionMap.get(tokenPos);
  if (pos == null) {
    return XDebuggerUtil.getInstance().createPositionByOffset(fileToUse, 0);
  }
  return XDebuggerUtil.getInstance().createPosition(fileToUse, pos.line, pos.column);
}
 
源代码3 项目: consulo   文件: XValueHint.java
public XValueHint(@Nonnull Project project, @Nonnull Editor editor, @Nonnull Point point, @Nonnull ValueHintType type,
                  @Nonnull ExpressionInfo expressionInfo, @Nonnull XDebuggerEvaluator evaluator,
                  @Nonnull XDebugSession session) {
  super(project, editor, point, type, expressionInfo.getTextRange());

  myEvaluator = evaluator;
  myDebugSession = session;
  myExpression = XDebuggerEvaluateActionHandler.getExpressionText(expressionInfo, editor.getDocument());
  myValueName = XDebuggerEvaluateActionHandler.getDisplayText(expressionInfo, editor.getDocument());
  myExpressionInfo = expressionInfo;

  VirtualFile file;
  ConsoleView consoleView = ConsoleViewImpl.CONSOLE_VIEW_IN_EDITOR_VIEW.get(editor);
  if (consoleView instanceof LanguageConsoleView) {
    LanguageConsoleView console = ((LanguageConsoleView)consoleView);
    file = console.getHistoryViewer() == editor ? console.getVirtualFile() : null;
  }
  else {
    file = FileDocumentManager.getInstance().getFile(editor.getDocument());
  }

  myExpressionPosition = file != null ? XDebuggerUtil.getInstance().createPositionByOffset(file, expressionInfo.getTextRange().getStartOffset()) : null;
}
 
@Override
public boolean isEnabled(@Nonnull final Project project, final AnActionEvent event) {
  XLineBreakpointType<?>[] breakpointTypes = XDebuggerUtil.getInstance().getLineBreakpointTypes();
  final XBreakpointManager breakpointManager = XDebuggerManager.getInstance(project).getBreakpointManager();
  for (XSourcePosition position : XDebuggerUtilImpl.getAllCaretsPositions(project, event.getDataContext())) {
    for (XLineBreakpointType<?> breakpointType : breakpointTypes) {
      final VirtualFile file = position.getFile();
      final int line = position.getLine();
      if (XLineBreakpointResolverTypeExtension.INSTANCE.resolveBreakpointType(project, file, line) != null ||
          breakpointManager.findBreakpointAtLine(breakpointType, file, line) != null) {
        return true;
      }
    }
  }
  return false;
}
 
源代码5 项目: consulo   文件: XBreakpointPanelProvider.java
@Override
@Nullable
public XBreakpoint<?> findBreakpoint(@Nonnull final Project project, @Nonnull final Document document, final int offset) {
  XBreakpointManager breakpointManager = XDebuggerManager.getInstance(project).getBreakpointManager();
  int line = document.getLineNumber(offset);
  VirtualFile file = FileDocumentManager.getInstance().getFile(document);
  if (file == null) {
    return null;
  }
  for (XLineBreakpointType<?> type : XDebuggerUtil.getInstance().getLineBreakpointTypes()) {
    XLineBreakpoint<? extends XBreakpointProperties> breakpoint = breakpointManager.findBreakpointAtLine(type, file, line);
    if (breakpoint != null) {
      return breakpoint;
    }
  }

  return null;
}
 
@Override
public boolean canPutAt(@NotNull VirtualFile file, int line, @NotNull Project project) {
    FileType fileType = file.getFileType();
    if (FileHelper.isOCaml(fileType) || FileHelper.isReason(fileType)) {
        Document document = FileDocumentManager.getInstance().getDocument(file);
        if (document != null) {
            LineBreakpointAvailabilityProcessor canPutAtChecker = new LineBreakpointAvailabilityProcessor(
                    FileHelper.isOCaml(fileType) ? OclTypes.INSTANCE : RmlTypes.INSTANCE);
            XDebuggerUtil.getInstance().iterateLine(project, document, line, canPutAtChecker);
            return canPutAtChecker.isLineBreakpointAvailable();
        }
    }

    return false;
}
 
@Override
public boolean canPutAt(@NotNull VirtualFile file, int line, @NotNull Project project)
{
    final Document document = FileDocumentManager.getInstance().getDocument(file);
    if (document != null)
    {
        final PsiFile psiFile = PsiDocumentManager.getInstance(project).getPsiFile(document);
        if (psiFile != null)
        {
            final boolean isMuleAndXml = MuleConfigUtils.isMuleFile(psiFile);
            if (isMuleAndXml)
            {
                final XmlTag xmlTagAt = MuleConfigUtils.getXmlTagAt(project, XDebuggerUtil.getInstance().createPosition(file, line));
                if (xmlTagAt != null)
                {
                    return MuleConfigUtils.getMuleElementTypeFromXmlElement(xmlTagAt) == MuleElementType.MESSAGE_PROCESSOR;
                }
                else
                {
                    final PsiElement firstWeaveElement = WeavePsiUtils.getFirstWeaveElement(project, document, line);
                    if (firstWeaveElement != null)
                    {
                        PsiLanguageInjectionHost parent = PsiTreeUtil.getParentOfType(firstWeaveElement, PsiLanguageInjectionHost.class);
                        if (parent != null)
                        {
                            final PsiElement elementInInjected = InjectedLanguageUtil.findElementInInjected(parent, line);
                            final Language language = elementInInjected.getLanguage();
                            return language == WeaveLanguage.getInstance();
                        }
                    }
                }
            }
        }
    }
    return false;
}
 
源代码8 项目: mule-intellij-plugins   文件: WeavePsiUtils.java
@Nullable
public static PsiElement getFirstWeaveElement(Project project, Document document, int line) {
    final Ref<PsiElement> result = Ref.create();
    XDebuggerUtil.getInstance().iterateLine(project, document, line, element -> {
        if (!(element instanceof PsiWhiteSpace)) {
            result.set(element);
            return false;
        }
        return true;
    });
    return result.get();
}
 
DocumentFileLocationMapper(@Nullable Document document, Project project) {
  this.document = document;

  if (document != null) {
    psiFile = PsiDocumentManager.getInstance(project).getPsiFile(document);
    virtualFile = psiFile != null ? psiFile.getVirtualFile() : null;
    debuggerUtil = XDebuggerUtil.getInstance();
  }
  else {
    psiFile = null;
    virtualFile = null;
    debuggerUtil = null;
  }
}
 
DocumentFileLocationMapper(@Nullable Document document, Project project) {
  this.document = document;

  if (document != null) {
    psiFile = PsiDocumentManager.getInstance(project).getPsiFile(document);
    virtualFile = psiFile != null ? psiFile.getVirtualFile() : null;
    debuggerUtil = XDebuggerUtil.getInstance();
  }
  else {
    psiFile = null;
    virtualFile = null;
    debuggerUtil = null;
  }
}
 
源代码11 项目: intellij   文件: BlazePyPositionConverter.java
@Nullable
private static XSourcePosition createXSourcePosition(@Nullable VirtualFile vFile, int line) {
  if (vFile != null) {
    return XDebuggerUtil.getInstance()
        .createPosition(vFile, convertRemoteLineToLocal(vFile, line));
  } else {
    return null;
  }
}
 
源代码12 项目: intellij   文件: SkylarkStackFrame.java
/** Converts between source location formats used by the IDE and the Skylark debug server. */
@Nullable
static XSourcePosition fromLocationProto(Location location) {
  VirtualFile vf =
      VfsUtils.resolveVirtualFile(new File(location.getPath()), /* refreshIfNeeded= */ true);
  if (vf == null) {
    return null;
  }
  return XDebuggerUtil.getInstance().createPosition(vf, location.getLineNumber() - 1);
}
 
源代码13 项目: intellij-haxe   文件: HaxeBreakpointType.java
@Override
public List<XBreakpointGroupingRule<XLineBreakpoint<XBreakpointProperties>, ?>> getGroupingRules() {
  XBreakpointGroupingRule<XLineBreakpoint<XBreakpointProperties>, ?> byFile = XDebuggerUtil.getInstance().getGroupingByFileRule();
  List<XBreakpointGroupingRule<XLineBreakpoint<XBreakpointProperties>, ?>> rules =
    new ArrayList<XBreakpointGroupingRule<XLineBreakpoint<XBreakpointProperties>, ?>>();
  rules.add(byFile);
  return rules;
}
 
源代码14 项目: intellij-xquery   文件: XQueryBreakpointType.java
private boolean hasAnExpression(Project project, Document document, int line) {
    final Ref<Boolean> isPartOfExpression = Ref.create(Boolean.FALSE);
    XDebuggerUtil.getInstance().iterateLine(project, document, line, new Processor<PsiElement>() {
        @Override
        public boolean process(PsiElement psiElement) {
            if (PsiTreeUtil.getParentOfType(psiElement, XQueryExprSingle.class, false) != null) {
                isPartOfExpression.set(Boolean.TRUE);
                return false;
            } else {
                return true;
            }
        }
    });
    return isPartOfExpression.get();
}
 
源代码15 项目: consulo   文件: XValue.java
/**
 * Asynchronously calculates expression which evaluates to the current value
 */
@Nonnull
public AsyncResult<XExpression> calculateEvaluationExpression() {
  String expression = getEvaluationExpression();
  XExpression res =
          expression != null ? XDebuggerUtil.getInstance().createExpression(expression, null, null, EvaluationMode.EXPRESSION) : null;
  return AsyncResult.done(res);
}
 
源代码16 项目: consulo   文件: XBreakpointManagerImpl.java
@Nonnull
@Override
public <B extends XBreakpoint<?>> Collection<? extends B> getBreakpoints(@Nonnull Class<? extends XBreakpointType<B, ?>> typeClass) {
  XBreakpointType<B, ?> type = XDebuggerUtil.getInstance().findBreakpointType(typeClass);
  LOG.assertTrue(type != null, "Unregistered breakpoint type " + typeClass);
  return getBreakpoints(type);
}
 
源代码17 项目: consulo   文件: XLineBreakpointImpl.java
@Override
public XSourcePosition getSourcePosition() {
  if (mySourcePosition != null) {
    return mySourcePosition;
  }
  mySourcePosition = super.getSourcePosition();
  if (mySourcePosition == null) {
    mySourcePosition = XDebuggerUtil.getInstance().createPosition(getFile(), getLine());
  }
  return mySourcePosition;
}
 
源代码18 项目: intellij   文件: SkylarkDebuggerEditorsProvider.java
@Nullable
private static PsiElement getContextElement(
    VirtualFile virtualFile, int offset, Project project) {
  return XDebuggerUtil.getInstance().findContextElement(virtualFile, offset, project, false);
}
 
源代码19 项目: consulo   文件: XDebuggerEditorsProvider.java
@Nonnull
public XExpression createExpression(@Nonnull Project project, @Nonnull Document document, @javax.annotation.Nullable Language language, @Nonnull EvaluationMode mode) {
  return XDebuggerUtil.getInstance().createExpression(document.getText(), language, null, mode);
}
 
源代码20 项目: consulo   文件: XDebuggerEditorsProviderBase.java
@Nullable
protected PsiElement getContextElement(@Nonnull VirtualFile virtualFile, int offset, @Nonnull Project project) {
  return XDebuggerUtil.getInstance().findContextElement(virtualFile, offset, project, false);
}
 
源代码21 项目: consulo   文件: XDebuggerSettings.java
protected static <S extends XDebuggerSettings<?>> S getInstance(Class<S> aClass) {
  return XDebuggerUtil.getInstance().getDebuggerSettings(aClass);
}
 
源代码22 项目: consulo   文件: RemoveBreakpointGutterIconAction.java
public void actionPerformed(final AnActionEvent e) {
  XDebuggerUtil.getInstance().removeBreakpoint(myBreakpoint.getProject(), myBreakpoint);
}
 
源代码23 项目: consulo   文件: XBreakpointUtil.java
/**
 * Toggle line breakpoint with editor support:
 * - unfolds folded block on the line
 * - if folded, checks if line breakpoints could be toggled inside folded text
 */
@Nonnull
public static AsyncResult<XLineBreakpoint> toggleLineBreakpoint(@Nonnull Project project,
                                                                @Nonnull XSourcePosition position,
                                                                @Nullable Editor editor,
                                                                boolean temporary,
                                                                boolean moveCaret) {
  int lineStart = position.getLine();
  VirtualFile file = position.getFile();
  // for folded text check each line and find out type with the biggest priority
  int linesEnd = lineStart;
  if (editor != null) {
    FoldRegion region = FoldingUtil.findFoldRegionStartingAtLine(editor, lineStart);
    if (region != null && !region.isExpanded()) {
      linesEnd = region.getDocument().getLineNumber(region.getEndOffset());
    }
  }

  final XBreakpointManager breakpointManager = XDebuggerManager.getInstance(project).getBreakpointManager();
  XLineBreakpointType<?>[] lineTypes = XDebuggerUtil.getInstance().getLineBreakpointTypes();
  XLineBreakpointType<?> typeWinner = null;
  int lineWinner = -1;
  for (int line = lineStart; line <= linesEnd; line++) {
    for (XLineBreakpointType<?> type : lineTypes) {
      final XLineBreakpoint<? extends XBreakpointProperties> breakpoint = breakpointManager.findBreakpointAtLine(type, file, line);
      if (breakpoint != null && temporary && !breakpoint.isTemporary()) {
        breakpoint.setTemporary(true);
      }
      else if(breakpoint != null) {
        typeWinner = type;
        lineWinner = line;
        break;
      }
    }

    XLineBreakpointType<?> breakpointType = XLineBreakpointResolverTypeExtension.INSTANCE.resolveBreakpointType(project, file, line);
    if(breakpointType != null) {
      typeWinner = breakpointType;
      lineWinner = line;
    }

    // already found max priority type - stop
    if (typeWinner != null) {
      break;
    }
  }

  if (typeWinner != null) {
    XSourcePosition winPosition = (lineStart == lineWinner) ? position : XSourcePositionImpl.create(file, lineWinner);
    if (winPosition != null) {
      AsyncResult<XLineBreakpoint> res =
              XDebuggerUtilImpl.toggleAndReturnLineBreakpoint(project, typeWinner, winPosition, temporary, editor);

      if (editor != null && lineStart != lineWinner) {
        int offset = editor.getDocument().getLineStartOffset(lineWinner);
        ExpandRegionAction.expandRegionAtOffset(project, editor, offset);
        if (moveCaret) {
          editor.getCaretModel().moveToOffset(offset);
        }
      }
      return res;
    }
  }

  return AsyncResult.rejected();
}