feat(modules): port neovim module (NvChad + Archduino Lua assets) to Go
This commit is contained in:
10
internal/modules/neovim/assets/arduino.lua
Normal file
10
internal/modules/neovim/assets/arduino.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
return {
|
||||
{
|
||||
"stevearc/vim-arduino",
|
||||
ft = { "arduino", "cpp", "c" },
|
||||
config = function()
|
||||
vim.g.arduino_use_cli = 1
|
||||
vim.g.arduino_cli_path = "arduino-cli"
|
||||
end,
|
||||
},
|
||||
}
|
||||
8
internal/modules/neovim/assets/chadrc.lua.tmpl
Normal file
8
internal/modules/neovim/assets/chadrc.lua.tmpl
Normal file
@@ -0,0 +1,8 @@
|
||||
---@type ChadrcConfig
|
||||
local M = {}
|
||||
|
||||
M.base46 = {
|
||||
theme = "{{.NvChadTheme}}",
|
||||
}
|
||||
|
||||
return M
|
||||
10
internal/modules/neovim/assets/clangd.lua
Normal file
10
internal/modules/neovim/assets/clangd.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
return {
|
||||
cmd = {
|
||||
"clangd",
|
||||
"--background-index",
|
||||
"--clang-tidy",
|
||||
"--header-insertion=iwyu",
|
||||
"--completion-style=detailed",
|
||||
},
|
||||
filetypes = { "c", "cpp", "objc", "objcpp", "cuda", "arduino" },
|
||||
}
|
||||
57
internal/modules/neovim/assets/dap.lua
Normal file
57
internal/modules/neovim/assets/dap.lua
Normal file
@@ -0,0 +1,57 @@
|
||||
return {
|
||||
{
|
||||
"mfussenegger/nvim-dap",
|
||||
keys = { "<leader>d" },
|
||||
config = function()
|
||||
local dap = require("dap")
|
||||
|
||||
-- GDB remote adapter (connects to Renode's GDB server)
|
||||
dap.adapters.gdb_remote = {
|
||||
type = "executable",
|
||||
command = vim.fn.executable("arm-none-eabi-gdb") == 1
|
||||
and "arm-none-eabi-gdb"
|
||||
or "gdb-multiarch",
|
||||
args = { "-i", "dap" },
|
||||
}
|
||||
|
||||
-- Default debug configurations for Arduino/embedded
|
||||
dap.configurations.c = {
|
||||
{
|
||||
name = "Attach to Renode (GDB :3333)",
|
||||
type = "gdb_remote",
|
||||
request = "attach",
|
||||
target = "localhost:3333",
|
||||
cwd = "${workspaceFolder}",
|
||||
program = function()
|
||||
return vim.fn.input("ELF path: ", vim.fn.getcwd() .. "/build/", "file")
|
||||
end,
|
||||
},
|
||||
}
|
||||
dap.configurations.cpp = dap.configurations.c
|
||||
dap.configurations.arduino = dap.configurations.c
|
||||
|
||||
-- Breakpoint signs
|
||||
vim.fn.sign_define("DapBreakpoint", { text = "●", texthl = "DiagnosticError" })
|
||||
vim.fn.sign_define("DapStopped", { text = "▶", texthl = "DiagnosticOk", linehl = "DiffAdd" })
|
||||
end,
|
||||
},
|
||||
{
|
||||
"rcarriga/nvim-dap-ui",
|
||||
dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" },
|
||||
keys = { "<leader>du" },
|
||||
config = function()
|
||||
local dapui = require("dapui")
|
||||
dapui.setup()
|
||||
|
||||
-- Auto open/close UI on debug sessions
|
||||
local dap = require("dap")
|
||||
dap.listeners.after.event_initialized["dapui_config"] = function() dapui.open() end
|
||||
dap.listeners.before.event_terminated["dapui_config"] = function() dapui.close() end
|
||||
dap.listeners.before.event_exited["dapui_config"] = function() dapui.close() end
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-neotest/nvim-nio",
|
||||
lazy = true,
|
||||
},
|
||||
}
|
||||
2
internal/modules/neovim/assets/lspconfig.lua
Normal file
2
internal/modules/neovim/assets/lspconfig.lua
Normal file
@@ -0,0 +1,2 @@
|
||||
vim.lsp.enable("clangd")
|
||||
return {}
|
||||
20
internal/modules/neovim/assets/mappings.lua
Normal file
20
internal/modules/neovim/assets/mappings.lua
Normal file
@@ -0,0 +1,20 @@
|
||||
require "nvchad.mappings"
|
||||
|
||||
local map = vim.keymap.set
|
||||
|
||||
map("n", "<leader>ac", "<cmd>ArduinoChooseBoard<cr>", { desc = "Arduino Choose Board" })
|
||||
map("n", "<leader>ap", "<cmd>ArduinoChoosePort<cr>", { desc = "Arduino Choose Port" })
|
||||
map("n", "<leader>av", "<cmd>ArduinoVerify<cr>", { desc = "Arduino Verify (compile)" })
|
||||
map("n", "<leader>au", "<cmd>ArduinoUpload<cr>", { desc = "Arduino Upload" })
|
||||
map("n", "<leader>as", "<cmd>ArduinoSerial<cr>", { desc = "Arduino Serial Monitor" })
|
||||
map("n", "<leader>ai", "<cmd>ArduinoInfo<cr>", { desc = "Arduino Board Info" })
|
||||
map("n", "<leader>aw", "<cmd>!wokwi-cli .<cr>", { desc = "Arduino Wokwi Simulate" })
|
||||
|
||||
-- Debug (DAP)
|
||||
map("n", "<leader>ds", function() require("dap").continue() end, { desc = "Debug Start/Continue" })
|
||||
map("n", "<leader>db", function() require("dap").toggle_breakpoint() end, { desc = "Debug Toggle Breakpoint" })
|
||||
map("n", "<leader>dn", function() require("dap").step_over() end, { desc = "Debug Step Over" })
|
||||
map("n", "<leader>di", function() require("dap").step_into() end, { desc = "Debug Step Into" })
|
||||
map("n", "<leader>do", function() require("dap").step_out() end, { desc = "Debug Step Out" })
|
||||
map("n", "<leader>dx", function() require("dap").terminate() end, { desc = "Debug Terminate" })
|
||||
map("n", "<leader>du", function() require("dapui").toggle() end, { desc = "Debug UI Toggle" })
|
||||
Reference in New Issue
Block a user