获取包含路径以使用Neovim和LSP-zero/Clangd

bwitn5fc  于 2023-02-07  发布在  其他
关注(0)|答案(2)|浏览(281)

我目前正在学习计算机工程,并采取嵌入式系统类,我的问题是,我们使用自定义库,然后编译它在旧版本的代码战士。

如何使用nvim为lsp创建包含路径

当我不是在本地编译代码,而是稍后使用旧IDE编译时,我想知道如何使用nvim为我的lsp创建include路径
任何智慧都会被赞赏。
注意:在课堂上,我们被要求使用一个外部编辑器,旧版本的代码战士是非常糟糕的,它是用于编译我们的微控制器,但不能用于编写代码。

我做过的事

  • 我尝试通过复制路径位置的vscode配置来使用compile_commands. json
  • 我试过用.clangd文件-我...
  • 4.我试过其他方法,但到目前为止没有成功

总之,我跳着寻找一个解决方案,并已倾注了入门页面和堆栈溢出几个小时,尝试不同的方法无济于事。

yqlxgs2m

yqlxgs2m1#

最简单的方法可能是使用.clangd文件,根据注解中的路径,.clangd文件应该如下所示:

CompileFlags:
  Add: -I/home/bjc1269/Documents/github/libraries/lib/hc12c/include

我在你的评论中看到的.clangd文件中 * 不 * 工作的几件事是:

  • 变量替换,如${workspaceFolder}。这是VSCode的一项功能,适用于某些VSCode设置,如"clangd.arguments",但在.clangd文件中不受支持,因为.clangd文件与编辑器无关(例如,它适用于没有“工作区”概念的编辑器)。
  • 将您的主目录引用为~。将~扩展为/home/<username>是shell的一项功能。在.clangd中指定的命令行参数直接传递给编译器,而不经过shell处理,因此~将不起作用。
  • **这样的全局变量。老实说,我甚至不确定在指定include目录的上下文中,它的语义是什么。
  • -I的参数 * 内的方括号。方括号可能作为YAML语法出现在.clangd文件中,用于在列表中指定多个值,例如,您可能具有:但是如果你写-I=[/path/to/directory],方括号会被原封不动地传递给编译器,编译器不理解这种语法。
i34xakig

i34xakig2#

首先:欢迎来到本网站!:D
我建议使用bear,你只需用build-command调用它,clangd LSP就会自动读取includes。

相关问题