cmake - 基于neovim 0.5的LSP配置

首先,使用ChristianChiarulli大神的neovim0.5的配置,基本全部基于Lua。
GitHub - ChristianChiarulli/LunarVim: A Neovim config made with sane defaults

這套配置已經(jīng)搭建了完整的框架,但是需要的LSP server需要自己安裝,安裝也很簡(jiǎn)單,直接vim命令行:LspInstall <language-name>即可,比如此處我們需要的是cmake,那就是:LspInstall cmake

安裝完成之后,再加入一點(diǎn)配置信息。首先是cmake啟動(dòng)文件,即cmake-ls.lua,放置在相應(yīng)的文件夾下,如下(其實(shí)文件名可以隨便?。?br>

cmake-ls.lua文件放置位置

一個(gè)簡(jiǎn)單的cmake-ls.lua如下(注意,cmd字段是必填的,這是告訴系統(tǒng)對(duì)應(yīng)的程序在哪條路徑下,DATA_PATH是在根部init.lua中進(jìn)行定義的):

cmake-ls.lua

隨后,再在根部init.lua中加入一行require 'lsp.cmake-ls'即可

init.lua

然后就可以愉快的自動(dòng)補(bǔ)全啦!


效果呈現(xiàn)

最后,對(duì)于C++工程項(xiàng)目而言,因?yàn)榘鄠€(gè)文件,因此需要告訴clangd這個(gè)項(xiàng)目是如何構(gòu)建(build)的。對(duì)于cmake-based的工程而言,這很簡(jiǎn)單,只需要在執(zhí)行cmake的時(shí)候,加上-DCMAKE_EXPORT_COMPILE_COMMANDS=1這個(gè)flag就可以,例如:cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -S . -B build,那么,一個(gè)compile_commands.json文件就會(huì)生成在build文件夾中。之后,再在工程根目錄下創(chuàng)建一個(gè)軟鏈接即可:ln -s build/compile_commands.json .即可。這樣一來(lái),clangd就知道這個(gè)工程是如何進(jìn)行構(gòu)建的,就可以更好的執(zhí)行g(shù)d,gr等操作。

  • 其實(shí),如果不想寫(xiě)了完整的CMakeLists.txt之后再實(shí)現(xiàn)vim的跳轉(zhuǎn)的話,可以事先配置一個(gè)環(huán)境變量CPLUS_INCLUDE_PATH,加入需要搜索的路徑,然后export CPLUS_INCLUDE_PATH,vim(clangd)就知道需要在哪里搜索頭文件了。

其他的語(yǔ)言也是一樣的。Now enjoy it!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容