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();
}
}
}
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);
}
}
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);
}
}
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);
}
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);
});
}
Aggregations