网站维护升级,12306网站哪个公司做的,网络广告实施计划怎么写,大庆门户网站1 背景
尝试使用neovim开发stm32#xff0c;使用clangd作为LSP提供代码补全等功能。
2 思路 使用stm32cubeMX生成一个基于makefile的stm32工程。 使用bear或compiledb基于makefile生成compile_commands.json文件。 为clangd配置--query-driver选项#xff0c;使其使用arm…1 背景
尝试使用neovim开发stm32使用clangd作为LSP提供代码补全等功能。
2 思路 使用stm32cubeMX生成一个基于makefile的stm32工程。 使用bear或compiledb基于makefile生成compile_commands.json文件。 为clangd配置--query-driver选项使其使用arm-none-eabi-gcc编译器的相关库文件进行代码补全。 由于--query-driver选项是直接传递给clangd可执行文件的参数无法在当前目录下的clangd配置文件如.clangd中进行配置。 如果你的neovim的LSP基于coc.nvim进行配置则该参数可以在coc-settings.json中进行配置比较方便。 如果你的neovim的LSP基于nvim-lspconfig进行配置则该参数需要在nvim-lspconfig插件初始化clangd时传入。需要修改lua配置文件比较麻烦。本文针对此情形提出一种解决方案。 3 解决方案
启用neovim的exrc特性允许neovim从当前目录下的.nvim.lua、.nvimrc或.exrc文件中读取局部的配置。使得开发者能够针对不同项目灵活配置LSP、DAP等避免频繁修改全局的neovim配置。在项目目录中创建.nvim.lua文件在该文件中重新配置clangd并传入--query-driver参数。
4 具体做法 在neovim配置中添加set exrc(vimscript)或vim.o.exrc true(lua)。 在项目目录中创建.nvim.lua文件。 在.nvim.lua文件中写入如下内容
require(lspconfig).clangd.setup({cmd {clangd,--query-driver*arm-none-eabi*,-- NOTE在Windows下使用如下绝对路径时反而无效-- --query-driver${path_to_compiler}\\gcc-arm-none-eabi\\12.2.rel1\\bin\\arm-none-eabi*,},filetypes { c, cpp, objc, objcpp, cuda, proto },
})