use of org.eclipse.lsp4j.debug.FunctionBreakpoint in project magik-tools by StevenLooman.
the class MagikDebugAdapter method setFunctionBreakpoints.
@Override
public CompletableFuture<SetFunctionBreakpointsResponse> setFunctionBreakpoints(final SetFunctionBreakpointsArguments args) {
LOGGER.trace("setFunctionBreakpoints");
return CompletableFuture.supplyAsync(() -> {
try {
// Clear existing breakpoints.
this.breakpointManager.clearFunctionBreakpoints();
// Set new breakpoints.
final FunctionBreakpoint[] functionBreakpoints = args.getBreakpoints();
final List<MagikBreakpoint> magikBreakpoints = this.breakpointManager.addFunctionBreakpoints(functionBreakpoints);
// Return response.
final SetFunctionBreakpointsResponse response = new SetFunctionBreakpointsResponse();
final Breakpoint[] breakpoints = Lsp4jConversion.toLsp4j(null, magikBreakpoints);
response.setBreakpoints(breakpoints);
return response;
} catch (InterruptedException exception) {
java.lang.Thread.currentThread().interrupt();
throw new CompletionException(exception.getMessage(), exception);
} catch (IOException | ExecutionException exception) {
throw new CompletionException(exception.getMessage(), exception);
}
});
}
use of org.eclipse.lsp4j.debug.FunctionBreakpoint in project magik-tools by StevenLooman.
the class BreakpointManager method addFunctionBreakpoints.
/**
* Add multiple function breakpoints.
*
* @param functionBreakpoints Breakpoints to be set.
* @return List of {{MagikBreakpoint}}s.
* @throws ExecutionException -
* @throws InterruptedException -
* @throws IOException -
*/
List<MagikBreakpoint> addFunctionBreakpoints(final FunctionBreakpoint[] functionBreakpoints) throws IOException, InterruptedException, ExecutionException {
final List<MagikBreakpoint> breakpoints = new ArrayList<>();
for (final FunctionBreakpoint functionBreakpoint : functionBreakpoints) {
final MagikBreakpoint magikBreakpoint = this.addFunctionBreakpoint(functionBreakpoint);
breakpoints.add(magikBreakpoint);
}
return breakpoints;
}
use of org.eclipse.lsp4j.debug.FunctionBreakpoint in project magik-tools by StevenLooman.
the class BreakpointManager method addFunctionBreakpoint.
/**
* Add a function breakpoint.
*
* @param functionBreakpoint {{FunctionBreakpoint}} to add.
* @return Created {{MagikBreakpoint}}.
* @throws IOException -
* @throws ExecutionException -
* @throws InterruptedException -
*/
MagikBreakpoint addFunctionBreakpoint(final FunctionBreakpoint functionBreakpoint) throws IOException, InterruptedException, ExecutionException {
final Source source = null;
final String methodName = functionBreakpoint.getName();
final int methodLine = 0;
final String condition = functionBreakpoint.getCondition();
return this.createBreakpoint(source, methodName, methodLine, condition);
}
Aggregations