您可以修改 VS Code for C++ 中的“创建定义”模板以使用命名空间块而不是顶级的完全限定定义吗?

Yks*_*nen 5 c++ visual-studio-code

假设我写了一个新课程。我从标题开始MyClass.hpp

#pragma once

namespace MyProjectNamespace {
class MyClass {
public:
    foo(int i);
};
}
Run Code Online (Sandbox Code Playgroud)

目前还没有相应的 .cpp 文件,但 C++ 扩展有一个很好的快速修复来解决它 - 我可以Ctrl+.并选择“在 MyClass.cpp 中创建 'foo' 的定义”。这将创建一个MyClass.cpp如下文件:

#include "MyClass.hpp"

MyProjectNamespace::MyClass::foo(int i)
{
}
Run Code Online (Sandbox Code Playgroud)

但是,正如您所看到的,这在定义中使用(几乎)完全限定名称,而不是像在标头中那样打开名称空间。我可以自己修复它,任何进一步的“创建定义”操作都会将其正确放置在命名空间内,但对于新文件来说仍然有点烦人。

是否可以通过设置更改此操作的行为或以某种方式修改扩展使用的模板以始终在新定义上打开命名空间(如果不存在)?

sta*_*all 2

我不知道用户可以通过任何方式对此进行配置,也不知道任何现有的功能请求问题票证。我建议,如果您希望存在这样的配置功能,那么您应该创建一个功能请求问题票证,明确定义您想要的行为。

旁注:这个问题让我想起了如何更改 VS Code Cpptools 扩展的“创建声明/定义”功能创建的文件的文件扩展名?