【问题标题】:Can't find 'Show Call Hierarchy' in VSCode在 VSCode 中找不到“显示调用层次结构”
【发布时间】:2022-03-26 23:51:02
【问题描述】:

当我右键单击一个函数时,没有“显示调用层次结构”或“查看调用层次结构” 任何选择。我的弹出菜单是这样的

然后我尝试在命令面板中键入“显示所有层次结构”。该命令确实存在,但在回车后只给出一个“无结果”窗口。

所以我去了键盘快捷键页面,它看起来像这样

我的问题是,

  1. 为什么我在弹出菜单中找不到“调用层次结构”,而网上的每个教程都声称我现在应该找到它。
  2. 键盘快捷键页面中的“时间”字段是什么意思?我是否缺少任何“CallHierarchyProvider”?

附加信息: VSCode 1.60 版,安装了 C/C++ 和 Emacs Keymap 扩展。在 MacOS 和 Ubuntu 上都尝试了 VSCode,问题仍然存在。我目前查看的代码库是用 CMake 配置的。

感谢您的帮助。

【问题讨论】:

  • 随着现代软件的更新频率,所有教程在几个月甚至几周内都会部分过时。
  • @molbdnilo 不太可能。如果我没记错的话,VSCode 开发人员说 1.40 版支持“调用层次结构”。砍掉这样一个基本功能似乎不合理。
  • 自您编写教程以来,启用和访问它的方式可能已经发生了变化,除非它们专门针对您的版本。

标签: c++ visual-studio-code vscode-extensions


【解决方案1】:

当类似的功能被添加到 VSCode 发行说明或任何其他文档中时,您应该假设它最初仅适用于 JavaScript/TypeScript,

Visual Studio Code show call hierarchy

这很常见,因为 VSCode 只是一个提供基础架构(上下文菜单和其他可视元素)的编辑器,但实际的语言功能是由各个语言扩展及其语言服务器提供的。

在您的情况下,C++ 扩展及其语言服务器可能远远落后于支持此类功能。

【讨论】:

    【解决方案2】:

    对我来说,clangd vscode 扩展赋予了这种能力,而且它似乎集成得很好,可以取代基本的智能感知。您需要禁用该功能的默认智能感知。

    但正如 cmets 中提到的,“显示层次结构”支持已在他们的待办事项中列出,并有望在未来与 deafult c++ intellisense 一起使用。

    在使用gcc 编译时使用clangd 可能会很烦人——一些警告和错误实际上并未同步。这在 c++2a 功能支持下非常明显

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-10
      • 2017-07-15
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多