Search in sources :

Example 31 with XSourcePosition

use of com.intellij.xdebugger.XSourcePosition in project intellij-community by JetBrains.

the class StackFrameList method navigateToFrame.

private void navigateToFrame(@NotNull XStackFrame frame, boolean focusOnEditor) {
    XSourcePosition position = frame.getSourcePosition();
    if (position == null)
        return;
    VirtualFile file = position.getFile();
    int line = position.getLine();
    Project project = myDebugProcess.getProject();
    OpenFileHyperlinkInfo info = new OpenFileHyperlinkInfo(project, file, line);
    OpenFileDescriptor descriptor = info.getDescriptor();
    if (descriptor != null) {
        FileEditorManagerImpl manager = (FileEditorManagerImpl) FileEditorManager.getInstance(project);
        VirtualFile lastFile = myEditorState.myLastOpenedFile;
        if (myEditorState.myIsNeedToCloseLastOpenedFile && lastFile != null && manager.isFileOpen(lastFile) && !lastFile.equals(descriptor.getFile())) {
            manager.closeFile(myEditorState.myLastOpenedFile, false, true);
        }
        descriptor.setScrollType(ScrollType.CENTER);
        descriptor.setUseCurrentWindow(true);
        if (lastFile == null || !lastFile.equals(descriptor.getFile())) {
            myEditorState.myIsNeedToCloseLastOpenedFile = !manager.isFileOpen(descriptor.getFile());
        }
        descriptor.navigateInEditor(project, focusOnEditor);
        FileEditor[] editors = manager.getEditors(descriptor.getFile());
        if (editors.length != 0) {
            myEditorState.myLastOpenedFile = descriptor.getFile();
        }
    }
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) Project(com.intellij.openapi.project.Project) OpenFileHyperlinkInfo(com.intellij.execution.filters.OpenFileHyperlinkInfo) FileEditor(com.intellij.openapi.fileEditor.FileEditor) FileEditorManagerImpl(com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl) OpenFileDescriptor(com.intellij.openapi.fileEditor.OpenFileDescriptor) XSourcePosition(com.intellij.xdebugger.XSourcePosition)

Example 32 with XSourcePosition

use of com.intellij.xdebugger.XSourcePosition in project intellij-community by JetBrains.

the class AbstractLineBreakpointHandler method registerBreakpoint.

public void registerBreakpoint(@NotNull final XLineBreakpoint<XBreakpointProperties> breakpoint) {
    final XSourcePosition position = breakpoint.getSourcePosition();
    if (position != null) {
        myDebugProcess.addBreakpoint(myDebugProcess.getPositionConverter().convertToPython(position), breakpoint);
        myBreakPointPositions.put(breakpoint, position);
    }
}
Also used : XSourcePosition(com.intellij.xdebugger.XSourcePosition)

Example 33 with XSourcePosition

use of com.intellij.xdebugger.XSourcePosition in project intellij-community by JetBrains.

the class AbstractLineBreakpointHandler method unregisterBreakpoint.

public void unregisterBreakpoint(@NotNull final XLineBreakpoint<XBreakpointProperties> breakpoint, final boolean temporary) {
    final XSourcePosition position = myBreakPointPositions.get(breakpoint);
    if (position != null) {
        myDebugProcess.removeBreakpoint(myDebugProcess.getPositionConverter().convertToPython(position));
        myBreakPointPositions.remove(breakpoint);
    }
}
Also used : XSourcePosition(com.intellij.xdebugger.XSourcePosition)

Example 34 with XSourcePosition

use of com.intellij.xdebugger.XSourcePosition in project flutter-intellij by flutter.

the class ObservatoryFile method createPosition.

