vscode 当尝试更改活动调试会话时,出现"无法设置属性activeDebugSession的#< Object>,它只有getter"错误,

63lcw9qa  于 6个月前  发布在  Vscode
关注(0)|答案(3)|浏览(57)

在vscode/src/vscode-dts/vscode.d.ts文件的第16259行,be0e535中,有一个名为letactiveDebugSession的变量被标记为可变。但是尝试设置它会导致以下运行时异常:

Exception has occurred: TypeError: Cannot set property activeDebugSession of #<Object> which has only a getter
t VsCodeApiImpl.<anonymous> (c:\Dev\Dart-Code\Dart-Code\out\dist\extension.js:6563:45)
	at Generator.next (<anonymous>)

为了解决这个问题,你可以尝试在vscode.d.ts文件中将letactiveDebugSession变量声明为不可变。具体操作如下:

  1. 打开vscode.d.ts文件,找到第16259行。
  2. export let activeDebugSession: DebugSession | undefined;修改为export const activeDebugSession: DebugSession | undefined = undefined;
  3. 保存文件并重新编译项目。

这样应该可以解决你遇到的问题。

e5nszbig

e5nszbig1#

尽管这些是 let ,只有 VS Code 才可以设置它们。这引发了一场讨论,我提交了 #216555 来改变这一点。但听起来你基本上是在寻求一种方法让扩展可以设置活动调试会话。我不确定是否可行。为什么你想要有不同的 UI 而不是让用户在 VS Code 的抽屉中选择活动调试会话,并监听它呢?

ulmd4ohb

ulmd4ohb2#

听起来你基本上是在寻求一种扩展设置活动调试会话的方法。
正确。
为什么你想为这个而不是让用户在VS Code的选择器中选择活动调试会话,并监听它?
我们正在努力提高Dart/Flutter的一些附加调试工具的可发现性。我们有一个侧边栏,显示调试会话并允许您启动其他工具(与调试会话相关联)。目前,这些工具位于调试会话旁边的下拉菜单中:

然而,这些工具并不十分容易发现,所以我们希望将它们从这个菜单中移出来,使其在侧边栏中更加显眼。然而,这意味着:

  1. 当用户点击其中一个时,我们需要提示他们选择一个调试会话
  2. 我们为“活动”调试会话启动
    我们认为第二种选择是最好的,但是VS Code的下拉菜单离侧边栏很远(也许它甚至不可见 - 参见 #216601 )。我们认为如果我们保留调试会话列表并突出显示活动会话(并在VS Code中更新),就像我们对设备选择所做的那样,那就更好了:

但是在这里突出显示选定的调试会话而不是无法点击它来选择它将会很奇怪(尤其是因为你可以这样做,而且我们在两个方向上都同步设备)。如果我们跟踪我们自己的选定调试会话的版本,我认为这也会令人困惑。
因此,我认为对于用户来说,如果他们可以在这里选择调试会话,那将是最好的体验,这样就清楚地表明它适用于要启动的工具,但它不是与VS Code中的活动会话完全不同的概念,而是调试工具栏和其他事物适用的概念。
我们不打算自动更改会话,这完全是为了响应用户选择它。这只是为他们提供一种更方便的方式来更改它,并以一种明显与将要启动的工具相关联的方式查看选定的调试会话(不像VS Code工具栏那样相距甚远)。

zqry0prt

zqry0prt3#

我向#216601提交了关于在使用命令中心时丢失下拉菜单的问题,这个问题与您提到的#194881有关,您说:
否则,我认为在调试控制台中使用调用栈或下拉菜单并不是太糟糕。
如果这是解决这个问题的方法,那么我认为能够在这里为我设置这一点就更加重要了,因为用户必须从侧边栏视图切换到调试视图,然后再切换回来以更改调试会话绝对不是一个好的体验。

相关问题