roku-debug 0.21.27 → 0.21.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/adapters/customVariables/ifDateTime.js +2 -2
  3. package/dist/adapters/customVariables/ifDateTime.js.map +1 -1
  4. package/dist/bsc/BscProject.d.ts +8 -0
  5. package/dist/bsc/BscProject.js +14 -0
  6. package/dist/bsc/BscProject.js.map +1 -1
  7. package/dist/bsc/BscProjectThreaded.d.ts +9 -4
  8. package/dist/bsc/BscProjectThreaded.js +8 -3
  9. package/dist/bsc/BscProjectThreaded.js.map +1 -1
  10. package/dist/debugSession/BrightScriptDebugSession.d.ts +33 -1
  11. package/dist/debugSession/BrightScriptDebugSession.js +93 -46
  12. package/dist/debugSession/BrightScriptDebugSession.js.map +1 -1
  13. package/dist/managers/ProjectManager.d.ts +23 -1
  14. package/dist/managers/ProjectManager.js +49 -2
  15. package/dist/managers/ProjectManager.js.map +1 -1
  16. package/dist/managers/SourceMapManager.d.ts +1 -1
  17. package/dist/managers/SourceMapManager.js +16 -4
  18. package/dist/managers/SourceMapManager.js.map +1 -1
  19. package/nested-ci/.github/workflows/delete-release.yml +35 -0
  20. package/nested-ci/.github/workflows/initialize-release.yml +63 -0
  21. package/nested-ci/.github/workflows/make-release-artifacts.yml +71 -0
  22. package/nested-ci/.github/workflows/publish-release.yml +50 -0
  23. package/nested-ci/.github/workflows/tmpl-delete-release.yml +16 -0
  24. package/nested-ci/CHANGELOG.md +11 -0
  25. package/nested-ci/LICENSE +21 -0
  26. package/nested-ci/README.md +157 -0
  27. package/nested-ci/package-lock.json +7339 -0
  28. package/nested-ci/package.json +31 -0
  29. package/package.json +5 -4
  30. package/roku-debug-0.21.27.tgz +0 -0
package/CHANGELOG.md CHANGED
@@ -6,6 +6,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
 
8
8
 
