问题标签 [clangd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
255 浏览

python - ycm 找不到位于另一个目录中的标头

我使用 youcompleteme 插件在 vim 中自动完成。但是,似乎我无法让它找到与我的源文件不在同一目录中的头文件。我有以下架构:

我的 .ycm_extra_conf.py 如下:

它取自https://github.com/JDevlieghere/dotfiles/blob/master/.vim/.ycm_extra_conf.py并稍作调整。

我在我的 vimrc 中设置了完成引擎:

ycm 调试信息:

在客户端日志文件中:

我查阅了这个这个这个问题,以及 ycm 文档,但我仍然无法找到解决方案。

0 投票
0 回答
188 浏览

c++ - 如何为 Netbeans 12.1 设置 clangd

如何为 netbeans 12.1 设置 clangd,因为我在网上找不到任何关于使用 netbeans 进行设置的信息

0 投票
0 回答
485 浏览

c++ - 如何让 clangd 完成器与 Unrealengine-4 一起工作

所以我一直在努力学习 unrealengine4 并想用 vim 作为我的编辑器。作为一个自动补全引擎,我想将 CoC 与 clangd 一起使用。经过一番摆弄以获得我的 compile_commands.json 几乎一切都按预期工作。但是我在打开的每个文档中都会遇到以下两个错误。(只是为了澄清,当我使用 VSCode 时,如果我使用 clangd 完成引擎,我也会得到同样的错误)

  1. In included file: Exactly one of [UE_BUILD_DEBUG UE_BUILD_DEVELOPMENT UE_BUILD_TEST UE_BUILD_SHIPPING] should be defined to be 1[clang: pp_hash_error]
  2. Incomplete type 'UOpenDoor' named in nested name specifier[clang: incomplete_nested_name_spec](假设我打开一个名为 OpenDoor.cpp 的模块)

我能够追溯到 Unrealengine 构建工具的第一个错误,因为包含此错误定义的文件位于UnrealEngine/Engine/Source/Runtime/Core/Public/Misc/Build.h

该文件如下:

当我手动将选项更改UE_BUILD_DEVELOPMENT为 1 时,第一个错误将被稍后定义的所有其他错误替换。例如In included file: UBT should always define WITH_EDITOR to be 0 or 1

我怀疑问题是,我用错了 UBT,但我不知道如何正确使用它。

对于第二个错误,当我查看 UOpenDoor 定义的头文件时,它是:

我收到错误Variable has incomplete type 'class BUILDINGESCAPE_API' 因为我对 c++ 很陌生,所以我不知道从那里去哪里。

任何帮助将不胜感激,因为这个问题已经让我发疯了好几个星期了......

非常感谢提前!

0 投票
1 回答
998 浏览

c++ - 如何使用 coc-clangd/coc-nvim 手动(不使用键绑定)搜索源代码中的符号?

我使用 neovim 和 coc-clangd 进行 C/C++ 编程。一切都很好,我可以通过将光标放在符号上并使用gr键绑定来调用jumpReferences操作,从而在我的所有项目文件中跳转定义和搜索符号的引用。

我想知道是否有任何选项可以通过简单地键入而不是gr在 coc-clangd 中使用键绑定来搜索符号?

实际上我可以通过以下命令使用 cscope 完成这项工作:

:cs find global <symbol-name>

但是使用 coc-clangd 会更好,因为索引过程更简单。所以我搜索并找到了这个链接,在那里我找到了jumpReferencescoc 动作。我玩了很多这个动作。例如我运行了以下命令:

:call CocAction('jumpReferences', <symbol-name>)

这不会导致任何错误,但会忽略<symbol-name>并仅提供对光标下符号的引用列表。

0 投票
1 回答
44 浏览

c++ - 什么 TAB 完成触发了 bits/stdc++.h 的 include 语句的插入?我该如何预防?

有时,经过几个小时的编码,我当然已经捣碎TAB了,我发现一些文件包含#include <bits/stdc++.h>(我不想使用),这意味着一些 TAB 完成触发了它。

因为我在长时间编码后发现了这一点(通常是在对更改进行限定时),所以我不知道哪个完成触发了那个。知道会是什么吗?再者,我能不能种“黑名单”呢?

0 投票
2 回答
3209 浏览

coc.nvim - Vim 警告:看起来你已经在 coc-settings.json 中配置了 clangd,你应该删除它以使用 coc-clangd

我最近开始在 Vim 上编写代码,虽然这并不容易,但值得。我正在努力找出在 KDevelop 或 VSCode 等 IDE 中理所当然的基本内容,尤其是在通过查找引用、自动完成等来浏览代码时。

幸运的是,我找到了 CoC(-clangd 等)。但是我遇到了一个我不太理解和调试的错误:

当然,我在这个文件中配置了 clangd 正是因为 coc-clangd 插件希望我喜欢这个。

我的coc-settings.json

自动完成(例如 printf)正常工作。那么这个警告是关于什么的呢?是我的配置错误还是我的设置中遗漏了什么?

提前致谢。

编辑:我曾经编辑过内部的“clangd”字符串,它应该是这样的:

非常感谢。

0 投票
0 回答
139 浏览

visual-studio-code - 是否可以从 clangd vscode 扩展中获取 cpp 文件的 AST?

我正在编写一个 vscode 扩展,它试图与 vscode-clangd 扩展进行通信。我需要来自 cpp 文件的 AST,更准确地说是在所选变量的文件中出现的类型,但是

  • 我不能调用clangd.ast命令,因为只有重启检查更新下载语言服务器命令,如果我运行代码
    let clangdExt = vscode.extensions.getExtension('llvm-vs-code-extensions.vscode-clangd');
    激活或者扩展本身
    console.log('Exports: ' + clangdExt?.exports);
    显示导出未定义。
  • 我找不到解析clangd输出通道的方法,它从活动的 vscode-clangd 扩展程序和 clangd 守护程序之间的通信输出lsp消息。
0 投票
0 回答
70 浏览

language-server-protocol - 如何手动请求 clangd 或实现 ClangdServer 以完成代码

我已经为 MS VS Code 安装了 clangd,一切正常。我想知道如何通过语言服务器协议手动请求 clangd?或者是否有能力以编程方式在我的代码中包含 ClangdServer,然后添加请求代码结构的标头?谢谢你。

0 投票
1 回答
1469 浏览

clang - 如何配置 clangd 以查找丢失的外部头文件?

我是 clang 工具的新手,我正在学习 c/c++。


我有一些基于使用其数据结构和构建系统(OpenFOAM)的框架的代码。我在主目录的文件夹中编译了框架的库。该框架有一堆目录,将所有类的头文件作为符号链接保存在其中。我使用neovimcoc扩展作为客户端,并使用clangd作为语言服务器。

问题是,在我的代码中,clangd 找到了一些头文件,而不是全部。这种行为的原因可能是什么?以及如何修复它或摆脱编辑器中的诊断。

我阅读了 clangd ( clangd --help) 提供的帮助,结果发现有一个标志 ,--header-insertion=<string>如果我将其设置<string>iwyu(对于,包括你使用的内容),我可以摆脱这样的警告。根据帮助,我可以通过config.yaml文件~/.config/clangd夹中的文件( linux中的xdg系统)配置clangd。问题是,我怎样才能编辑这个文件以获得上述标志的效果。我只是将该标志放在文件中,但没有任何改变。基本上我想要的是,要么配置 clangd 以递归方式搜索目录中的头文件,要么如果这不可能摆脱它无法找到的丢失头文件的诊断警告。

我不知道的另一件事是,如何重新启动服务器以重新读取配置。我应该终止当前进程并重新运行它吗?


随意编辑问题。

更多信息:

  • 操作系统:artixlinux
  • NVIM:v0.5.0-dev+1225-gbbdd00203
  • CLANGD:v11.1.0
0 投票
1 回答
136 浏览

clion - CLion:未找到 Clangd

在此处输入图像描述

我今天必须在 CLion 中设置可执行文件。现在自动更正不再起作用,我收到错误消息: Clangd is not found at D:\Programme\CLion\CIDR\clion\bin\clang\win\clangd.exe

Clangd 似乎在不同的文件夹中:D:\Programme\CLion\bin\clang\win\clangd.exe

如何解决此问题并恢复自动更正?