从Visual Studio编辑器访问源代码信息

时间:2019-10-01 20:42:29

标签: visual-studio visual-studio-extensions visual-studio-2019

我正在尝试创建Visual Studio扩展。 Microsoft的在线文档中有一些有关创建自定义内容的示例,但是我找不到任何有关如何访问Intellisense(或任何其他代码分析)的信息。

我知道有关此主题的一些问题(即how do you get c++ Intellisense data in a visual Studio Extention?),但是这些问题来自2012年或更早的版本,并且不再更新(至少我希望如此)。

以下内容仅适用于C ++源代码。

我特别想要的是检查光标所在的表达式。然后我要检查表达式是否为

  • 对象声明/实例化,例如string s("my string");,或
  • 函数调用,例如std::max(1, 2);

从这些表达式中,我想获得类型/函数的全限定名称(包括名称空间),以及可能的函数/构造函数参数的类型。例如:

// ...
using namespace std;
auto x = max(1, 2);
// ...

现在,如果光标输入max,则需要完整的限定名称::std::max和参数类型[int, int]

另一个例子:

// ...
using namespace std;
string s("my string");
// ...

在这里,我需要全限定名::std::string和参数类型[const char*, std::allocator]

这有可能吗?我也对部分解决方案感兴趣。非常欢迎提供有关某种文档的任何指导或提示。

1 个答案:

答案 0 :(得分:1)