summaryrefslogtreecommitdiff
path: root/.config/nvim/lsp/clangd.lua
diff options
context:
space:
mode:
authorKyren223 <contact@kyren.codes>2025-08-21 17:27:21 +0300
committerKyren223 <contact@kyren.codes>2025-08-21 17:27:21 +0300
commit4cfc476ea63c256e6efcfa5c56573b4ff0617b5b (patch)
treef0725754361ccd92b88200360d2940eae7560c7c /.config/nvim/lsp/clangd.lua
parentce3fcccf09d0b53485b1ec7198b237446dcd1599 (diff)
Add testing to clangd compile hotkey
Diffstat (limited to '.config/nvim/lsp/clangd.lua')
-rw-r--r--.config/nvim/lsp/clangd.lua63
1 files changed, 33 insertions, 30 deletions
diff --git a/.config/nvim/lsp/clangd.lua b/.config/nvim/lsp/clangd.lua
index 66643a3..51de66a 100644
--- a/.config/nvim/lsp/clangd.lua
+++ b/.config/nvim/lsp/clangd.lua
@@ -69,39 +69,41 @@ local function find_build_buf()
return -1
end
-local function compile_project()
- local orig_win = vim.api.nvim_get_current_win()
- local build_buf = find_build_buf()
- local build_win = -1
+local function compile_project(command)
+ return function()
+ local orig_win = vim.api.nvim_get_current_win()
+ local build_buf = find_build_buf()
+ local build_win = -1
- if build_buf == -1 then
- vim.cmd('botright vsplit')
- -- vim.cmd('vertical resize ' .. math.floor(vim.o.columns * 0.395))
- vim.cmd('vertical resize ' .. math.floor(vim.o.columns * 0.46))
- build_win = vim.api.nvim_get_current_win()
- vim.cmd('terminal')
- build_buf = vim.api.nvim_get_current_buf()
- vim.api.nvim_buf_set_var(build_buf, 'is_build_term', true)
- vim.opt_local.bufhidden = 'delete'
- else
- vim.cmd("CompileClose")
- compile_project()
- return
- -- build_win = vim.fn.bufwinid(build_buf)
- -- if build_win == -1 then
- -- vim.cmd('botright vsplit')
- -- build_win = vim.api.nvim_get_current_win()
- -- vim.api.nvim_win_set_buf(build_win, build_buf)
- -- end
- end
+ if build_buf == -1 then
+ vim.cmd('botright vsplit')
+ -- vim.cmd('vertical resize ' .. math.floor(vim.o.columns * 0.395))
+ vim.cmd('vertical resize ' .. math.floor(vim.o.columns * 0.46))
+ build_win = vim.api.nvim_get_current_win()
+ vim.cmd('terminal')
+ build_buf = vim.api.nvim_get_current_buf()
+ vim.api.nvim_buf_set_var(build_buf, 'is_build_term', true)
+ vim.opt_local.bufhidden = 'delete'
+ else
+ vim.cmd('CompileClose')
+ compile_project(command)()
+ return
+ -- build_win = vim.fn.bufwinid(build_buf)
+ -- if build_win == -1 then
+ -- vim.cmd('botright vsplit')
+ -- build_win = vim.api.nvim_get_current_win()
+ -- vim.api.nvim_win_set_buf(build_win, build_buf)
+ -- end
+ end
- vim.api.nvim_set_current_win(build_win)
- local chan = vim.api.nvim_buf_get_var(build_buf, 'terminal_job_id')
- vim.api.nvim_chan_send(chan, 'clear && ./build.sh krypton\n')
- vim.api.nvim_set_current_win(orig_win)
+ vim.api.nvim_set_current_win(build_win)
+ local chan = vim.api.nvim_buf_get_var(build_buf, 'terminal_job_id')
+ vim.api.nvim_chan_send(chan, command)
+ vim.api.nvim_set_current_win(orig_win)
+ end
end
-vim.api.nvim_create_user_command("CompileClose", function()
+vim.api.nvim_create_user_command('CompileClose', function()
local build_buf = find_build_buf()
if build_buf ~= -1 then
local chan = vim.api.nvim_buf_get_var(build_buf, 'terminal_job_id')
@@ -153,7 +155,8 @@ return {
symbol_info()
end, { desc = 'Show symbol info' })
- vim.keymap.set('n', '<A-m>', compile_project, { desc = '[H]eader and Source Switcher' })
+ vim.keymap.set('n', '<A-m>', compile_project('clear && ./build.sh krypton\n'), { desc = '[H]eader and Source Switcher' })
+ vim.keymap.set('n', '<A-t>', compile_project('clear && ./build.sh test\n'), { desc = '[H]eader and Source Switcher' })
vim.keymap.set('n', '<leader>h', '<cmd>ClangdSwitchSourceHeader<cr>', { desc = '[H]eader and Source Switcher' })
vim.keymap.set('n', 'K', '<cmd>lua require("pretty_hover").hover()<cr>', { desc = 'Documentation Hover' })
-- TODO: do I need pretty_hover? maybe that's what causes issues?