royqh1979 / RedPanda-CPP

A light-weight C/C++ IDE based on Qt
GNU General Public License v3.0
950 stars 103 forks source link

编辑器不显示从命名空间别名中获取的函数的形参提示 #331

Closed West-Pavilion closed 5 months ago

West-Pavilion commented 5 months ago

编辑器不显示从命名空间别名中获取的函数的形参提示

如果使用 namespace foo = bar 的语法为一个命名空间取一个别名,那么在通过别名 foo 获得原命名空间 bar 中的函数时,会发现编辑器不显示这些函数的形参提示

例如,请考虑如下的 C++ 代码:

#include <iostream>

/* 编辑器不显示从命名空间别名中获取的函数的形参提示 */

namespace my_tool {
    void print(int data);
}

namespace my_tool_alias = my_tool;

/* 命名空间别名的作用是为了方便使用嵌套的命名空间,而不需要输入较长的前缀名 */
#include <thread>
namespace ts_alias = std::this_thread;
auto id = ts_alias::get_id(); // 这样就不需要使用 std::this_thread::get_id() 来调用 get_id 函数了

int main(){
    /* 使用命名空间别名时,编辑器不显示函数的形参提示 */
//  my_tool_alias::print()

    /* 不使用命名空间别名时,编辑器会显示函数的形参提示 */
//  my_tool::print()
}

屏幕截图(329)

下面是对应的测试代码:

编辑器不显示从命名空间别名中获取的函数的形参提示.zip