使用了大量模板的C++项目的推荐解决方案是什么?

目前在魔改一个cuda/c++项目,这个项目里使用了大量的模板。即使在vscode上,跳转和补全都很不准确,请问有什么推荐的解决方案吗?

Visual Studio

1 个赞

C++我基本上只用rg

所有更加高级的工具最后都感觉太麻烦或者太慢或者太不准确或者以上所有

另外因为我工作的代码有大量跨平台成分,基于LSP的工具我都信不过,因为它们只能索引一种编译配置。

2 个赞

谢谢!不知道rg和ide相比效果怎么样?对于c++,我用lsp的体验和vscode差不多,只不过vscode配置简单一些(ide的使用我还不太熟悉,无法比较)。

效果就是只有全文搜索,但是我也不知道还有什么更好的办法。什么rtags, ctags, gtags,clangd, ccls都试过了,感觉都不好用。

1 个赞

哈哈,好吧。尝试了下CLion,感觉在模板面前用什么都差不多。人脑能跳转过去,主要还是因为看代码时大脑里能带上一些假设。但是这些假设很难传递给lsp等工具。

先在c++基本没太好的东西,按功能的话,ccls最好,稳定的话,clangd,其他的就是收费的了

ccls用过一段时间,该有的功能确实也都有。但是太慢了,也太热了。每次git切换分支马上cpu飚到800%,机器发出电吹风的声音,持续半个小时以上。然后就是无法处理各种不同编译配置的ifdef分支,因为这些基于编译的工具跟编译器一样只能看到一个分支。

正确的做法是做好散热, 买/申请更高性能的cpu, 用git worktree 创建多个worktree, 使用不同的compile configuration, 然后独立索引不同的worktree.

3 个赞

学习一波高阶用法

昨天刚在工作 Emacs 上把 company lsp eglot 这一票「高级功能」都关了,丝般顺滑~~

要什么补全,大佬都是手动从 StackOverflow 复制粘贴代码。

2 个赞

emacs -Q 确实丝滑无比 :joy: :joy: :joy:

2 个赞

把自动补全关了,需要的时候再手动调用

可以用counsel-etags导航,company-ctags自动完成. 需要命令行工具ctags.主打性能和节能. 准确率还行,取决于ctags.

我不写C++,不过有C++用户反映counsel-etags还不错. Using Emacs as a C++ IDE - Take 2 看起来他模版也用的.

看起来很不错,我有空时尝试一下,谢谢~

etags的话,就不如citre了

我目前的配置是clangd+rgrep,用起来还行。

是的,我后面就自己搞了一套vanilla配置,然后在终端把vim 命令绑定到这个Emacs。

这个项目是不是cutlass?我现在写代码全都不用智能补全,只有ag和dabbrev。光是语法高亮就有点卡了,加补全更卡了。

1 个赞

哈哈哈,是的!

我今年刚换的电脑,开lsp倒不怎么卡。

顺便请教下cutlass有什么更好一点的学习资料吗,官方文档很多细节感觉都没写,我目前除了看源码和提issue没想到什么太好的办法。