local workspace_folder = vim.fn.getcwd() return { { "neovim/nvim-lspconfig", opts = { servers = { clangd = { cmd = { "clangd", "--background-index", "--clang-tidy", "--compile-commands-dir=" .. workspace_folder .. "/build", "--completion-style=detailed", "-experimental-modules-support", "--header-insertion=iwyu", }, }, }, }, }, { "lucaSartore/fastspell.nvim", config = function() local fastspell = require("fastspell") fastspell.setup({ cspell_json_file_path = workspace_folder .. "/cspell.json", }) vim.api.nvim_create_autocmd({ "TextChanged", "TextChangedI", "BufEnter", "WinScrolled" }, { callback = function(_) local first_line = vim.fn.line('w0') - 1 local last_line = vim.fn.line('w$') fastspell.sendSpellCheckRequest(first_line, last_line) end, }) end }, { "Civitasv/cmake-tools.nvim", opts = { cmake_compile_commands_options = { action = "copy", target = workspace_folder .. "/build", }, cmake_use_presets = true, }, }, { "nvim-neo-tree/neo-tree.nvim", opts = { filesystem = { filtered_items = { visible = false, hide_gitignored = true, }, }, nesting_rules = { ['tests_under_sources'] = { pattern = "(.*).cppm", files = { "%1.tests.cpp" } }, }, }, }, }