DAP(調(diào)試適配器協(xié)議)
nvim-dap是Neovim的調(diào)試適配器協(xié)議客戶端實現(xiàn)。 nvim-dap允許您:
- 啟動應(yīng)用程序進行調(diào)試
- 附加到正在運行的應(yīng)用程序并調(diào)試它們
- 設(shè)置斷點并逐步執(zhí)行代碼
- 檢查應(yīng)用程序的狀態(tài)
安裝
- 像任何其他 Neovim 插件一樣安裝 nvim-dap:
git clone https://github.com/mfussenegger/nvim-dap.git ~/.config/nvim/pack/plugins/start/nvim-dap-
vim-plug:
Plug 'mfussenegger/nvim-dap' -
packer.nvim:
use 'mfussenegger/nvim-dap'
-
:helptags ALL使用或 生成 nvim-dap 的文檔:helptags <PATH-TO-PLUGIN/doc/>
支持的 Neovim 版本:
- 最新版本
- 0.8.0(推薦)
- 0.7.2
您需要為每種語言安裝和配置調(diào)試適配器。看
- :help dap.txt
- 調(diào)試適配器安裝wiki
:help dap-adapter:help dap-configuration
用法
典型的調(diào)試流程包括:
- 通過設(shè)置斷點
:lua require'dap'.toggle_breakpoint()。 - 啟動調(diào)試會話并通過
:lua require'dap'.continue(). - 通過
:lua require'dap'.step_over()和單步執(zhí)行代碼:lua require'dap'.step_into()。 - 通過內(nèi)置的 REPL 檢查狀態(tài):
:lua require'dap'.repl.open()或使用小部件 UI (:help dap-widgets)
請參閱: help dap.txt和.:help dap-mapping``:help dap-api
支持的語言
理論上,應(yīng)該支持存在調(diào)試適配器的所有語言。
Wiki 由社區(qū)維護。如果您的適配器工作尚未列出,請擴展 Wiki。
一些調(diào)試適配器具有特定于語言的擴展。建議在手動配置上使用它們,因為它們通常得到更好的維護。
如果 wiki 中有關(guān)調(diào)試適配器的說明不起作用,請考慮調(diào)試適配器可能在編寫說明后進行了更改。您可能需要閱讀調(diào)試適配器的發(fā)行說明或嘗試使用舊版本。如果您發(fā)現(xiàn)過時的示例,請更新 wiki。
目標
在 Neovim 中有一個基本的調(diào)試器。
-
可擴展性和兼作 DAP 客戶端庫。這允許其他插件擴展調(diào)試體驗。通過改進 UI 或使調(diào)試應(yīng)用程序的某些部分變得更容易。
- UI/UX 擴展的例子是nvim-dap-virtual-text和nvim-dap-ui
- 語言特定擴展的示例包括nvim-jdtls和nvim-dap-python
擴展
所有已知的擴展都列在Wiki中。wiki 由社區(qū)維護。如果您構(gòu)建了一個或發(fā)現(xiàn)了一個未列出的擴展,請?zhí)砑有碌臄U展。
非目標
調(diào)試適配器安裝超出范圍。重新發(fā)明包管理器不是編輯器插件的業(yè)務(wù)。使用您的系統(tǒng)包管理器。使用mason即可。
不會支持vim。請改用vimspector。
備選方案
特點
- 啟動調(diào)試適配器
- 附加到調(diào)試適配器
- 切換斷點
- 有條件的斷點
- 日志點
- 設(shè)置異常斷點
- 越過,踏入,走出
- 后退,反向繼續(xù)
- 重新開始
- 停止
- 暫停
- 評估表達式
- REPL(包括顯示線程、幀和范圍的命令)