“转到定义”在带有 Robot Framework 语言服务器的 VS Code 中不起作用

问题描述 投票:0回答:1

当我在文件中的关键字上使用上下文菜单并选择“转到定义”时,我总是会弹出“未找到定义”的窗口。

我已经安装了 Robot Framework Language Server 扩展。 Python (3.11) 和 Pylance。

我尝试过禁用/重新启用扩展、重新启动代码以及更改 Python 语言服务器。

请问如何重新启用“转到”功能?

我尝试过以下方法: VSCode“转到定义”不起作用

此功能之前适用于我的 VS Code / Python / Robot Framework 设置。

python visual-studio-code robotframework
1个回答
0
投票

可能出现此问题的实例

您的代码需要更多上下文才能知道是否是这种情况,但我可以想出可能发生这种情况的情况。然而,如果你真的到处都遇到这个问题,那么不幸的是,我不认为这就是问题所在。

例如,如果您尝试在 Robot Framework 文件中不应该使用关键字的某个位置使用关键字,您将有“转到定义”选项,但它不起作用。

例如。 (变量部分不能使用关键字):

*** Variables ***
Set Suite Variable    ${customer_name}    ${forename}

另一个前任。 (关键字未正确缩进,因此被视为测试名称):

*** Test Cases ***
Some test
    Log    hello world
Set Suite Variable     ${customer_name}    ${forename}

转到定义应该在下面的示例中起作用。如果没有,那么我不知道是什么导致了问题。

*** Test Cases ***
Some test
    Set Suite Variable     ${customer_name}    ${forename}

排除的可能性

我还使用 Robot Framework Language Server 扩展。我见过“转到定义”不起作用的情况,但这些情况似乎不适用于您的示例。我仍然想回顾一下这些示例,只是为了回顾一下我认为我们可以排除的可能原因,以及对于可能处于以下情况之一的其他阅读本文的人:

  • 该扩展程序未使用您的 python 安装(可以在扩展程序的设置中设置 python 的路径)。如果是这种情况,“转到定义”甚至不会显示为选项,因此可以排除这种情况。
  • 该关键字是在您当前所在的文件无权访问的文件中定义的。
    Settings
    部分应使用
    Library
    Resource
    设置提供访问。我有时会在
    .resource
    文件中看到这种情况,因为调用这些关键字的
    .robot
    文件列出了适当的资源,这意味着您不会遇到任何运行时问题,但扩展程序无法找到定义。您的示例中并非如此,因为您使用的是
    BuiltIn
    关键字。
  • PYTHONPATH 问题(您也可以在扩展程序的设置中设置)。当你在 python 中编写自定义关键字时,可能会发生这种情况。再说一遍,您的示例中的情况并非如此,因为您使用的是
    BuiltIn
    关键字。
© www.soinside.com 2019 - 2024. All rights reserved.