/**
 * 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;
    final Position pos = positionMap.get(tokenPos);
    if (pos == null) {
        return XDebuggerUtil.getInstance().createPositionByOffset(fileToUse, 0);
    }
    return XDebuggerUtil.getInstance().createPosition(fileToUse, pos.line, pos.column);
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) LightVirtualFile(com.intellij.testFramework.LightVirtualFile) XSourcePosition(com.intellij.xdebugger.XSourcePosition) Nullable(org.jetbrains.annotations.Nullable)

Example 35 with XSourcePosition

use of com.intellij.xdebugger.XSourcePosition in project flutter-intellij by flutter.

the class JumpToSourceActionBase method perform.

@Override
protected void perform(final DefaultMutableTreeNode node, final DiagnosticsNode diagnosticsNode, final AnActionEvent e) {
    final Project project = e.getProject();
    if (project == null) {
        return;
    }
    FlutterInitializer.getAnalytics().sendEvent("inspector", id);
    final XNavigatable navigatable = sourcePosition -> {
        if (sourcePosition != null) {
            // noinspection CodeBlock2Expr
            AppUIUtil.invokeOnEdt(() -> {
                sourcePosition.createNavigatable(project).navigate(true);
            }, project.getDisposed());
        }
    };
    final XSourcePosition sourcePosition = getSourcePosition(diagnosticsNode);
    if (sourcePosition != null) {
        // Source position is available immediately.
        navigatable.setSourcePosition(sourcePosition);
        return;
    }
    // We have to get a DartVmServiceValue to compute the source position.
    final InspectorService inspectorService = diagnosticsNode.getInspectorService();
    final CompletableFuture<DartVmServiceValue> valueFuture = inspectorService.toDartVmServiceValueForSourceLocation(diagnosticsNode.getValueRef());
    AsyncUtils.whenCompleteUiThread(valueFuture, (DartVmServiceValue value, Throwable throwable) -> {
        if (throwable != null) {
            return;
        }
        startComputingSourcePosition(value, navigatable);
    });
}
Also used : XNavigatable(com.intellij.xdebugger.frame.XNavigatable) AppUIUtil(com.intellij.ui.AppUIUtil) XValue(com.intellij.xdebugger.frame.XValue) XSourcePosition(com.intellij.xdebugger.XSourcePosition) AsyncUtils(io.flutter.utils.AsyncUtils) FlutterInitializer(io.flutter.FlutterInitializer) AnActionEvent(com.intellij.openapi.actionSystem.AnActionEvent) DartVmServiceValue(com.jetbrains.lang.dart.ide.runner.server.vmService.frame.DartVmServiceValue) Project(com.intellij.openapi.project.Project) CompletableFuture(java.util.concurrent.CompletableFuture) NotNull(org.jetbrains.annotations.NotNull) DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) Project(com.intellij.openapi.project.Project) DartVmServiceValue(com.jetbrains.lang.dart.ide.runner.server.vmService.frame.DartVmServiceValue) XNavigatable(com.intellij.xdebugger.frame.XNavigatable) XSourcePosition(com.intellij.xdebugger.XSourcePosition)

Aggregations

XSourcePosition (com.intellij.xdebugger.XSourcePosition)40 VirtualFile (com.intellij.openapi.vfs.VirtualFile)20 Project (com.intellij.openapi.project.Project)9 Nullable (org.jetbrains.annotations.Nullable)8 XLineBreakpoint (com.intellij.xdebugger.breakpoints.XLineBreakpoint)6 PsiFile (com.intellij.psi.PsiFile)5 NotNull (org.jetbrains.annotations.NotNull)5 Document (com.intellij.openapi.editor.Document)4 XDebugSession (com.intellij.xdebugger.XDebugSession)4 PsiElement (com.intellij.psi.PsiElement)3 XStackFrame (com.intellij.xdebugger.frame.XStackFrame)3 Editor (com.intellij.openapi.editor.Editor)2 FileEditor (com.intellij.openapi.fileEditor.FileEditor)2 FileEditorManagerImpl (com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl)2 Ref (com.intellij.openapi.util.Ref)2 TextRange (com.intellij.openapi.util.TextRange)2 XBreakpoint (com.intellij.xdebugger.breakpoints.XBreakpoint)2 XDebuggerEvaluator (com.intellij.xdebugger.evaluation.XDebuggerEvaluator)2 XValue (com.intellij.xdebugger.frame.XValue)2 VMPausedException (org.intellij.plugins.xsltDebugger.VMPausedException)2