V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lzoje
V2EX  ›  Visual Studio Code

vscode 有没有比较好用的 c++ 代码生成插件?

  •  
  •   lzoje · 6 天前 · 763 次点击

    像 idea 里面可以根据接口给 java 生成代码一样,c++ 有没有类似的插件?用了一个好像是叫 c++ helper 的插件,但是效果不是很好。主要是因为 c++ 声明和定义是分离的,导致这个插件不知道代码生成在什么地方。而且也没有根据基类虚函数生成定义的功能。不知道还有没有类似的插件能解决这个问题。

    7 条回复    2024-10-16 16:45:03 +08:00
    8620
        1
    8620  
       6 天前 via Android
    一定要说的话 Github Copilot ,可以先访问声明,然后在要写定义的地方开始打,有的时候能正常猜测补全。坏处是要点钱,然后是联网的。不联网的有 Tabnine ,但是准确度差。这都是基于深度学习的产品。

    不过 C++本来就是自由度比较高的语言,一个迭代遍历三四种不同时期写法的,真的复杂或者长期迭代的代码别说程序和 AI 了,受过专业训练的人看都头疼的。
    InkStone
        2
    InkStone  
       6 天前
    不如直接按自己的需求写一个吧,花不了多少时间的……
    lzoje
        3
    lzoje  
    OP
       6 天前
    @InkStone 确实有这个想法,通过调用 clangd 做,应该不难。
    Belmode
        4
    Belmode  
       6 天前
    java 那种生成的也是 CRUD 啊,就是说有固定模板的,都是按套路来的。
    既然如此,那么随便找个模板引擎,自己配置一下模板,不就好了。甚至你可以直接用 java 的那套工具,自己改写一下模板,岂不是更快~
    lzoje
        5
    lzoje  
    OP
       6 天前
    @Belmode C++ 和 java 主要有个差异是 C++ 的声明和定义是分离的。所以生成要修改两个文件,并且这两个文件关联没有规则的(有些可能会是文件名一致,但不一定)。
    Belmode
        6
    Belmode  
       6 天前   ❤️ 1
    你不一定强制生成多个文件,一个也可以,然后手动把声明复制去其他地方也可以,这样比全部手写快!

    最关键的是,你生成代码的未知不一定要在工程里,你可以在工程外找个地方全部生成过去,不影响当前工程,然后再按需复制。
    Belmode
        7
    Belmode  
       6 天前
    @lzoje 我之前一直拿 IDEA 的 EasyCode 插件,自己写模板,支持输出 nodejs 前后端的业务,很方便。

    这个插件其实就是基于 velocity 模板引擎的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3568 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 10:40 · PVG 18:40 · LAX 03:40 · JFK 06:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.