-- nvim-autopairs require("nvim-autopairs").setup() -- gitsigns require("gitsigns").setup() require'treesitter-context'.setup{ enable = true, -- Enable this plugin (Can be enabled/disabled later via commands) multiwindow = false, -- Enable multiwindow support. max_lines = 0, -- How many lines the window should span. Values <= 0 mean no limit. min_window_height = 0, -- Minimum editor window height to enable context. Values <= 0 mean no limit. line_numbers = true, multiline_threshold = 20, -- Maximum number of lines to show for a single context trim_scope = 'outer', -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer' mode = 'cursor', -- Line used to calculate context. Choices: 'cursor', 'topline' separator = nil, zindex = 20, -- The Z-index of the context window on_attach = nil, -- (fun(buf: integer): boolean) return false to disable attaching } -- Tree sitter require("nvim-treesitter.configs").setup({ ensure_installed = { "c", "cpp", "go", "lua", "markdown", "python", "rust", "tsx", "typescript", "vim" }, highlight = { enable = true, }, indent = { enable = true, }, context_commentstring = { enable = true }, playground = { enable = true }, query_linter = { enable = true }, locals = { enable = true }, }) -- Telescope local actions = require("telescope.actions") local previewers = require("telescope.previewers") local builtin = require("telescope.builtin") require("telescope").setup({ defaults = { vimgrep_arguments = { "rg", "--color=never", "--no-heading", "--with-filename", "--line-number", "--column", "--smart-case", }, }, }) require("telescope").load_extension("fzf") -- Disable underline vim.diagnostic.config({ virtual_text = true, underline = false, }) require('neogen').setup {} vim.keymap.set('n', 'ne', ':lua require("neogen").generate()', { desc = '[G]enerate [D]ocumentation' }) -- Key bindings -- common lsp vim.api.nvim_set_keymap("n", "gD", "lua vim.lsp.buf.declaration()", { silent = true }) vim.api.nvim_set_keymap("n", "gd", "lua vim.lsp.buf.definition()", { silent = true }) vim.keymap.set("n", "gr", "Telescope lsp_references", { silent = true }) vim.api.nvim_set_keymap("n", "K", "lua vim.lsp.buf.hover()", { silent = true }) vim.api.nvim_set_keymap("n", "gi", "lua vim.lsp.buf.implementation()", { silent = true }) vim.api.nvim_set_keymap("n", "k", "lua vim.lsp.buf.signature_help()", { silent = true }) vim.api.nvim_set_keymap("n", "wa", "lua vim.lsp.buf.add_workspace_folder()", { silent = true }) vim.api.nvim_set_keymap("n", "wr", "lua vim.lsp.buf.remove_workspace_folder()", { silent = true }) vim.api.nvim_set_keymap("n", "t", "lua vim.lsp.buf.format()", { silent = true }) vim.api.nvim_set_keymap( "n", "wl", "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", { silent = true } ) vim.api.nvim_set_keymap("n", "D", "lua vim.lsp.buf.type_definition()", { silent = true }) vim.api.nvim_set_keymap("n", "rn", "lua vim.lsp.buf.rename()", { silent = true }) vim.api.nvim_set_keymap("n", "ca", "lua vim.lsp.buf.code_action()", { silent = true }) vim.api.nvim_set_keymap("n", "e", "lua vim.diagnostic.open_float()", { silent = true }) vim.api.nvim_set_keymap("n", "[d", "lua vim.diagnostic.goto_prev()", { silent = true }) vim.api.nvim_set_keymap("n", "]d", "lua vim.diagnostic.goto_next()", { silent = true })