Vscode-ng-language-service: 当我输入时,输出窗口被打开

创建于 2017-07-12  ·  51评论  ·  资料来源: angular/vscode-ng-language-service

每当我输入一些代码并显示语言服务输出时,输出窗口就会打开。

当我关闭它时它没有永久效果,当我输入时它会再次打开。

我在插件中看不到任何设置。 我该怎么办? 我不想打开输出窗口。

最有用的评论

实际上,这不是唯一一个这样做的插件。 我认为 VSCode 通常应该添加禁用弹出的选项 - 我们应该只在底部看到警报,而不是弹出面板

所有51条评论

这也发生在我身上,但直到我今天早上更新到 VS Code 1.14.1 版才开始。

VSCode 版本:1.14.1
Angular 语言服务扩展版本:0.1.4

现在的临时修复是让输出窗口保持打开状态,但将大小减小到最小。

我暂时降级到 VS Code 1.14.0,这为我解决了这个问题。 在我降级之前,我还注意到自动完成将每个建议一式三份 - 不确定这是 VS Code 问题还是插件问题。

这个问题阻止我更新 vscode

这些更新一天比一天变成噩梦:(

这种窗口行为非常分散注意力。 我特别喜欢终端总是显示。 我禁用直到解决。

你应该停止抓住焦点。 请参阅https://github.com/Microsoft/vscode/issues/31474#event -1185523706 了解如何操作。

@lemoinem我看不到任何有关停止此操作的信息。 他们只是谈论他们的 API 如何让应用程序获得焦点,而不是如何阻止它

我似乎无法在最新的 vscode 中重现这个问题。 但我似乎无法再使用语言服务功能了。 我在输出日志中看到消息,但这并没有吸引我的注意力。 它也没有显示像 *ngIf 和 *ngFor 这样的东西的任何悬停帮助,我知道它之前显示过。

@lemoinem我一直在查看这个项目的代码。 我找不到任何对您正在链接的show()方法的引用。

请尽快修复 :( 从终端移除焦点对工作有害。

@nickprivalov您在使用最新版本的 VSCode 时是否遇到过这种情况? 我正在尝试自己解决这个问题,但我无法再重现它。

刚刚得到更新,可以确认您的问题,没有出现 *ngIf 和 *ngFor 指令。 还可以确认语言服务没有像以前那样弹出,只是使用新版本才不到10分钟。

什么版本是“新版本”? 1.14.2? 因为这个版本发生在我身上。

是的,无视我说的它仍然会发生。

@nickprivalov@DavidTheProgrammer是否有一个我可以拉下有问题的回购,以便我可以在本地复制它? 在它发生之前,你必须使用 VSCode 多长时间? 输出窗口中是否有任何错误?

@DavidTheProgrammer @DBosley
我在 VScode 的最后一个 (1.14.2) 版本上仍然存在这个问题,它在我打开 VSCode 后立即开始。

我不知道show方法,但这是我向 VSCode 团队报告问题时得到的答复。 如果问题出在 VSCode 的 API 或自己的行为上,我建议您直接与他们联系。 这很可能比让我或其他最终用户在团队之间打乒乓球更有效率。

我刚刚为这个项目提交了一个 PR,并更新了 deps。 我一直在使用通过这些更新在本地构建的扩展一两个星期,并且一切似乎都运行顺利。

只需要等待@chuckjaz给它竖起大拇指。

我今天终于能够亲眼看到这种情况发生了。 出现错误时似乎切换到输出窗口。 这是我看到它时发生的错误:

[Error - 3:08:57 PM] SERVER ERROR: Cannot read property 'identifier' of null
TypeError: Cannot read property 'identifier' of null
    at tokenReference (C:\Users\UserName\.vscode\extensions\Angular.ng-template-0.1.4\server\node_modules\@angular\language-service\bundles\language-service.umd.js:18980:14)
    at Object.visitReference (C:\Users\UserName\.vscode\extensions\Angular.ng-template-0.1.4\server\node_modules\@angular\language-service\bundles\language-service.umd.js:50335:62)
    at ReferenceAst.visit (C:\Users\UserName\.vscode\extensions\Angular.ng-template-0.1.4\server\node_modules\@angular\language-service\bundles\language-service.umd.js:17198:24)
    at locateSymbol (C:\Users\UserName\.vscode\extensions\Angular.ng-template-0.1.4\server\node_modules\@angular\language-service\bundles\language-service.umd.js:50314:22)
    at getHover (C:\Users\UserName\.vscode\extensions\Angular.ng-template-0.1.4\server\node_modules\@angular\language-service\bundles\language-service.umd.js:50589:18)
    at LanguageServiceImpl.getHoverAt (C:\Users\UserName\.vscode\extensions\Angular.ng-template-0.1.4\server\node_modules\@angular\language-service\bundles\language-service.umd.js:50662:20)
    at C:\Users\UserName\.vscode\extensions\Angular.ng-template-0.1.4\server\editorServices.js:2705:68
    at time (C:\Users\UserName\.vscode\extensions\Angular.ng-template-0.1.4\server\editorServices.js:2687:22)
    at Object.getHoverAt (C:\Users\UserName\.vscode\extensions\Angular.ng-template-0.1.4\server\editorServices.js:2705:20)
    at C:\Users\UserName\.vscode\extensions\Angular.ng-template-0.1.4\server\server.js:171:30
[Error - 3:08:57 PM] Request textDocument/hover failed.
  Message: Request textDocument/hover failed with message: Cannot read property 'identifier' of null
  Code: -32603

这似乎与将鼠标悬停在语言服务没有标识符的东西上有关。 我还不知道这个错误是在这个扩展中还是在@angular/language-service

这正是弹出来的! 是的,我注意到当您将鼠标悬停在模板中带有红色下划线的指令或其他内容上时它会弹出......

@DavidTheProgrammer我可以重现它! 它似乎在将鼠标悬停在模板变量上时触发。 (例如#descriptionInput 在我的情况下输入)。

我将验证我为解决它而创建的 PR 的依赖项更新,如果没有,我对如何修复它有一些想法。
它看起来确实是@angular/language-service 。 当从该服务请求模板变量的悬停文本时,它会引发异常。

@DBosley我用你的 PR 测试了它,我不再收到这个错误了。 此外,我的另一个问题已通过您的 dep 更新解决。

我在 angular 项目中发现了与此相关的问题:
https://github.com/angular/angular/issues/17972
@chuckjaz 似乎已经修复了它。 所以我的 PR应该关闭这个错误。

当然,还有一个问题,如果有任何语言服务错误,输出窗口将被聚焦。 我不确定未来解决此问题的最佳方法是什么。 我会看看我是否能让查克称重。

PR #138 应该在获取语言服务数据时捕获并处理来自@angular/language-service 的所有错误。

当我尝试更新此插件时,我仍然在商店中获得 v.0.1.4。
我必须手动下载vsix文件才能获得最新版本。 当我这样做时,我再次看到同样的问题,输出窗口自行打开。

我没有发布 0.1.5 因为它坏了。 它要求minimist是可加载的。 我应该在周三或周四有一个没有这个要求的版本。

要解决此问题,请查看OutputChannel界面
github vscode 。 有一个show(preserveFocus?: boolean): void; ,如果 preserveFocus 为真,则它不会获得焦点。

@ShiftySituation我的代码根本不调用该方法(https://github.com/angular/vscode-ng-language-service/blob/master/client/src/extension.ts)。 这是调用发生在我正在使用的客户端库中,该库由 vscode 团队提供。

@ShiftySituation大多数“自动打开”问题应在下一个版本后解决。 如果您想尽早获得它,请随时从发布选项卡下载 visx 文件。

非常烦人,我希望它会尽快发布修复程序。

实际上,这不是唯一一个这样做的插件。 我认为 VSCode 通常应该添加禁用弹出的选项 - 我们应该只在底部看到警报,而不是弹出面板

这真的真的很烦人! =/

我觉得这很令人气愤,修复还没有发布吗?

这才开始发生在我身上。 非常麻烦,因为我在 VS Code 中大量使用终端窗口,当我打开它时,它会弹出输出窗口并不断更改它。

这也发生在我身上。 输出窗口每隔几秒就会打开一次,输出正常。 杀死 VSCode 并重新启动几分钟会有所帮助。

我也遇到了这个错误,我想必须禁用插件😢

这太烦人了,我想如果不解决这个问题,我将停止使用这个伟大的扩展。

我也面临这个问题,即使我选择终端作为我的选项卡并最小化整个集成终端 Angular 语言服务输出在处理任何文件和干扰时仍然弹出。

+1 很棒的 VScode 扩展,但输出非常烦人和分散注意力

同上,烦人。 我当然希望它被修复。 几个月前我在以前的版本中遇到过这个问题。

这真的很令人沮丧,有人知道如何防止这种情况发生吗?

@joe307bad尝试关闭 VS Code 的所有实例,然后重新启动。 我发现这偶尔(但并非始终如一)有效。

这个怎么还没修好?

我将禁用 angular 语言服务,直到此问题得到解决

我会将我的应用程序迁移到 React,直到此问题得到解决

@Alexintosh亲爱的上帝,因为打开面板,您会将您的应用程序迁移到另一个框架吗?

真烦人! 任何解决方法来阻止这个?

@DBosley可能需要重新打开?

每当我打开或保存文件时都会发生。 从安装 Angular 语言服务开始。

由于不活动,此问题已被自动锁定。
如果您遇到类似或相关的问题,请提交新问题。

阅读有关我们的自动对话锁定政策的更多信息。

_此操作已由机器人自动执行。_

此页面是否有帮助?
0 / 5 - 0 等级