9
+ ## [0.21.29](https://github.com/rokucommunity/roku-debug/compare/v0.21.28...v0.21.29) - 2025-04-03
10
+ ### Changed
11
+ - (chore) migrate to shared CI ([#242](https://github.com/rokucommunity/roku-debug/pull/242))
12
+ - upgrade to [@rokucommunity/logger@0.3.10](https://github.com/rokucommunity/logger/blob/master/CHANGELOG.md#0310---2025-03-26). Notable changes since 0.3.9:
13
+ - Fixing issues before release 0.3.10 ([logger#d5babf1](https://github.com/rokucommunity/logger/commit/d5babf1))
14
+ - Added the ability to turn off timestamps in the output and fixed a potental crash if the format string was empty ([logger#11](https://github.com/rokucommunity/logger/pull/11))
15
+ - upgrade to [brighterscript@0.69.4](https://github.com/rokucommunity/brighterscript/blob/master/CHANGELOG.md#0694---2025-03-31). Notable changes since 0.69.3:
16
+ - Migration to the new shared CI ([brighterscript#1440](https://github.com/rokucommunity/brighterscript/pull/1440))
17
+ - Support plugin factory detecting brighterscript version ([brighterscript#1438](https://github.com/rokucommunity/brighterscript/pull/1438))
18
+ ### Fixed
19
+ - launch crash race condition ([#241](https://github.com/rokucommunity/roku-debug/pull/241))
20
+
21
+
22
+ ## [0.21.28](https://github.com/rokucommunity/roku-debug/compare/v0.21.27...v0.21.28) - 2025-03-20
23
+ ### Changed
24
+ - Limit the range of scopes ([#240](https://github.com/rokucommunity/roku-debug/pull/240))
25
+ - Fixed some duplicate variable names on `roDateTime` ([#239](https://github.com/rokucommunity/roku-debug/pull/239))
26
+ - upgrade to [brighterscript@0.69.3](https://github.com/rokucommunity/brighterscript/blob/master/CHANGELOG.md#0693---2025-03-20). Notable changes since 0.69.2:
27
+ - Fixed getClosestExpression bug to return undefined when position not found ([brighterscript#1433](https://github.com/rokucommunity/brighterscript/pull/1433))
28
+ - Adds Alias statement syntax from v1 to v0 ([brighterscript#1430](https://github.com/rokucommunity/brighterscript/pull/1430))
29
+
30
+
31
+
9
32
  ## [0.21.27](https://github.com/rokucommunity/roku-debug/compare/v0.21.26...v0.21.27) - 2025-03-17
10
33
  ### Changed
11
34
  - Fixed `TelnetAdapter` reporting that it was a protocol adapter ([#237](https://github.com/rokucommunity/roku-debug/pull/237))
@@ -14,7 +14,7 @@ function pushIfDateTimeVariables(adapter, expression, container) {
14
14
  children: []
15
15
  });
16
16
  (0, utils_1.pushCustomVariableToContainer)(adapter, container, {
17
- name: '$seconds',
17
+ name: '$asSeconds',
18
18
  type: VariablesResponse_1.VariableType.Integer,
19
19
  presentationHint: { kind: 'virtual', lazy: true },
20
20
  evaluateName: `${expression}.AsSeconds()`,
@@ -22,7 +22,7 @@ function pushIfDateTimeVariables(adapter, expression, container) {
22
22
  children: []
23
23
  });
24
24
  (0, utils_1.pushCustomVariableToContainer)(adapter, container, {
25
- name: '$secondsLong',
25
+ name: '$asSecondsLong',
26
26
  type: VariablesResponse_1.VariableType.LongInteger,
27
27
  presentationHint: { kind: 'virtual', lazy: true },
28
28
  evaluateName: `${expression}.AsSecondsLong()`,
@@ -1 +1 @@
1
- {"version":3,"file":"ifDateTime.js","sourceRoot":"","sources":["../../../src/adapters/customVariables/ifDateTime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ifDateTime.js","sourceRoot":"","sources":["../../../src/adapters/customVariables/ifDateTime.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Position, Range } from 'brighterscript';
1
2
  import { ProgramBuilder } from 'brighterscript';
2
3
  import type { MaybePromise } from '../interfaces';
3
4
  import type { DebugProtocol } from '@vscode/debugprotocol';
@@ -19,6 +20,13 @@ export declare class BscProject {
19
20
  getScopeFunctionsForFile(options: {
20
21
  relativePath: string;
21
22
  }): MaybePromise<Array<ScopeFunction>>;
23
+ /**
24
+ * Get the range of the scope that contains the specified position
25
+ */
26
+ getScopeRange(options: {
27
+ relativePath: string;
28
+ position: Position;
29
+ }): MaybePromise<Range>;
22
30
  dispose(): void;
23
31
  }
24
32
  export interface ScopeFunction {
@@ -42,6 +42,20 @@ class BscProject {
42
42
  };
43
43
  });
44
44
  }
45
+ /**
46
+ * Get the range of the scope that contains the specified position
47
+ */
48
+ getScopeRange(options) {
49
+ try {
50
+ const file = this.programBuilder.program.getFile(options.relativePath);
51
+ const expression = file.getClosestExpression(options.position);
52
+ const parentFunction = expression.findAncestor(brighterscript_1.isFunctionExpression);
53
+ return parentFunction.range;
54
+ }
55
+ catch (error) {
56
+ return undefined;
57
+ }
58
+ }
45
59
  dispose() {
46
60
  return this.programBuilder.dispose();
47
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BscProject.js","sourceRoot":"","sources":["../../src/bsc/BscProject.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAIhD;;GAEG;AACH,MAAa,UAAU;IAGnB;;;OAGG;IACI,KAAK,CAAC,QAAQ,CAAC,OAA6C;QAC/D,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,EAAE,CAAC;QAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACI,wBAAwB,CAAC,OAAiC;QAC7D,yCAAyC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEzC,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,eAAe,EAAE,EAAE;gBAC3C,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACrC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;iBAChF;qBAAM;oBACH,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAC1C;aACJ;SACJ;QAED,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;YACrC,OAAO;gBACH,IAAI,EAAE,IAAI;gBACV,kBAAkB,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM;aACpE,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;CACJ;AA9CD,gCA8CC"}
1
+ {"version":3,"file":"BscProject.js","sourceRoot":"","sources":["../../src/bsc/BscProject.ts"],"names":[],"mappings":";;;AACA,mDAAsE;AAItE;;GAEG;AACH,MAAa,UAAU;IAGnB;;;OAGG;IACI,KAAK,CAAC,QAAQ,CAAC,OAA6C;QAC/D,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,EAAE,CAAC;QAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACI,wBAAwB,CAAC,OAAiC;QAC7D,yCAAyC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEzC,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,eAAe,EAAE,EAAE;gBAC3C,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACrC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;iBAChF;qBAAM;oBACH,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAC1C;aACJ;SACJ;QAED,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;YACrC,OAAO;gBACH,IAAI,EAAE,IAAI;gBACV,kBAAkB,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM;aACpE,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,OAAqD;QACtE,IAAI;YACA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAU,OAAO,CAAC,YAAY,CAAC,CAAC;YAChF,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,qCAAoB,CAAC,CAAC;YAErE,OAAO,cAAc,CAAC,KAAK,CAAC;SAC/B;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;CACJ;AA7DD,gCA6DC"}
@@ -1,4 +1,4 @@
1
- import { type ProgramBuilder } from 'brighterscript';
1
+ import type { Position, ProgramBuilder, Range } from 'brighterscript';
2
2
  import type { ExtractMethods, DisposableLike } from '../interfaces';
3
3
  import type { BscProject, ScopeFunction } from './BscProject';
4
4
  export declare class BscProjectThreaded implements ExtractMethods<BscProject> {
@@ -18,13 +18,18 @@ export declare class BscProjectThreaded implements ExtractMethods<BscProject> {
18
18
  private ready;
19
19
  activate(options: Parameters<ProgramBuilder['run']>[0]): Promise<void>;
20
20
  /**
21
- * Get all of the functions avaiable for all scopes for this file.
22
- * @param relativePath path to the file relative to rootDir
23
- * @returns
21
+ * Get all of the functions available for all scopes for this file.
24
22
  */
25
23
  getScopeFunctionsForFile(options: {
26
24
  relativePath: string;
27
25
  }): Promise<Array<ScopeFunction>>;
26
+ /**
27
+ * Get the range of the scope that contains the specified position
28
+ */
29
+ getScopeRange(options: {
30
+ relativePath: string;
31
+ position: Position;
32
+ }): Promise<Range>;
28
33
  /**
29
34
  * Send a request with the standard structure
30
35
  * @param name the name of the request
@@ -69,15 +69,20 @@ class BscProjectThreaded {
69
69
  this.activateDeferred.reject(e);
70
70
  }
71
71
  timeEnd();
72
+ return this.activateDeferred.promise;
72
73
  }
73
74
  /**
74
- * Get all of the functions avaiable for all scopes for this file.
75
- * @param relativePath path to the file relative to rootDir
76
- * @returns
75
+ * Get all of the functions available for all scopes for this file.
77
76
  */
78
77
  async getScopeFunctionsForFile(options) {
79
78
  return this.sendStandardRequest('getScopeFunctionsForFile', options);
80
79
  }
80
+ /**
81
+ * Get the range of the scope that contains the specified position
82
+ */
83
+ getScopeRange(options) {
84
+ return this.sendStandardRequest('getScopeRange', options);
85
+ }
81
86
  /**
82
87
  * Send a request with the standard structure
83
88
  * @param name the name of the request
@@ -1 +1 @@
1
- {"version":3,"file":"BscProjectThreaded.js","sourceRoot":"","sources":["../../src/bsc/BscProjectThreaded.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BscProjectThreaded.js","sourceRoot":"","sources":["../../src/bsc/BscProjectThreaded.ts"],"names":[],"mappings":"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"}
@@ -135,7 +135,7 @@ export declare class BrightScriptDebugSession extends BaseDebugSession {
135
135
  protected exceptionInfoRequest(response: DebugProtocol.ExceptionInfoResponse, args: DebugProtocol.ExceptionInfoArguments): void;
136
136
  protected threadsRequest(response: DebugProtocol.ThreadsResponse): Promise<void>;
137
137
  protected stackTraceRequest(response: DebugProtocol.StackTraceResponse, args: DebugProtocol.StackTraceArguments): Promise<void>;
138
- protected scopesRequest(response: DebugProtocol.ScopesResponse, args: DebugProtocol.ScopesArguments): void;
138
+ protected scopesRequest(response: DebugProtocol.ScopesResponse, args: DebugProtocol.ScopesArguments): Promise<void>;
139
139
  protected continueRequest(response: DebugProtocol.ContinueResponse, args: DebugProtocol.ContinueArguments): Promise<void>;
140
140
  protected pauseRequest(response: DebugProtocol.PauseResponse, args: DebugProtocol.PauseArguments): Promise<void>;
141
141
  protected reverseContinueRequest(response: DebugProtocol.ReverseContinueResponse, args: DebugProtocol.ReverseContinueArguments): void;
@@ -208,6 +208,38 @@ export declare class BrightScriptDebugSession extends BaseDebugSession {
208
208
  * If `stopOnEntry` is enabled, register the entry breakpoint.
209
209
  */
210
210
  handleEntryBreakpoint(): Promise<void>;
211
+ /**
212
+ * Converts a debugger line number to a client line number.
213
+ *
214
+ * @param debuggerLine - The line number from the debugger as zero based.
215
+ * @param defaultDebuggerLine - An optional default line number, as zero based, to use if `debuggerLine` is not provided.
216
+ * @returns The corresponding client line number.
217
+ */
218
+ private toClientLine;
219
+ /**
220
+ * Converts a debugger column number to a client column number.
221
+ *
222
+ * @param debuggerLine - The column number from the debugger as zero based.
223
+ * @param defaultDebuggerLine - An optional default column number, as zero based, to use if `debuggerLine` is not provided.
224
+ * @returns The corresponding client column number.
225
+ */
226
+ private toClientColumn;
227
+ /**
228
+ * Converts a client line number to a debugger line number.
229
+ *
230
+ * @param clientLine - The line number from the client.
231
+ * @param defaultDebuggerLine - An optional default line number, as zero based, to use if `clientLine` is not provided.
232
+ * @returns The corresponding debugger line number as zero based.
233
+ */
234
+ private toDebuggerLine;
235
+ /**
236
+ * Converts a client column number to a debugger column number.
237
+ *
238
+ * @param clientLine - The column number from the client.
239
+ * @param defaultDebuggerLine - An optional default column number, as zero based, to use if `clientLine` is not provided.
240
+ * @returns The corresponding debugger column number as zero based.
241
+ */
242
+ private toDebuggerColumn;
211
243
  private shutdownPromise;
212
244
  /**
213
245
  * Called when the debugger is terminated. Feel free to call this as frequently as you want; we'll only run the shutdown process the first time, and return
@@ -68,8 +68,8 @@ class BrightScriptDebugSession extends debugadapter_1.DebugSession {
68
68
  this.entryBreakpointWasHandled = false;
69
69
  this.shutdownPromise = undefined;
70
70
  // this debugger uses one-based lines and columns
71
- this.setDebuggerLinesStartAt1(true);
72
- this.setDebuggerColumnsStartAt1(true);
71
+ this.setDebuggerLinesStartAt1(false);
72
+ this.setDebuggerColumnsStartAt1(false);
73
73
  //give util a reference to this session to assist in logging across the entire module
74
74
  util_1.util._debugSession = this;
75
75
  this.fileManager = new FileManager_1.FileManager();
@@ -994,7 +994,7 @@ class BrightScriptDebugSession extends debugadapter_1.DebugSession {
994
994
  this.logger.error('Error getting stacktrace', { error, args });
995
995
  }
996
996
  }
997
- scopesRequest(response, args) {
997
+ async scopesRequest(response, args) {
998
998
  const logger = this.logger.createLogger(`scopesRequest ${this.idCounter}`);
999
999
  logger.info('begin', { args });
1000
1000
  try {
@@ -1017,13 +1017,22 @@ class BrightScriptDebugSession extends debugadapter_1.DebugSession {
1017
1017
  };
1018
1018
  this.variables[localsRefId] = v;
1019
1019
  }
1020
- scopes.push({
1020
+ const frame = this.rokuAdapter.getStackFrameById(args.frameId);
1021
+ const scopeRange = await this.projectManager.getScopeRange(frame.filePath, { line: frame.lineNumber - 1, character: 0 });
1022
+ let localScope = {
1021
1023
  name: 'Local',
1022
1024
  variablesReference: v.variablesReference,
1023
1025
  // Flag the locals scope as expensive if the client asked that it be loaded lazily
1024
1026
  expensive: this.launchConfiguration.deferScopeLoading,
1025
1027
  presentationHint: 'locals'
1026
- });
1028
+ };
1029
+ if (scopeRange) {
1030
+ localScope.line = this.toClientLine(scopeRange.start.line - 1);
1031
+ localScope.column = this.toClientColumn(scopeRange.start.column);
1032
+ localScope.endLine = this.toClientLine(scopeRange.end.line - 1);
1033
+ localScope.endColumn = this.toClientColumn(scopeRange.end.column);
1034
+ }
1035
+ scopes.push(localScope);
1027
1036
  // create the registry scope
1028
1037
  let registryRefId = this.getEvaluateRefId('$$registry', Infinity);
1029
1038
  scopes.push({
@@ -1679,19 +1688,10 @@ class BrightScriptDebugSession extends debugadapter_1.DebugSession {
1679
1688
  * Gets the closest completion details the incoming completion request.
1680
1689
  */
1681
1690
  getClosestCompletionDetails(args) {
1682
- var _a;
1683
1691
  const incomingText = args.text;
1684
1692
  const lines = incomingText.split('\n');
1685
- let lineNumber = (_a = args.line) !== null && _a !== void 0 ? _a : (this.initRequestArgs.linesStartAt1 ? 1 : 0);
1686
- let column = args.column;
1687
- // Make sure to correct the line and column to 0-based
1688
- // if they are being sent as 1-based from the client
1689
- if (this.initRequestArgs.linesStartAt1) {
1690
- lineNumber--;
1691
- }
1692
- if (this.initRequestArgs.columnsStartAt1) {
1693
- column--;
1694
- }
1693
+ let lineNumber = this.toDebuggerLine(args.line, 0);
1694
+ let column = this.toDebuggerColumn(args.column);
1695
1695
  const targetLine = lines[lineNumber];
1696
1696
  let variablePathString = '';
1697
1697
  let i = column - 1;
@@ -2142,6 +2142,52 @@ class BrightScriptDebugSession extends debugadapter_1.DebugSession {
2142
2142
  }
2143
2143
  }
2144
2144
  }
2145
+ /**
2146
+ * Converts a debugger line number to a client line number.
2147
+ *
2148
+ * @param debuggerLine - The line number from the debugger as zero based.
2149
+ * @param defaultDebuggerLine - An optional default line number, as zero based, to use if `debuggerLine` is not provided.
2150
+ * @returns The corresponding client line number.
2151
+ */
2152
+ toClientLine(debuggerLine, defaultDebuggerLine) {
2153
+ return this.convertDebuggerLineToClient(debuggerLine !== null && debuggerLine !== void 0 ? debuggerLine : defaultDebuggerLine);
2154
+ }
2155
+ /**
2156
+ * Converts a debugger column number to a client column number.
2157
+ *
2158
+ * @param debuggerLine - The column number from the debugger as zero based.
2159
+ * @param defaultDebuggerLine - An optional default column number, as zero based, to use if `debuggerLine` is not provided.
2160
+ * @returns The corresponding client column number.
2161
+ */
2162
+ toClientColumn(debuggerLine, defaultDebuggerLine) {
2163
+ return this.convertDebuggerColumnToClient(debuggerLine !== null && debuggerLine !== void 0 ? debuggerLine : defaultDebuggerLine);
2164
+ }
2165
+ /**
2166
+ * Converts a client line number to a debugger line number.
2167
+ *
2168
+ * @param clientLine - The line number from the client.
2169
+ * @param defaultDebuggerLine - An optional default line number, as zero based, to use if `clientLine` is not provided.
2170
+ * @returns The corresponding debugger line number as zero based.
2171
+ */
2172
+ toDebuggerLine(clientLine, defaultDebuggerLine) {
2173
+ if (typeof clientLine === 'number') {
2174
+ return this.convertClientLineToDebugger(clientLine);
2175
+ }
2176
+ return defaultDebuggerLine;
2177
+ }
2178
+ /**
2179
+ * Converts a client column number to a debugger column number.
2180
+ *
2181
+ * @param clientLine - The column number from the client.
2182
+ * @param defaultDebuggerLine - An optional default column number, as zero based, to use if `clientLine` is not provided.
2183
+ * @returns The corresponding debugger column number as zero based.
2184
+ */
2185
+ toDebuggerColumn(clientLine, defaultDebuggerLine) {
2186
+ if (typeof clientLine === 'number') {
2187
+ return this.convertClientColumnToDebugger(clientLine);
2188
+ }
2189
+ return defaultDebuggerLine;
2190
+ }
2145
2191
  /**
2146
2192
  * Called when the debugger is terminated. Feel free to call this as frequently as you want; we'll only run the shutdown process the first time, and return
2147
2193
  * the same promise on subsequent calls
@@ -2158,26 +2204,52 @@ class BrightScriptDebugSession extends debugadapter_1.DebugSession {
2158
2204
  }
2159
2205
  async _shutdown(errorMessage, modal = false) {
2160
2206
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
2207
+ //send the message FIRST before anything else. This improves the chances that the message will be displayed to the user
2161
2208
  try {
2162
- (_b = (_a = this.projectManager) === null || _a === void 0 ? void 0 : _a.dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
2209
+ if (errorMessage) {
2210
+ this.logger.error(errorMessage);
2211
+ this.showPopupMessage(errorMessage, 'error', modal);
2212
+ }
2163
2213
  }
2164
2214
  catch (e) {
2165
2215
  this.logger.error(e);
2166
2216
  }
2217
+ //close the debugger connection
2167
2218
  try {
2168
- (_c = this.componentLibraryServer) === null || _c === void 0 ? void 0 : _c.stop();
2219
+ this.logger.log('Destroy rokuAdapter');
2220
+ await ((_b = (_a = this.rokuAdapter) === null || _a === void 0 ? void 0 : _a.destroy) === null || _b === void 0 ? void 0 : _b.call(_a));
2221
+ //press the home button to return to the home screen
2222
+ try {
2223
+ this.logger.log('Press home button');
2224
+ await this.rokuDeploy.pressHomeButton(this.launchConfiguration.host, this.launchConfiguration.remotePort);
2225
+ }
2226
+ catch (e) {
2227
+ this.logger.error(e);
2228
+ }
2229
+ }
2230
+ catch (e) {
2231
+ this.logger.error(e);
2232
+ }
2233
+ try {
2234
+ (_d = (_c = this.projectManager) === null || _c === void 0 ? void 0 : _c.dispose) === null || _d === void 0 ? void 0 : _d.call(_c);
2235
+ }
2236
+ catch (e) {
2237
+ this.logger.error(e);
2238
+ }
2239
+ try {
2240
+ (_e = this.componentLibraryServer) === null || _e === void 0 ? void 0 : _e.stop();
2169
2241
  }
2170
2242
  catch (e) {
2171
2243
  this.logger.error(e);
2172
2244
  }
2173
2245
  try {
2174
- void ((_e = (_d = this.rendezvousTracker) === null || _d === void 0 ? void 0 : _d.destroy) === null || _e === void 0 ? void 0 : _e.call(_d));
2246
+ await ((_g = (_f = this.rendezvousTracker) === null || _f === void 0 ? void 0 : _f.destroy) === null || _g === void 0 ? void 0 : _g.call(_f));
2175
2247
  }
2176
2248
  catch (e) {
2177
2249
  this.logger.error(e);
2178
2250
  }
2179
2251
  try {
2180
- (_g = (_f = this.sourceMapManager) === null || _f === void 0 ? void 0 : _f.destroy) === null || _g === void 0 ? void 0 : _g.call(_f);
2252
+ await ((_j = (_h = this.sourceMapManager) === null || _h === void 0 ? void 0 : _h.destroy) === null || _j === void 0 ? void 0 : _j.call(_h));
2181
2253
  }
2182
2254
  catch (e) {
2183
2255
  this.logger.error(e);
@@ -2185,7 +2257,7 @@ class BrightScriptDebugSession extends debugadapter_1.DebugSession {
2185
2257
  try {
2186
2258
  //if configured, delete the staging directory
2187
2259
  if (!this.launchConfiguration.retainStagingFolder) {
2188
- const stagingDirs = (_j = (_h = this.projectManager) === null || _h === void 0 ? void 0 : _h.getStagingDirs()) !== null && _j !== void 0 ? _j : [];
2260
+ const stagingDirs = (_l = (_k = this.projectManager) === null || _k === void 0 ? void 0 : _k.getStagingDirs()) !== null && _l !== void 0 ? _l : [];
2189
2261
  this.logger.info('deleting staging folders', stagingDirs);
2190
2262
  for (let stagingDir of stagingDirs) {
2191
2263
  try {
@@ -2201,31 +2273,6 @@ class BrightScriptDebugSession extends debugadapter_1.DebugSession {
2201
2273
  catch (e) {
2202
2274
  this.logger.error(e);
2203
2275
  }
2204
- try {
2205
- //if there was an error message, display it to the user
2206
- if (errorMessage) {
2207
- this.logger.error(errorMessage);
2208
- this.showPopupMessage(errorMessage, 'error', modal);
2209
- }
2210
- }
2211
- catch (e) {
2212
- this.logger.error(e);
2213
- }
2214
- try {
2215
- this.logger.log('Destroy rokuAdapter');
2216
- await ((_l = (_k = this.rokuAdapter) === null || _k === void 0 ? void 0 : _k.destroy) === null || _l === void 0 ? void 0 : _l.call(_k));
2217
- //press the home button to return to the home screen
2218
- try {
2219
- this.logger.log('Press home button');
2220
- await this.rokuDeploy.pressHomeButton(this.launchConfiguration.host, this.launchConfiguration.remotePort);
2221
- }
2222
- catch (e) {
2223
- this.logger.error(e);
2224
- }
2225
- }
2226
- catch (e) {
2227
- this.logger.error(e);
2228
- }
2229
2276
  try {
2230
2277
  this.logger.log('Send terminated event');
2231
2278
  this.sendEvent(new debugadapter_1.TerminatedEvent());