From 4cfc476ea63c256e6efcfa5c56573b4ff0617b5b Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Thu, 21 Aug 2025 17:27:21 +0300 Subject: [PATCH] Add testing to clangd compile hotkey --- .config/nvim/lsp/clangd.lua | 63 +++++++++++++++++++------------------ 1 file 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 + 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, command) + vim.api.nvim_set_current_win(orig_win) 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) 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', '', compile_project, { desc = '[H]eader and Source Switcher' }) + vim.keymap.set('n', '', compile_project('clear && ./build.sh krypton\n'), { desc = '[H]eader and Source Switcher' }) + vim.keymap.set('n', '', compile_project('clear && ./build.sh test\n'), { desc = '[H]eader and Source Switcher' }) vim.keymap.set('n', 'h', 'ClangdSwitchSourceHeader', { desc = '[H]eader and Source Switcher' }) vim.keymap.set('n', 'K', 'lua require("pretty_hover").hover()', { desc = 'Documentation Hover' }) -- TODO: do I need pretty_hover? maybe that's what causes issues?