143 lines
7.3 KiB
Lua
143 lines
7.3 KiB
Lua
return {
|
|
'Civitasv/cmake-tools.nvim',
|
|
ft = { "cpp", "c", "cmake" },
|
|
config = function()
|
|
--let g:cmake_build_options = [ "-j10" ]
|
|
--
|
|
--let g:cmake_root_markers = ['.svn']
|
|
--
|
|
--
|
|
--let g:cmake_jump_on_error = 0 " We do not want to focus the console
|
|
--augroup vim-cmake-group
|
|
--autocmd User CMakeBuildFailed :cfirst
|
|
--augroup END
|
|
--
|
|
--augroup vim-cmake-group
|
|
--autocmd! User CMakeBuildSucceeded CMakeClose
|
|
--augroup END
|
|
|
|
require("cmake-tools").setup {
|
|
cmake_command = "cmake",
|
|
ctest_command = "ctest --verbose",
|
|
cmake_generate_options = { "-DCMAKE_EXPORT_COMPILE_COMMANDS=1" },
|
|
cmake_build_options = { "-j15" },
|
|
cmake_build_directory = "build",
|
|
cmake_soft_link_compile_commands = true, -- this will automatically make a soft link from compile commands file to project root dir
|
|
cmake_compile_commands_from_lsp = false, -- this will automatically set compile commands file location using lsp, to use it, please set `cmake_soft_link_compile_commands` to false
|
|
cmake_kits_path = nil, -- this is used to specify global cmake kits path, see CMakeKits for detailed usage
|
|
cmake_variants_message = {
|
|
short = { show = true }, -- whether to show short message
|
|
long = { show = true, max_length = 40 }, -- whether to show long message
|
|
},
|
|
cmake_dap_configuration = { -- debug settings for cmake
|
|
name = "cmake_tools",
|
|
type = "gdb",
|
|
request = "launch",
|
|
stopOnEntry = false,
|
|
runInTerminal = true,
|
|
console = "integratedTerminal",
|
|
},
|
|
cmake_executor = { -- executor to use
|
|
name = "quickfix", -- name of the executor
|
|
opts = {}, -- the options the executor will get, possible values depend on the executor type. See `default_opts` for possible values.
|
|
default_opts = { -- a list of default and possible values for executors
|
|
quickfix = {
|
|
show = "always", -- "always", "only_on_error"
|
|
position = "belowright", -- "vertical", "horizontal", "leftabove", "aboveleft", "rightbelow", "belowright", "topleft", "botright", use `:h vertical` for example to see help on them
|
|
size = 10,
|
|
encoding = "utf-8", -- if encoding is not "utf-8", it will be converted to "utf-8" using `vim.fn.iconv`
|
|
auto_close_when_success = true, -- typically, you can use it with the "always" option; it will auto-close the quickfix buffer if the execution is successful.
|
|
},
|
|
toggleterm = {
|
|
direction = "float", -- 'vertical' | 'horizontal' | 'tab' | 'float'
|
|
close_on_exit = false, -- whether close the terminal when exit
|
|
auto_scroll = true, -- whether auto scroll to the bottom
|
|
},
|
|
overseer = {
|
|
new_task_opts = {
|
|
strategy = {
|
|
"toggleterm",
|
|
direction = "horizontal",
|
|
autos_croll = true,
|
|
quit_on_exit = "success"
|
|
}
|
|
}, -- options to pass into the `overseer.new_task` command
|
|
on_new_task = function(task)
|
|
require("overseer").open(
|
|
{ enter = false, direction = "right" }
|
|
)
|
|
end, -- a function that gets overseer.Task when it is created, before calling `task:start`
|
|
},
|
|
terminal = {
|
|
name = "Main Terminal",
|
|
prefix_name = "[CMakeTools]: ", -- This must be included and must be unique, otherwise the terminals will not work. Do not use a simple spacebar " ", or any generic name
|
|
split_direction = "horizontal", -- "horizontal", "vertical"
|
|
split_size = 11,
|
|
|
|
-- Window handling
|
|
single_terminal_per_instance = true, -- Single viewport, multiple windows
|
|
single_terminal_per_tab = true, -- Single viewport per tab
|
|
keep_terminal_static_location = true, -- Static location of the viewport if available
|
|
|
|
-- Running Tasks
|
|
start_insert = false, -- If you want to enter terminal with :startinsert upon using :CMakeRun
|
|
focus = false, -- Focus on terminal when cmake task is launched.
|
|
do_not_add_newline = false, -- Do not hit enter on the command inserted when using :CMakeRun, allowing a chance to review or modify the command before hitting enter.
|
|
}, -- terminal executor uses the values in cmake_terminal
|
|
},
|
|
},
|
|
cmake_runner = { -- runner to use
|
|
name = "quickfix", -- name of the runner
|
|
opts = {}, -- the options the runner will get, possible values depend on the runner type. See `default_opts` for possible values.
|
|
default_opts = { -- a list of default and possible values for runners
|
|
quickfix = {
|
|
show = "always", -- "always", "only_on_error"
|
|
position = "belowright", -- "bottom", "top"
|
|
size = 10,
|
|
encoding = "utf-8",
|
|
auto_close_when_success = true, -- typically, you can use it with the "always" option; it will auto-close the quickfix buffer if the execution is successful.
|
|
},
|
|
toggleterm = {
|
|
direction = "float", -- 'vertical' | 'horizontal' | 'tab' | 'float'
|
|
close_on_exit = false, -- whether close the terminal when exit
|
|
auto_scroll = true, -- whether auto scroll to the bottom
|
|
},
|
|
overseer = {
|
|
new_task_opts = {
|
|
strategy = {
|
|
"quickfix",
|
|
direction = "horizontal",
|
|
autos_croll = true,
|
|
quit_on_exit = "success"
|
|
}
|
|
}, -- options to pass into the `overseer.new_task` command
|
|
on_new_task = function(task)
|
|
end, -- a function that gets overseer.Task when it is created, before calling `task:start`
|
|
},
|
|
terminal = {
|
|
name = "Main Terminal",
|
|
prefix_name = "[CMakeTools]: ", -- This must be included and must be unique, otherwise the terminals will not work. Do not use a simple spacebar " ", or any generic name
|
|
split_direction = "horizontal", -- "horizontal", "vertical"
|
|
split_size = 11,
|
|
|
|
-- Window handling
|
|
single_terminal_per_instance = true, -- Single viewport, multiple windows
|
|
single_terminal_per_tab = true, -- Single viewport per tab
|
|
keep_terminal_static_location = true, -- Static location of the viewport if available
|
|
|
|
-- Running Tasks
|
|
start_insert = false, -- If you want to enter terminal with :startinsert upon using :CMakeRun
|
|
focus = false, -- Focus on terminal when cmake task is launched.
|
|
do_not_add_newline = false, -- Do not hit enter on the command inserted when using :CMakeRun, allowing a chance to review or modify the command before hitting enter.
|
|
},
|
|
},
|
|
},
|
|
cmake_notifications = {
|
|
runner = { enabled = true },
|
|
executor = { enabled = true },
|
|
spinner = { "⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏" }, -- icons used for progress display
|
|
refresh_rate_ms = 100, -- how often to iterate icons
|
|
}, }
|
|
end
|
|
}
|