HostDebuggerExtensionProxy.ts 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import HostInteropType from "../interop";
  2. export interface Breakpoint {
  3. fileName: string;
  4. lineNumber: number;
  5. }
  6. /**
  7. * Get a list of all breakpoints that have been registered
  8. * @return {Breakpoint[]}
  9. */
  10. export async function getBreakpoints(): Promise<Breakpoint[]> {
  11. return atomicHostRequest<Breakpoint[]>("Debugger.GetBreakpoints");
  12. }
  13. /**
  14. * Add a single breakpoint
  15. * @param {string} fileName
  16. * @param {number} lineNumber
  17. */
  18. export async function addBreakpoint(fileName: string, lineNumber: number) {
  19. return atomicHostEvent("Debugger.AddBreakpoint", {
  20. fileName,
  21. lineNumber
  22. });
  23. }
  24. /**
  25. * Remove a single breakpoint
  26. * @param {string} fileName
  27. * @param {number} lineNumber
  28. */
  29. export async function removeBreakpoint(fileName: string, lineNumber: number) {
  30. return atomicHostEvent("Debugger.RemoveBreakpoint", {
  31. fileName,
  32. lineNumber
  33. });
  34. }
  35. /**
  36. * Toggle a single breakpoint
  37. * @param {string} fileName
  38. * @param {number} lineNumber
  39. */
  40. export async function toggleBreakpoint(fileName: string, lineNumber: number) {
  41. return atomicHostEvent("Debugger.ToggleBreakpoint", {
  42. fileName,
  43. lineNumber
  44. });
  45. }
  46. /**
  47. * Remove all breakpoints
  48. */
  49. export async function removeAllBreakpoints() {
  50. return atomicHostEvent("Debugger.RemoveAllBreakpoints");
  51. }
  52. export const debuggerHostKeys = {
  53. toggleBreakpoint: "HOST_DEBUGGER_ToggleBreakpoint",
  54. addBreakpoint: "HOST_DEBUGGER_AddBreakpoint",
  55. removeBreakpoint: "HOST_DEBUGGER_RemoveBreakpoint",
  56. pause: "HOST_DEBUGGER_Pause",
  57. step: "HOST_DEBUGGER_Step",
  58. resume: "HOST_DEBUGGER_Resume",
  59. stop: "HOST_DEBUGGER_Stop"
  60. };
  61. /**
  62. * Register host-callable commands with the web view. This registers the
  63. * this named web view with the host so that it can be notified of any
  64. * host initiated debugger messages
  65. * @param {string} name The name associated with the listener. Ususally the filename.
  66. */
  67. export function registerDebuggerListener(name: string) {
  68. atomicHostEvent("Debugger.RegisterDebuggerListener", {
  69. name,
  70. callbacks: debuggerHostKeys
  71. });
  72. }
  73. /**
  74. * Notify the host of the current line number and source file. Used during pause, step, etc.
  75. * @param {string} fileName
  76. * @param {number} lineNumber
  77. */
  78. export async function notifyHostCurrentSourcePosition(fileName: string, lineNumber: number) {
  79. return atomicHostEvent("Debugger.CurrentSourcePosition", {
  80. fileName,
  81. lineNumber
  82. });
  83. }