Compare commits

..

No commits in common. "55f5da7db75043e186a90831cfda41bf5a0cb07b" and "2cd7d34375a20b8b6527a1730c38a026c29de13a" have entirely different histories.

2 changed files with 31 additions and 45 deletions

View File

@ -33,7 +33,6 @@ local kanagawa = {
vim.cmd.highlight('MsgSeparator', 'guifg=' .. dragon.ui.bg_m3, 'guibg=' .. dragon.ui.bg_m3) vim.cmd.highlight('MsgSeparator', 'guifg=' .. dragon.ui.bg_m3, 'guibg=' .. dragon.ui.bg_m3)
vim.cmd.highligh('TreesitterContext', 'guibg=' .. dragon.ui.bg_gutter) vim.cmd.highligh('TreesitterContext', 'guibg=' .. dragon.ui.bg_gutter)
vim.cmd.highlight('link zshTodo Comment') vim.cmd.highlight('link zshTodo Comment')
vim.cmd.highlight('link ps1CommentTodo Comment')
end end
} }

View File

@ -21,58 +21,45 @@ function build.set_dir(dirname)
end end
build.dir = build_dir build.dir = build_dir
echo('Processing compile_commands.json with compdb ...', 'DiagnosticInfo')
local compile_commands = current_dir .. '/compile_commands.json' local compile_commands = current_dir .. '/compile_commands.json'
-- Post-process compile_commands.json with compdb as an async job to avoid
-- blocking the user interface
vim.fn.jobstart(
'compdb -p ' .. build.dir .. ' list > ' .. compile_commands, {
if vim.fn.executable('compdb') == 1 then -- Restart clangd language server
echo('Processing compile_commands.json with compdb ...', 'DiagnosticInfo') on_exit = function()
-- Post-process compile_commands.json with compdb as an async job to avoid
-- blocking the user interface
vim.fn.jobstart(
'compdb -p ' .. build.dir .. ' list > ' .. compile_commands, {
-- Restart clangd language server
on_exit = function()
-- This is a callback so doesn't run on the main thread which causes
-- issues for running commands, so schedule that on the main thread.
vim.schedule(function()
vim.cmd('LspRestart')
echo('Build directory selected: ' .. dirname, 'DiagnosticInfo')
end)
end,
-- Display any error messages to the user
on_stderr = function(_, output, _)
-- Remove any lines containing a compdb warning
local error = {}
local warning = 'WARNING:compdb'
for _, line in ipairs(output) do
if string.sub(line, 1, #warning) ~= warning then
table.insert(error, line)
end
end
-- Display the error message if there was one
if table.maxn(error) > 0 then
echo(vim.fn.join(error, '\n'), 'Error')
return
end
end,
stderr_buffered = true,
}
)
else
vim.uv.fs_copyfile(build_dir .. '/compile_commands.json', compile_commands, nil,
function()
-- This is a callback so doesn't run on the main thread which causes -- This is a callback so doesn't run on the main thread which causes
-- issues for running commands, so schedule that on the main thread. -- issues for running commands, so schedule that on the main thread.
vim.schedule(function() vim.schedule(function()
vim.cmd('LspRestart') vim.cmd('LspRestart')
echo('Build directory selected: ' .. dirname, 'DiagnosticInfo') echo('Build directory selected: ' .. dirname, 'DiagnosticInfo')
end) end)
end end,
)
end -- Display any error messages to the user
on_stderr = function(_, output, _)
-- Remove any lines containing a compdb warning
local error = {}
local warning = 'WARNING:compdb'
for _, line in ipairs(output) do
if string.sub(line, 1, #warning) ~= warning then
table.insert(error, line)
end
end
-- Display the error message if there was one
if table.maxn(error) > 0 then
echo(vim.fn.join(error, '\n'), 'Error')
return
end
end,
stderr_buffered = true,
}
)
end end
function build.select_dir(callback) function build.select_dir(callback)