Skip to content

Commit 27b81ed

Browse files
committed
feat: DAP API to customize debugger editors provider
Signed-off-by: azerr <azerr@redhat.com>
1 parent c164d0e commit 27b81ed

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

src/main/java/com/redhat/devtools/lsp4ij/dap/DAPDebugProcess.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ public DAPDebugProcess(@NotNull DAPCommandLineState dapState,
101101
this.dapState = dapState;
102102
var project = getSession().getProject();
103103
this.executionResult = executionResult;
104-
this.editorsProvider = new DAPDebuggerEditorsProvider(dapState.getFileType(), this);
105104
this.serverDescriptor = dapState.getServerDescriptor();
105+
this.editorsProvider = serverDescriptor.createDebuggerEditorsProvider(dapState.getFileType(), this);
106106
this.breakpointHandler = serverDescriptor.createBreakpointHandler(session, project);
107107
this.threadsPanel = new ThreadsPanel(this);
108108
this.status = Status.NONE;

src/main/java/com/redhat/devtools/lsp4ij/dap/DAPDebuggerEditorsProvider.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,17 @@ protected PsiFile createExpressionCodeFragment(@NotNull Project project,
6767
fileType = file.getFileType();
6868
language = file.getLanguage();
6969
}
70-
return new DAPExpressionCodeFragment(text, fileType, language, debugProcess, project);
70+
return createExpressionCodeFragment(project, text, fileType, language);
71+
}
72+
73+
protected @NotNull PsiFile createExpressionCodeFragment(@NotNull Project project,
74+
@NotNull String text,
75+
@NotNull FileType fileType,
76+
@NotNull Language language) {
77+
return new DAPExpressionCodeFragment(text, fileType, language, getDebugProcess(), project);
78+
}
79+
80+
protected @Nullable DAPDebugProcess getDebugProcess() {
81+
return debugProcess;
7182
}
7283
}

src/main/java/com/redhat/devtools/lsp4ij/dap/descriptors/DebugAdapterDescriptor.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@
2424
import com.intellij.openapi.vfs.VirtualFile;
2525
import com.intellij.util.net.NetUtils;
2626
import com.intellij.xdebugger.XDebugSession;
27+
import com.intellij.xdebugger.evaluation.XDebuggerEditorsProvider;
2728
import com.redhat.devtools.lsp4ij.dap.DAPDebugProcess;
29+
import com.redhat.devtools.lsp4ij.dap.DAPDebuggerEditorsProvider;
2830
import com.redhat.devtools.lsp4ij.dap.DebugMode;
2931
import com.redhat.devtools.lsp4ij.dap.breakpoints.DAPBreakpointHandler;
3032
import com.redhat.devtools.lsp4ij.dap.breakpoints.DAPBreakpointHandlerBase;
@@ -278,4 +280,9 @@ public boolean isDebuggableFile(@NotNull VirtualFile file, @NotNull Project proj
278280
public @NotNull DAPBreakpointHandlerBase<?> createBreakpointHandler(@NotNull XDebugSession session, Project project) {
279281
return new DAPBreakpointHandler(session, this, project);
280282
}
283+
284+
public @NotNull XDebuggerEditorsProvider createDebuggerEditorsProvider(@Nullable FileType fileType,
285+
@NotNull DAPDebugProcess debugProcess) {
286+
return new DAPDebuggerEditorsProvider(fileType, debugProcess);
287+
}
281288
}

0 commit comments

Comments
 (0)