在源文件中查找与某个包含/导入相关的所有标识符

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

我想找到通过特定的

#include
import
语句导入源文件的所有符号、typedef、宏等。从概念上讲,我想找到由所述导入/头文件“已知”的所有标识符。看看这个:

#include <iostream>
#include <span>
#include <vector>
#include <cstdint> // the include in questions. If I select and <insert magic shortkey here> it should...

int main()
{
    // ... a lot of badly written source code
    std::vector<uint8_t> intvec = { 1, 2, 3, 4 }; // <-- hop here first, finds uint8_t
    auto vec_int_view = std::span(intvec);

    // ... heaps of badly written source code

    uint32_t my_int = 15; // <-- second hop lands you here for uint32_t

    // ... even more
}

我应该能够在文件中来回导航并一一找到所有标识符。

这对我来说非常有用,因为我可以:

  • 检测是否仍需要包含/导入
  • 检查当源代码更改(但保留导入)时过去的合并请求可能引入了哪些类型的更改。
  • ...

VS Code/扩展中是否有提供此功能的工具?我也在 Python 和 Rust 中寻找相同的东西(这就是我提到

import
的原因)。

visual-studio-code ide
1个回答
0
投票

在 VS Code 中,您可以使用“转到定义”(F12) 或“转到类型定义”(Shift+F12) 命令导航到 #include 或 import 语句引入的符号。特别是对于 C++,您可能还想使用 C/C++ 或 IntelliSense 等扩展来实现更好的符号解析。

对于 Python,Python 扩展通过 import 语句提供导航,而在 Rust 中,Rust Analyzer 扩展提供类似的功能。

要查找特定文件导入的所有标识符,您可能需要更高级的静态分析工具或脚本,因为 VS Code 本身不提供单个命令来直接列出导入中的所有符号。在 VS Code 中,您可以使用转到定义 (F12) 或转到类型定义 (Shift+F12) 命令可导航到 #include 或 import 语句引入的符号。特别是对于 C++,您可能还想使用 C/C++ 或 IntelliSense 等扩展来实现更好的符号解析。

对于 Python,Python 扩展通过 import 语句提供导航,而在 Rust 中,Rust Analyzer 扩展提供类似的功能。

要查找特定文件导入的所有标识符,您可能需要更高级的静态分析工具或脚本,因为 VS Code 本身并不提供单个命令来直接列出导入中的所有符号。

© www.soinside.com 2019 - 2024. All rights reserved.