vscode add raiseWindow function

qzlgjiam  于 22天前  发布在  Vscode
关注(0)|答案(5)|浏览(22)

背景:我们维护Go语言服务器(gopls)。这个服务器既是LSP服务器,也是集成的Web服务器。Web服务器提供文档、报告、配置文件、表单和其他不容易放入现有LSP响应的图形查询响应。这些Web文档中的一些链接是源文件位置的引用。点击这样的链接会导致浏览器向Web服务器发送请求;但与导航浏览器到该位置不同,服务器向客户端编辑器发送一个LSP showDocument调用,导致编辑器导航到该位置。以这种方式,客户端编辑器和浏览器可以在彼此之间来回ping-pong,提供一个丰富集成但可移植于编辑器的用户体验。

然而,在VS Code实现的LSP showDocument请求中,如果浏览器窗口位于VS Code窗口的顶部,编辑器会移动光标并获得焦点,但不会提升窗口。这可能会让用户在浏览器中点击时很难知道发生了什么。解决方案是让LSP showDocument请求提升窗口(并记录这种行为要求)。这可以通过以下几种方式之一来实现:

  1. 当LSP showDocument请求指定external=false且takeFocus=true时,无条件地提升窗口。这是最简单的方法,也是我首选的方法,但也许提升窗口并不总是可取的。
  2. 向LSP showDocument请求添加另一个布尔字段,指示窗口应该被提升。
  3. 仅在收到异步的showDocument请求时提升窗口;即,不在由用户交互启动的主动客户端-服务器LSP调用期间进行,这意味着编辑器窗口已经可见。
    无论为LSP集成决定采用哪种方法,VS Code都需要提供一个提升编辑器窗口的函数。因此:

建议:我们添加一个名为raiseWindow的函数,用于提升当前编辑器窗口。

相关:#207634

sgtfey8w

sgtfey8w1#

在这条推文上,我@dbaeumer,你认为呢?

pokxtpni

pokxtpni2#

尽管这被描述为一个LSP请求,但它与LSP无关。
VS Code API本身并不提供任何API来引发窗口。

ezykj2lf

ezykj2lf3#

这个功能请求现在是我们待办事项列表的候选项目。社区有60天的时间对这个问题进行投票。如果它收到20个赞成票,我们将把它移到我们的待办事项列表中。如果没有,我们将关闭它。要了解更多关于我们如何处理功能请求的信息,请参阅我们的documentation
快乐编码!

kpbwa7wx

kpbwa7wx4#

这个功能请求尚未收到20个社区投票,以将其添加到我们的待办事项列表中。还有10天时间。要了解更多关于我们如何处理功能请求的信息,请参阅我们的documentation
快乐编码!

0lvr5msh

0lvr5msh5#

这个功能请求收到了足够多的社区投票,我们将其移动到了我们的待办事项列表中。要了解更多关于我们如何处理功能请求的信息,请参阅我们的documentation
快乐编码!

相关问题