在VSCode中,有几个Rust插件可以帮助你查看函数定义。最常用的是rust-analyzer,它提供了强大的代码导航功能,包括查看函数定义、引用、实现等。

以下是一些常用的方法和快捷键:

  1. 跳转到定义

    • 将光标放在函数名上,然后按F12

    • 或者使用Ctrl+单击(在Windows/Linux上)或Cmd+单击(在Mac上)函数名。

  2. 查看定义(在不跳转的情况下):

    • 将鼠标悬停在函数名上,会显示一个悬浮框,其中包含函数的定义和文档。

  3. 快速打开定义在侧边

    • 使用Ctrl+Alt+单击(可能因设置而异)可以在侧边打开定义,而不离开当前文件。

  4. 查找所有引用

    • 右键点击函数名,选择“查找所有引用”或使用快捷键Shift+F12

  5. 代码大纲

    • 使用Ctrl+Shift+O可以查看当前文件的结构,包括函数、结构体等,并快速跳转。

  6. 工作区符号

    • 使用Ctrl+T(或Ctrl+P然后输入#)可以搜索工作区中的符号(函数、结构体等)。

确保你已经安装了rust-analyzer插件,并且它已经正确配置。如果你还没有安装,可以通过VSCode的扩展市场搜索“rust-analyzer”并安装。

另外,如果你使用的是旧版的Rust插件(即rust-lang.rust),建议切换到rust-analyzer,因为它是目前Rust官方推荐的语言服务器,并且提供了更丰富的功能。

如果你已经安装了rust-analyzer,但无法正常使用这些功能,请检查你的VSCode设置和项目配置,确保rust-analyzer能够正确运行。

在 VSCode 中,有几个 Rust 插件可以方便地查看函数定义:

主要推荐插件

1. rust-analyzer (官方推荐)

这是 Rust 官方推荐的插件,功能最全面:

查看函数定义的方法:

  • 悬停查看: 鼠标悬停在函数上会显示定义和文档

  • 跳转到定义F12 或 Ctrl+单击

  • 快速查看Alt+F12 在当前位置查看定义

  • 查看所有引用Shift+F12

2. Even Better TOML

用于查看和编辑 Cargo.toml 文件

3. crates

帮助管理依赖版本

rust-analyzer 的主要功能

代码导航

 // ============================================

前提 打开项目:例如 work/包含Cargo.toml文件。

【遇到的问题】:

以下操作:我查找解决,遇到的安装rust-analyzer 插件后 ,无法使用 快捷键,跳转查看定义,类型定义的情况。

【方法1】:

【临时解决方法】:【vscode 中手动添加配置】:

1.【vscode】Ctrl+Shift+P → "settings.json" ,在你的 settings.json 中添加(若不存在,可加在结尾):

 // ========== 在这里添加 rust-analyzer 配置 ==========
    //关键点:确保 rust-analyzer.linkedProjects 中的路径指向一个真实存在的、有效的 Cargo.toml 文件。
    // linkedProjects 指定 Cargo.toml 使用所在路径
    "rust-analyzer.linkedProjects": [
        "./Cargo.toml"
    ],
    "rust-analyzer.check.command": "clippy",
    "rust-analyzer.checkOnSave": true,
    "rust-analyzer.cargo.loadOutDirsFromCheck": true,
    "rust-analyzer.inlayHints.enable": true,
    "rust-analyzer.inlayHints.typeHints": true,
    "rust-analyzer.inlayHints.parameterHints": true,
    "rust-analyzer.inlayHints.chainingHints": true,
    "rust-analyzer.completion.autoimport.enable": true,
    "rust-analyzer.hover.documentation.enable": true,
    "rust-analyzer.procMacro.enable": true,//这个路径 改成你的Cargo.toml所在路径

   "rust-analyzer.linkedProjects": [
        "/home/test/work/data/tcp/Cargo.toml"
    ],
    "rust-analyzer.lens.enable": true,
    "rust-analyzer.lens.implementations": true,
    "rust-analyzer.lens.references": true

2.检查 rust-analyzer 状态:

Ctrl+Shift+P → "Rust Analyzer: Status"

3.添加配置后重启 VSCode

Ctrl+Shift+P → "Rust Analyzer: Restart Server"

【方法2】:为每个独立项目创建工作区

设置工作区,在要打开的项目文件夹中

例如:新建文件 .code-workspace

以我目前使用环境为例。vscode,remote-ssh远程连接到虚拟机ubuntu的方式。

配置工作区,例如:

用vscode打开.code-workspace [工作区]。

等待rust-analyzer加载完成,即可跳转查看函数定义。

单项目工作区:

{
    "folders": [
        {
            "path": "/home/test/work/"
        }
    ],
    "settings": {
        "rust-analyzer.linkedProjects": [
            "/home/test/work/Cargo.toml",
        ],
    }
}

多项目工作区:

{
    "folders": [
        {
            "path": "/home/test/projects/backend",
            "name": "Backend Server"  // 可以自定义显示名称
        },
        {
            "path": "/home/test/projects/frontend",
            "name": "Frontend App"
        },
        {
            "path": "/home/test/projects/shared-lib"
        }
    ]
}

【MacOS】 例如:

1.为每个独立项目创建工作区

{
    "folders": [
        {
            "path": "/Users/username/development/rust-app"
        }
    ],
    "settings": {
        "rust-analyzer.linkedProjects": [
            "/Users/username/development/rust-app/Cargo.toml"
        ]
    }
}

多项目工作区:

{
    "folders": [
        {
            "path": "/Users/username/projects/backend",
            "name": "Backend Server"  // 可以自定义显示名称
        },
        {
            "path": "/Users/username/projects/frontend",
            "name": "Frontend App"
        },
        {
            "path": "/Users/username/projects/shared-lib"
        }
    ]
}

2.保存工作区文件到项目根目录

/Users/username/projects/specific-project/project.code-workspace

3.或者保存到集中位置

/Users/username/workspaces/rust-projects.code-workspace

遇到过的问题:

遇到的 Signature verification failed with 'UnknownError' 错误

vscode 中重新下载安装 rust-analyzer 插件  在远程中SSH安装。提示:

此扩展在此工作区中被禁用,因为其被定义为在远程扩展主机中运行。请在'SSHxxx'中安装扩展以进行启用。

安装到远程ssh,遇到的 Signature verification failed with 'UnknownError' 错误,可能是 VSCode 在较新版本(v1.91+)中引入的一项安全机制,它会验证扩展的数字签名。这个错误通常发生在离线安装扩展、网络环境特殊或扩展文件本身存在问题时。

方案一:临时禁用签名验证(尝试后注意安全性,删除临时配置)

这是最直接有效的解决方法。你可以通过在 VSCode 的设置中添加一个实验性配置来绕过签名验证。

  1. 在 VSCode 中,按下 Ctrl+, 打开设置。
  2. 在右上角点击图标,选择 在 settings.json 中编辑
  3. 在 settings.json 文件中,添加以下配置项:json

    编辑

    "extensions.verifySignature": false
  4. 保存文件,然后重新尝试安装 rust-analyzer 扩展。

注意:此操作会降低扩展安装的安全性,建议在成功安装并解决问题后,将此配置项改回 true 或直接删除。

方案二:回退 Remote-SSH 扩展版本

有时,问题并非出在 rust-analyzer 扩展本身,而是新版的 Remote-SSH 扩展与服务端兼容性不佳导致的。回退到一个旧版本的 Remote-SSH 扩展可能解决问题。

  1. 打开扩展视图 (Ctrl+Shift+X)。
  2. 找到 Remote - SSH 扩展。
  3. 点击扩展名称旁边的齿轮图标 ⚙️。
  4. 选择 Install Another Version...
  5. 选择一个几个月前的稳定版本进行安装。
  6. 安装完成后,重新加载 VSCode 窗口,再尝试安装 rust-analyzer

导航快捷键

返回上一条(后退)

  • Windows/LinuxAlt + ← (Alt + 左箭头)

  • macOSCtrl + - (Control + 减号)

跳转下一条(前进)

  • Windows/LinuxAlt + → (Alt + 右箭头)

  • macOSCtrl + Shift + - (Control + Shift + 减号)

其他相关导航快捷键

跳转到定义

  • F12 或 Ctrl + 单击

查看定义(不跳转)

  • Alt + F12

查看所有引用

  • Shift + F12

转到符号

  • Ctrl + Shift + O (文件内符号)

  • Ctrl + T (工作区符号)

如果快捷键不工作

检查快捷键绑定

  1. 打开快捷键设置:

  2. 检查快捷键绑定

  3. 打开快捷键设置:

    Ctrl + K, Ctrl + S
  4. 搜索相关命令:

    • workbench.action.navigateBack - 后退

    • workbench.action.navigateForward - 前进

    • editor.action.goToReferences - 查看引用

使用命令面板

如果记不住快捷键,可以使用命令面板(或鼠标右键):

  1. Ctrl + Shift + P

  2. 输入:

    • "Go Back" - 返回上一条

    • "Go Forward" - 跳转下一条

    • "Go to Definition" - 跳转到定义

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