From 4ecc5566b4f9aed0f192c15dc1a41e62b1d20d57 Mon Sep 17 00:00:00 2001 From: Arthur Khachaturov Date: Sun, 25 Aug 2024 07:52:04 +0300 Subject: [PATCH] begin nvim config cleanup --- .config/nvim/init.lua | 18 ++-- .config/nvim/lua/config/autocmd.lua | 26 +---- .config/nvim/lua/config/init.lua | 4 +- .config/nvim/lua/config/lsp/clangd.lua | 3 - .config/nvim/lua/config/lsp/init.lua | 94 +++++++++---------- .config/nvim/lua/config/lsp/lua_ls.lua | 8 +- .config/nvim/lua/config/mappings.lua | 13 +-- .config/nvim/lua/config/options.lua | 13 ++- .../nvim/lua/config/plugins/cmake-tools.lua | 74 --------------- .config/nvim/lua/config/plugins/comment.lua | 9 -- .config/nvim/lua/config/plugins/init.lua | 10 -- .config/nvim/lua/config/plugins/lualine.lua | 1 - .config/nvim/lua/config/plugins/navigator.lua | 8 -- .../lua/config/plugins/nvim-autopairs.lua | 3 - .config/nvim/lua/config/plugins/nvim-cmp.lua | 49 ---------- .config/nvim/lua/config/plugins/nvim-tree.lua | 15 --- .config/nvim/lua/config/plugins/telescope.lua | 30 ------ .../nvim/lua/config/plugins/treesitter.lua | 51 ---------- .config/nvim/lua/config/plugins/trouble.lua | 6 -- .config/nvim/lua/plugins/autopairs.lua | 7 ++ .config/nvim/lua/plugins/cmp.lua | 59 ++++++++++++ .config/nvim/lua/plugins/comment.lua | 12 +++ .config/nvim/lua/plugins/indent-blankline.lua | 5 - .config/nvim/lua/plugins/init.lua | 40 ++++---- .config/nvim/lua/plugins/navigator.lua | 14 +++ .config/nvim/lua/plugins/nvim-autopairs.lua | 5 - .config/nvim/lua/plugins/nvim-cmp.lua | 14 --- .config/nvim/lua/plugins/nvim-lspconfig.lua | 11 --- .config/nvim/lua/plugins/nvim-tresitter.lua | 8 -- .config/nvim/lua/plugins/onedark.lua | 6 -- .config/nvim/lua/plugins/telescope.lua | 45 +++++++-- .config/nvim/lua/plugins/theme.lua | 42 +++++++++ .config/nvim/lua/plugins/tmux-nvim.lua | 3 - .config/nvim/lua/plugins/tree.lua | 26 +++++ .config/nvim/lua/plugins/treesitter.lua | 14 +++ .config/nvim/lua/utils/close_buffer.lua | 32 ++----- .config/nvim/lua/utils/lazy.lua | 24 ++--- 37 files changed, 326 insertions(+), 476 deletions(-) delete mode 100644 .config/nvim/lua/config/lsp/clangd.lua delete mode 100644 .config/nvim/lua/config/plugins/cmake-tools.lua delete mode 100644 .config/nvim/lua/config/plugins/comment.lua delete mode 100644 .config/nvim/lua/config/plugins/init.lua delete mode 100644 .config/nvim/lua/config/plugins/lualine.lua delete mode 100644 .config/nvim/lua/config/plugins/navigator.lua delete mode 100644 .config/nvim/lua/config/plugins/nvim-autopairs.lua delete mode 100644 .config/nvim/lua/config/plugins/nvim-cmp.lua delete mode 100644 .config/nvim/lua/config/plugins/nvim-tree.lua delete mode 100644 .config/nvim/lua/config/plugins/telescope.lua delete mode 100644 .config/nvim/lua/config/plugins/treesitter.lua delete mode 100644 .config/nvim/lua/config/plugins/trouble.lua create mode 100644 .config/nvim/lua/plugins/autopairs.lua create mode 100644 .config/nvim/lua/plugins/cmp.lua create mode 100644 .config/nvim/lua/plugins/comment.lua delete mode 100644 .config/nvim/lua/plugins/indent-blankline.lua create mode 100644 .config/nvim/lua/plugins/navigator.lua delete mode 100644 .config/nvim/lua/plugins/nvim-autopairs.lua delete mode 100644 .config/nvim/lua/plugins/nvim-cmp.lua delete mode 100644 .config/nvim/lua/plugins/nvim-lspconfig.lua delete mode 100644 .config/nvim/lua/plugins/nvim-tresitter.lua delete mode 100644 .config/nvim/lua/plugins/onedark.lua create mode 100644 .config/nvim/lua/plugins/theme.lua delete mode 100644 .config/nvim/lua/plugins/tmux-nvim.lua create mode 100644 .config/nvim/lua/plugins/tree.lua create mode 100644 .config/nvim/lua/plugins/treesitter.lua diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 2ffb9ff..91c83ce 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -4,16 +4,12 @@ vim.g.maplocalleader = ' ' vim.keymap.set({ 'n', 'v' }, '', '', { silent = true }) -- Load modules -if vim.g.vscode then - require("config.mappings") -else - require("utils.lazy").lazy_init() - require("lazy").setup("plugins", { +require("config") +require("utils.lazy").lazy_init() +require("lazy").setup("plugins", { change_detection = { - enabled = false, - notify = false, + enabled = false, + notify = false, }, - }) - - require("config") -end +}) +require("config.lsp") diff --git a/.config/nvim/lua/config/autocmd.lua b/.config/nvim/lua/config/autocmd.lua index dcd5132..d699f92 100644 --- a/.config/nvim/lua/config/autocmd.lua +++ b/.config/nvim/lua/config/autocmd.lua @@ -1,24 +1,4 @@ --- Open NvimTree on startup -vim.api.nvim_create_autocmd({ "VimEnter" }, { - callback = function(data) - local real_file = vim.fn.filereadable(data.file) == 1 - local no_name = data.file == "" and vim.bo[data.buf].buftype == "" - local directory = vim.fn.isdirectory(data.file) == 1 - - if real_file or no_name then - require("nvim-tree.api").tree.toggle({ focus = false, find_file = true, }) - elseif directory then - vim.cmd.enew() - vim.cmd.cd(data.file) - require("nvim-tree.api").tree.open() - end - end +vim.api.nvim_create_autocmd('FileType', { + pattern = "go", + command = "setlocal tabstop=4", }) - --- Resotre cursor on exit --- vim.api.nvim_create_autocmd("VimLeave", { --- pattern = "*", --- callback = function() --- vim.o.guicursor = "n:ver20-blinkwait700-blinkoff400-blinkon250" --- end, --- }) diff --git a/.config/nvim/lua/config/init.lua b/.config/nvim/lua/config/init.lua index 78b609d..b8af3fe 100644 --- a/.config/nvim/lua/config/init.lua +++ b/.config/nvim/lua/config/init.lua @@ -1,5 +1,3 @@ -require("config.autocmd") -require("config.lsp") require("config.mappings") require("config.options") -require("config.plugins") +require("config.autocmd") diff --git a/.config/nvim/lua/config/lsp/clangd.lua b/.config/nvim/lua/config/lsp/clangd.lua deleted file mode 100644 index 7676737..0000000 --- a/.config/nvim/lua/config/lsp/clangd.lua +++ /dev/null @@ -1,3 +0,0 @@ -return { - autoformat = true, -} diff --git a/.config/nvim/lua/config/lsp/init.lua b/.config/nvim/lua/config/lsp/init.lua index 6a19f54..8b34a94 100644 --- a/.config/nvim/lua/config/lsp/init.lua +++ b/.config/nvim/lua/config/lsp/init.lua @@ -4,70 +4,70 @@ require('mason-lspconfig').setup() local mason_lspconfig = require('mason-lspconfig') local on_attach = function(_, bufnr) - local nmap = function(keys, func, desc) - if desc then - desc = 'LSP: ' .. desc + local nmap = function(keys, func, desc) + if desc then + desc = 'LSP: ' .. desc + end + + vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc }) end - vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc }) - end + nmap('rn', vim.lsp.buf.rename, '[R]e[n]ame') + nmap('ca', vim.lsp.buf.code_action, '[C]ode [A]ction') - nmap('rn', vim.lsp.buf.rename, '[R]e[n]ame') - nmap('ca', vim.lsp.buf.code_action, '[C]ode [A]ction') + nmap('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition') + nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences') + nmap('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation') + nmap('D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition') + nmap("i", vim.diagnostic.open_float) - nmap('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition') - nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences') - nmap('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation') - nmap('D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition') - nmap("i", vim.diagnostic.open_float) + nmap('ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols') + -- nmap('ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols') - nmap('ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols') - -- nmap('ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols') + -- See `:help K` for why this keymap + nmap('K', vim.lsp.buf.hover, 'Hover Documentation') + nmap('', vim.lsp.buf.signature_help, 'Signature Documentation') - -- See `:help K` for why this keymap - nmap('K', vim.lsp.buf.hover, 'Hover Documentation') - nmap('', vim.lsp.buf.signature_help, 'Signature Documentation') + -- Lesser used LSP functionality + nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') + -- nmap('wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder') + -- nmap('wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder') + -- nmap('wl', function() + -- print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + -- end, '[W]orkspace [L]ist Folders') + -- require("config.lsp.keybinds").init_keymap(bufnr) - -- Lesser used LSP functionality - nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') - -- nmap('wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder') - -- nmap('wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder') - -- nmap('wl', function() - -- print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - -- end, '[W]orkspace [L]ist Folders') - -- require("config.lsp.keybinds").init_keymap(bufnr) - - vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) - vim.lsp.buf.format() - end, { desc = 'Format current buffer with LSP' }) + vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) + vim.lsp.buf.format() + end, { desc = 'Format current buffer with LSP' }) end local servers = { - ansiblels = {}, - clangd = require("config.lsp.clangd"), - pyright = {}, - lua_ls = require("config.lsp.lua_ls"), - gopls = {}, - rust_analyzer = {}, - cmake = {}, - bashls = {}, - hls = {} + ansiblels = {}, + clangd = {}, + pyright = {}, + lua_ls = require("config.lsp.lua_ls"), + gopls = {}, + rust_analyzer = {}, + cmake = {}, + bashls = {}, + hls = {} } local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) mason_lspconfig.setup({ - ensure_installed = vim.tbl_keys(servers), + ensure_installed = vim.tbl_keys(servers), }) mason_lspconfig.setup_handlers { - function(server_name) - require('lspconfig')[server_name].setup { - capabilities = capabilities, - on_attach = on_attach, - settings = servers[server_name], - filetypes = (servers[server_name] or {}).filetypes, - } - end, + function(server_name) + require('lspconfig')[server_name].setup { + capabilities = capabilities, + on_attach = on_attach, + settings = servers[server_name], + filetypes = (servers[server_name] or {}).filetypes, + } + end, } diff --git a/.config/nvim/lua/config/lsp/lua_ls.lua b/.config/nvim/lua/config/lsp/lua_ls.lua index d106223..f42efb5 100644 --- a/.config/nvim/lua/config/lsp/lua_ls.lua +++ b/.config/nvim/lua/config/lsp/lua_ls.lua @@ -1,8 +1,8 @@ require('neodev').setup() return { - Lua = { - workspace = { checkThirdParty = false }, - telemetry = { enable = false }, - }, + Lua = { + workspace = { checkThirdParty = false }, + telemetry = { enable = false }, + }, } diff --git a/.config/nvim/lua/config/mappings.lua b/.config/nvim/lua/config/mappings.lua index 78aacc2..a710a01 100644 --- a/.config/nvim/lua/config/mappings.lua +++ b/.config/nvim/lua/config/mappings.lua @@ -6,6 +6,9 @@ map({ 'n', 'v' }, 'H', '') map({ 'n', 'v' }, 'L', '') map({ 'n', 'v' }, '', '') +-- Yes... +map({ 'n', 'v' }, 'q:', ':q') + -- Movement between buffers map({ 'n', 'v' }, '', ':bp', { silent = true }) map({ 'n', 'v' }, '', ':bn', { silent = true }) @@ -14,18 +17,8 @@ map({ 'n', 'v' }, '', ':bn', { silent = true }) map({ 'n', 'v' }, 'k', 'v:count == 0 ? "gk" : "k"', { expr = true, silent = true }) map({ 'n', 'v' }, 'j', 'v:count == 0 ? "gj" : "j"', { expr = true, silent = true }) --- Exit buffers/nvim with --- map('n', 'q', function() require('utils.close_buffer').close_buffer() end) --- map('n', '1', function() require('utils.close_buffer').close_buffer(true) end) --- map('n', 'Q', ':%bd | quit') --- map('n', '!', ':%bd! | quit!') --- map('n', 'w', ':write') --- -- map('n', 'W', function() vim.cmd.write(vim.fn.input("File: ")) end) --- map('n', 'e', ':e') - -- Duplicate leader feats to gradually move to map('n', '', function() require('utils.close_buffer').close_buffer() end) -map('n', '', function() require('utils.close_buffer').close_buffer(true) end) -- Copy and paste from clipboard map('n', 'y', '"+yy') diff --git a/.config/nvim/lua/config/options.lua b/.config/nvim/lua/config/options.lua index aa5cac8..9d3610b 100644 --- a/.config/nvim/lua/config/options.lua +++ b/.config/nvim/lua/config/options.lua @@ -9,12 +9,14 @@ vim.wo.relativenumber = true vim.o.mouse = 'a' -- Indentation -vim.o.breakindent = true -vim.o.tabstop = 4 +vim.o.tabstop = 8 +vim.o.expandtab = true vim.o.shiftwidth = 4 -vim.o.softtabstop = 0 -vim.o.expandtab = false +vim.o.autoindent = true vim.o.smartindent = true +vim.o.smarttab = true +vim.o.breakindent = true +vim.o.softtabstop = -1 -- Save undo history vim.o.undofile = true @@ -30,9 +32,6 @@ vim.wo.signcolumn = 'yes' vim.o.updatetime = 250 vim.o.timeoutlen = 300 --- Set completeopt to have a better completion experience -vim.o.completeopt = 'menuone,noselect' - -- Enable TrueColor vim.o.termguicolors = true diff --git a/.config/nvim/lua/config/plugins/cmake-tools.lua b/.config/nvim/lua/config/plugins/cmake-tools.lua deleted file mode 100644 index c8ab65b..0000000 --- a/.config/nvim/lua/config/plugins/cmake-tools.lua +++ /dev/null @@ -1,74 +0,0 @@ -require("cmake-tools").setup { - cmake_command = "cmake", -- this is used to specify cmake command path - cmake_regenerate_on_save = true, -- auto generate when save CMakeLists.txt - cmake_generate_options = { "-DCMAKE_EXPORT_COMPILE_COMMANDS=1" }, -- this will be passed when invoke `CMakeGenerate` - cmake_build_options = { "-j14" }, -- this will be passed when invoke `CMakeBuild` - -- support macro expansion: - -- ${kit} - -- ${kitGenerator} - -- ${variant:xx} - cmake_build_directory = "cmake-build-${variant:buildType}", -- this is used to specify generate directory for cmake, allows macro expansion - 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 = "cpp", - type = "codelldb", - 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", -- "bottom", "top" - size = 10, - }, - overseer = { - new_task_opts = {}, -- 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 = {}, -- terminal executor uses the values in cmake_terminal - }, - }, - cmake_terminal = { - name = "terminal", - opts = { - 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 avialable - - -- Running Tasks - start_insert_in_launch_task = false, -- If you want to enter terminal with :startinsert upon using :CMakeRun - start_insert_in_other_tasks = false, -- If you want to enter terminal with :startinsert upon launching all other cmake tasks in the terminal. Generally set as false - focus_on_main_terminal = false, -- Focus on cmake terminal when cmake task is launched. Only used if executor is terminal. - focus_on_launch_terminal = true, -- Focus on cmake launch terminal when executable target in launched. - }, - }, - cmake_notifications = { - enabled = true, -- show cmake execution progress in nvim-notify - spinner = { "⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏" }, -- icons used for progress display - refresh_rate_ms = 100, -- how often to iterate icons - }, -} - --- Mappings -vim.keymap.set('n', 'b', ':CMakeBuild') -vim.keymap.set('n', 'c', ':CMakeClose') -vim.keymap.set('n', 'r', ':CMakeRun') -vim.keymap.set('n', 'G', ':CMakeGenerate') - diff --git a/.config/nvim/lua/config/plugins/comment.lua b/.config/nvim/lua/config/plugins/comment.lua deleted file mode 100644 index 23af015..0000000 --- a/.config/nvim/lua/config/plugins/comment.lua +++ /dev/null @@ -1,9 +0,0 @@ -local map = vim.keymap.set - -map({ 'n', 'i' }, '', require('Comment.api').toggle.linewise.current) - -map('v', '', function() - vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes('', true, false, true), 'nx', false) - require('Comment.api').toggle.linewise(vim.fn.visualmode()) - end -) diff --git a/.config/nvim/lua/config/plugins/init.lua b/.config/nvim/lua/config/plugins/init.lua deleted file mode 100644 index d5aeefa..0000000 --- a/.config/nvim/lua/config/plugins/init.lua +++ /dev/null @@ -1,10 +0,0 @@ -require('config.plugins.cmake-tools') -require('config.plugins.comment') -require('config.plugins.lualine') -require('config.plugins.nvim-autopairs') -require('config.plugins.nvim-cmp') -require('config.plugins.nvim-tree') -require('config.plugins.telescope') -require('config.plugins.treesitter') -require('config.plugins.navigator') -require('config.plugins.trouble') diff --git a/.config/nvim/lua/config/plugins/lualine.lua b/.config/nvim/lua/config/plugins/lualine.lua deleted file mode 100644 index 90e6db2..0000000 --- a/.config/nvim/lua/config/plugins/lualine.lua +++ /dev/null @@ -1 +0,0 @@ -require('lualine').setup() diff --git a/.config/nvim/lua/config/plugins/navigator.lua b/.config/nvim/lua/config/plugins/navigator.lua deleted file mode 100644 index 4f14053..0000000 --- a/.config/nvim/lua/config/plugins/navigator.lua +++ /dev/null @@ -1,8 +0,0 @@ -require('Navigator').setup() - -local map = vim.keymap.set - -map('n', '', function () require("Navigator").left() end) -map('n', '', function () require("Navigator").down() end) -map('n', '', function () require("Navigator").up() end) -map('n', '', function () require("Navigator").right() end) diff --git a/.config/nvim/lua/config/plugins/nvim-autopairs.lua b/.config/nvim/lua/config/plugins/nvim-autopairs.lua deleted file mode 100644 index 261f664..0000000 --- a/.config/nvim/lua/config/plugins/nvim-autopairs.lua +++ /dev/null @@ -1,3 +0,0 @@ -require('nvim-autopairs').setup({ - disable_filetype = { "TelescopePrompt" , "vim" }, -}) diff --git a/.config/nvim/lua/config/plugins/nvim-cmp.lua b/.config/nvim/lua/config/plugins/nvim-cmp.lua deleted file mode 100644 index 7f5b764..0000000 --- a/.config/nvim/lua/config/plugins/nvim-cmp.lua +++ /dev/null @@ -1,49 +0,0 @@ -local cmp = require 'cmp' -local luasnip = require 'luasnip' -require('luasnip.loaders.from_vscode').lazy_load() -luasnip.config.setup {} - -cmp.setup { - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - completion = { - completeopt = 'menu,menuone,noinsert' - }, - mapping = cmp.mapping.preset.insert { - [''] = cmp.mapping.select_next_item(), - [''] = cmp.mapping.select_prev_item(), - [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), - [''] = cmp.mapping.complete {}, - [''] = cmp.mapping.confirm { - behavior = cmp.ConfirmBehavior.Replace, - select = true, - }, - [''] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_locally_jumpable() then - luasnip.expand_or_jump() - else - fallback() - end - end, { 'i', 's' }), - [''] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.locally_jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end, { 'i', 's' }), - }, - sources = { - { name = 'nvim_lsp' }, - { name = 'luasnip' }, - }, -} - diff --git a/.config/nvim/lua/config/plugins/nvim-tree.lua b/.config/nvim/lua/config/plugins/nvim-tree.lua deleted file mode 100644 index bce4fae..0000000 --- a/.config/nvim/lua/config/plugins/nvim-tree.lua +++ /dev/null @@ -1,15 +0,0 @@ -vim.g.loaded_netrw = 1 -vim.g.loaded_netrwPlugin = 1 - -require("nvim-tree").setup({ - update_focused_file = { - enable = true, - update_root = false, - ignore_list = { "help" }, - }, - filters = { - custom = { '.git' }, - }, -}) - -vim.keymap.set('n', '', ':NvimTreeToggle', { silent=true }) diff --git a/.config/nvim/lua/config/plugins/telescope.lua b/.config/nvim/lua/config/plugins/telescope.lua deleted file mode 100644 index 145fe01..0000000 --- a/.config/nvim/lua/config/plugins/telescope.lua +++ /dev/null @@ -1,30 +0,0 @@ -require('telescope').setup { - defaults = { - mappings = { - i = { - [''] = false, - [''] = false, - }, - }, - }, -} - -pcall(require('telescope').load_extension, 'fzf') - -vim.keymap.set('n', '?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' }) -vim.keymap.set('n', '/', function() - require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { - winblend = 10, - previewer = false, - }) - -end, { desc = '[/] Fuzzily search in current buffer' }) - -vim.keymap.set('n', 'gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' }) -vim.keymap.set('n', 'sf', require('telescope.builtin').find_files, { desc = '[S]earch [F]iles' }) -vim.keymap.set('n', 'sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' }) -vim.keymap.set('n', 'sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' }) -vim.keymap.set('n', 'sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' }) -vim.keymap.set('n', 'sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' }) -vim.keymap.set('n', 'sr', require('telescope.builtin').resume, { desc = '[S]earch [R]esume' }) -vim.keymap.set('n', 'sm', require('telescope.builtin').treesitter) diff --git a/.config/nvim/lua/config/plugins/treesitter.lua b/.config/nvim/lua/config/plugins/treesitter.lua deleted file mode 100644 index 4a9193b..0000000 --- a/.config/nvim/lua/config/plugins/treesitter.lua +++ /dev/null @@ -1,51 +0,0 @@ -vim.defer_fn(function() - require('nvim-treesitter.configs').setup { - -- Add languages to be installed here that you want installed for treesitter - ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'javascript', 'typescript', 'vimdoc', 'vim', 'bash' }, - - -- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!) - auto_install = true, - - highlight = { enable = true }, - indent = { enable = true }, - incremental_selection = { - enable = true, - }, - textobjects = { - select = { - enable = true, - lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim - keymaps = { - -- You can use the capture groups defined in textobjects.scm - ['aa'] = '@parameter.outer', - ['ia'] = '@parameter.inner', - ['af'] = '@function.outer', - ['if'] = '@function.inner', - ['ac'] = '@class.outer', - ['ic'] = '@class.inner', - }, - }, - move = { - enable = true, - set_jumps = true, -- whether to set jumps in the jumplist - goto_next_start = { - [']m'] = '@function.outer', - [']]'] = '@class.outer', - }, - goto_next_end = { - [']M'] = '@function.outer', - [']['] = '@class.outer', - }, - goto_previous_start = { - ['[m'] = '@function.outer', - ['[['] = '@class.outer', - }, - goto_previous_end = { - ['[M'] = '@function.outer', - ['[]'] = '@class.outer', - }, - }, - swap = { enable = false, }, - }, - } -end, 0) diff --git a/.config/nvim/lua/config/plugins/trouble.lua b/.config/nvim/lua/config/plugins/trouble.lua deleted file mode 100644 index a4e5c5b..0000000 --- a/.config/nvim/lua/config/plugins/trouble.lua +++ /dev/null @@ -1,6 +0,0 @@ -vim.keymap.set("n", "xx", function() require("trouble").toggle() end) -vim.keymap.set("n", "xw", function() require("trouble").toggle("workspace_diagnostics") end) -vim.keymap.set("n", "xd", function() require("trouble").toggle("document_diagnostics") end) -vim.keymap.set("n", "xq", function() require("trouble").toggle("quickfix") end) -vim.keymap.set("n", "xl", function() require("trouble").toggle("loclist") end) -vim.keymap.set("n", "gR", function() require("trouble").toggle("lsp_references") end) diff --git a/.config/nvim/lua/plugins/autopairs.lua b/.config/nvim/lua/plugins/autopairs.lua new file mode 100644 index 0000000..37a11bf --- /dev/null +++ b/.config/nvim/lua/plugins/autopairs.lua @@ -0,0 +1,7 @@ +return { + 'windwp/nvim-autopairs', + event = 'InsertEnter', + opts = { + disable_filetype = { "TelescopePrompt", "vim" }, + }, +} diff --git a/.config/nvim/lua/plugins/cmp.lua b/.config/nvim/lua/plugins/cmp.lua new file mode 100644 index 0000000..b9edf60 --- /dev/null +++ b/.config/nvim/lua/plugins/cmp.lua @@ -0,0 +1,59 @@ +return { + 'hrsh7th/nvim-cmp', + + dependencies = { + 'hrsh7th/cmp-nvim-lsp', + 'hrsh7th/cmp-buffer', + 'onsails/lspkind.nvim' + }, + + config = function() + local cmp = require('cmp') + local lspkind = require('lspkind') + cmp.setup({ + completion = { + completeopt = 'menu,menuone,noinsert' + }, + + mapping = cmp.mapping.preset.insert { + [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping.select_prev_item(), + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete {}, + [''] = cmp.mapping.confirm { select = true }, + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + else + fallback() + end + end, { 'i', 's' }), + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + else + fallback() + end + end, { 'i', 's' }), + }, + + sources = { + { name = 'nvim_lsp' }, + { name = 'buffer' }, + }, + + --- @diagnostic disable-next-line: missing-fields + formatting = { + format = lspkind.cmp_format({ + mode = 'symbol_text', + show_labelDetails = true, + menu = ({ + buffer = "[Buffer]", + nvim_lsp = "[LSP]", + }) + }) + } + }) + end +} diff --git a/.config/nvim/lua/plugins/comment.lua b/.config/nvim/lua/plugins/comment.lua new file mode 100644 index 0000000..b0041b9 --- /dev/null +++ b/.config/nvim/lua/plugins/comment.lua @@ -0,0 +1,12 @@ +return { + 'numToStr/Comment.nvim', + opts = {}, + config = function() + vim.keymap.set({ 'n', 'i' }, '', require('Comment.api').toggle.linewise.current) + vim.keymap.set('v', '', function() + vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes('', true, false, true), 'nx', false) + require('Comment.api').toggle.linewise(vim.fn.visualmode()) + end + ) + end +} diff --git a/.config/nvim/lua/plugins/indent-blankline.lua b/.config/nvim/lua/plugins/indent-blankline.lua deleted file mode 100644 index e445b28..0000000 --- a/.config/nvim/lua/plugins/indent-blankline.lua +++ /dev/null @@ -1,5 +0,0 @@ -return { - 'lukas-reineke/indent-blankline.nvim', - main = 'ibl', - opts = {}, -} diff --git a/.config/nvim/lua/plugins/init.lua b/.config/nvim/lua/plugins/init.lua index 219a16d..d198f1f 100644 --- a/.config/nvim/lua/plugins/init.lua +++ b/.config/nvim/lua/plugins/init.lua @@ -1,20 +1,24 @@ return { - 'Civitasv/cmake-tools.nvim', - 'averms/black-nvim', - 'numToStr/Navigator.nvim', - 'nvim-lualine/lualine.nvim', - 'nvim-tree/nvim-tree.lua', - 'nvim-tree/nvim-web-devicons', - 'rcarriga/nvim-notify', - 'tmux-plugins/vim-tmux', - 'tpope/vim-fugitive', - 'tpope/vim-rhubarb', - 'tpope/vim-sleuth', - 'tpope/vim-surround', - 'nvim-treesitter/nvim-treesitter-context', - { 'akinsho/bufferline.nvim', config = {} }, - { 'ethanholz/nvim-lastplace', config = {} }, - { 'numToStr/Comment.nvim', opts = {} }, - { 'wakatime/vim-wakatime', event = 'VeryLazy' }, - { "folke/trouble.nvim", dependencies = { "nvim-tree/nvim-web-devicons" }, opts = { }, } + 'rcarriga/nvim-notify', + { 'kylechui/nvim-surround', version = '*', event = 'VeryLazy', opts = {} }, + { 'akinsho/bufferline.nvim', config = {} }, + { 'ethanholz/nvim-lastplace', config = {} }, + { 'norcalli/nvim-colorizer.lua', opts = {}, config = function () + require('colorizer').setup() + end }, + { 'nvim-treesitter/nvim-treesitter-context', dependencies = { 'nvim-treesitter/nvim-treesitter' }}, + { 'wakatime/vim-wakatime', event = 'VeryLazy' }, + + { 'lukas-reineke/indent-blankline.nvim', + main = 'ibl', + opts = {}, + dependencies = { 'olimorris/onedarkpro.nvim' } + }, + + { 'neovim/nvim-lspconfig', dependencies = { + 'folke/neodev.nvim', + 'williamboman/mason-lspconfig.nvim', + 'williamboman/mason.nvim', + { 'j-hui/fidget.nvim', opts = {} }, + }}, } diff --git a/.config/nvim/lua/plugins/navigator.lua b/.config/nvim/lua/plugins/navigator.lua new file mode 100644 index 0000000..18d125c --- /dev/null +++ b/.config/nvim/lua/plugins/navigator.lua @@ -0,0 +1,14 @@ +return { + 'numToStr/Navigator.nvim', + config = function() + require('Navigator').setup({ + disable_on_zoom = true + }) + local map = vim.keymap.set + + map('n', '', function() require("Navigator").left() end) + map('n', '', function() require("Navigator").down() end) + map('n', '', function() require("Navigator").up() end) + map('n', '', function() require("Navigator").right() end) + end +} diff --git a/.config/nvim/lua/plugins/nvim-autopairs.lua b/.config/nvim/lua/plugins/nvim-autopairs.lua deleted file mode 100644 index 4785b2a..0000000 --- a/.config/nvim/lua/plugins/nvim-autopairs.lua +++ /dev/null @@ -1,5 +0,0 @@ -return { - 'windwp/nvim-autopairs', - event = "InsertEnter", - opts = {} -} diff --git a/.config/nvim/lua/plugins/nvim-cmp.lua b/.config/nvim/lua/plugins/nvim-cmp.lua deleted file mode 100644 index 4bd8962..0000000 --- a/.config/nvim/lua/plugins/nvim-cmp.lua +++ /dev/null @@ -1,14 +0,0 @@ -return { - 'hrsh7th/nvim-cmp', - dependencies = { - -- Snippet Engine & its associated nvim-cmp source - 'L3MON4D3/LuaSnip', - 'saadparwaiz1/cmp_luasnip', - - -- Adds LSP completion capabilities - 'hrsh7th/cmp-nvim-lsp', - - -- Adds a number of user-friendly snippets - 'rafamadriz/friendly-snippets', - }, -} diff --git a/.config/nvim/lua/plugins/nvim-lspconfig.lua b/.config/nvim/lua/plugins/nvim-lspconfig.lua deleted file mode 100644 index 8b84ac5..0000000 --- a/.config/nvim/lua/plugins/nvim-lspconfig.lua +++ /dev/null @@ -1,11 +0,0 @@ -return { - 'neovim/nvim-lspconfig', - dependencies = { - 'williamboman/mason.nvim', - 'williamboman/mason-lspconfig.nvim', - - { 'j-hui/fidget.nvim', opts = {} }, - - 'folke/neodev.nvim', - }, -} diff --git a/.config/nvim/lua/plugins/nvim-tresitter.lua b/.config/nvim/lua/plugins/nvim-tresitter.lua deleted file mode 100644 index 789e36d..0000000 --- a/.config/nvim/lua/plugins/nvim-tresitter.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - -- Highlight, edit, and navigate code - 'nvim-treesitter/nvim-treesitter', - dependencies = { - 'nvim-treesitter/nvim-treesitter-textobjects', - }, - build = ':TSUpdate', -} diff --git a/.config/nvim/lua/plugins/onedark.lua b/.config/nvim/lua/plugins/onedark.lua deleted file mode 100644 index 7b19005..0000000 --- a/.config/nvim/lua/plugins/onedark.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - 'navarasu/onedark.nvim', - config = function() - vim.cmd.colorscheme 'onedark' - end, -} diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua index 067db6f..fbc1d13 100644 --- a/.config/nvim/lua/plugins/telescope.lua +++ b/.config/nvim/lua/plugins/telescope.lua @@ -1,8 +1,41 @@ return { - 'nvim-telescope/telescope.nvim', - branch = '0.1.x', - dependencies = { - 'nvim-lua/plenary.nvim', - { 'nvim-telescope/telescope-fzf-native.nvim', build = 'make', }, - }, + 'nvim-telescope/telescope.nvim', + branch = '0.1.x', + dependencies = { + 'nvim-lua/plenary.nvim', + { 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' }, + }, + + config = function() + require('telescope').setup { + defaults = { + mappings = { + i = { + [''] = false, + [''] = false, + }, + }, + }, + } + + pcall(require('telescope').load_extension, 'fzf') + + + vim.keymap.set('n', '/', function() + require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_ivy { + winblend = 10, + previewer = true, + }) + end) + + vim.keymap.set('n', '?', require('telescope.builtin').live_grep) + vim.keymap.set('n', 'of', require('telescope.builtin').oldfiles) + vim.keymap.set('n', 'af', require('telescope.builtin').git_files) + vim.keymap.set('n', 'sf', require('telescope.builtin').find_files) + vim.keymap.set('n', 'sh', require('telescope.builtin').help_tags) + vim.keymap.set('n', 'sw', require('telescope.builtin').grep_string) + vim.keymap.set('n', 'sd', require('telescope.builtin').diagnostics) + vim.keymap.set('n', 'sr', require('telescope.builtin').resume) + vim.keymap.set('n', 'sm', require('telescope.builtin').treesitter) + end } diff --git a/.config/nvim/lua/plugins/theme.lua b/.config/nvim/lua/plugins/theme.lua new file mode 100644 index 0000000..a6c2dee --- /dev/null +++ b/.config/nvim/lua/plugins/theme.lua @@ -0,0 +1,42 @@ +return { + 'navarasu/onedark.nvim', + config = function() + require('onedark').setup { + style = 'darker', + transparent = false, + term_colors = false, + ending_tildes = false, + cmp_itemkind_reverse = false, + + code_style = { + comments = 'italic', + keywords = 'none', + functions = 'none', + strings = 'none', + variables = 'none' + }, + + lualine = { + transparent = true, + }, + + colors = { + bg0 = "#101010", + bg1 = "#1a1a1a", + bg2 = "#151515", + bg3 = "#242424", + bg_d = "#101010", + fg = "#c6c6c6", + }, + highlights = {}, + + diagnostics = { + darker = true, + undercurl = true, + background = true, + }, + } + vim.o.termguicolors = true + vim.cmd.colorscheme 'onedark' + end, +} diff --git a/.config/nvim/lua/plugins/tmux-nvim.lua b/.config/nvim/lua/plugins/tmux-nvim.lua deleted file mode 100644 index 17c0688..0000000 --- a/.config/nvim/lua/plugins/tmux-nvim.lua +++ /dev/null @@ -1,3 +0,0 @@ -return { - "numToStr/Navigator.nvim", -} diff --git a/.config/nvim/lua/plugins/tree.lua b/.config/nvim/lua/plugins/tree.lua new file mode 100644 index 0000000..e02b9f7 --- /dev/null +++ b/.config/nvim/lua/plugins/tree.lua @@ -0,0 +1,26 @@ +return { + 'nvim-tree/nvim-tree.lua', + dependencies = { 'nvim-tree/nvim-web-devicons' }, + config = function() + vim.g.loaded_netrw = 1 + vim.g.loaded_netrwPlugin = 1 + + require("nvim-tree").setup({ + update_focused_file = { + enable = true, + update_root = false, + ignore_list = { "help" }, + }, + filters = { + custom = { '.git' }, + }, + actions = { + open_file = { + quit_on_open = true, + }, + }, + }) + + vim.keymap.set('n', 'Ā', ':NvimTreeToggle', { silent = true }) + end +} diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua new file mode 100644 index 0000000..83d0571 --- /dev/null +++ b/.config/nvim/lua/plugins/treesitter.lua @@ -0,0 +1,14 @@ +return { + 'nvim-treesitter/nvim-treesitter', + dependencies = { 'nvim-treesitter/nvim-treesitter-textobjects', }, + build = ':TSUpdate', + config = function() + vim.defer_fn(function() + require('nvim-treesitter.configs').setup({ + auto_install = true, + highlight = { enable = true }, + indent = { enable = true }, + }) + end, 0) + end +} diff --git a/.config/nvim/lua/utils/close_buffer.lua b/.config/nvim/lua/utils/close_buffer.lua index 96b0b5d..7bc0dbd 100644 --- a/.config/nvim/lua/utils/close_buffer.lua +++ b/.config/nvim/lua/utils/close_buffer.lua @@ -1,31 +1,15 @@ local M = { } -local function try_quit(command) - local success, errorMsg = pcall(vim.api.nvim_command, command) - if not success then - print("Failed to quit: " .. errorMsg) - end -end - function M.close_buffer(force) - local buf_cmd = "bd" - local quit_cmd = "qa" + if #vim.fn.filter(vim.fn.range(1, vim.fn.bufnr '$'), 'buflisted(v:val)') <= 1 then + vim.api.nvim_command("qa" .. (force and "!" or "")) + else + local tree = require("nvim-tree.api").tree - if force then - buf_cmd = "bd!" - quit_cmd = "qa!" - end - - local tree = require("nvim-tree.api").tree - local buffer_count = #vim.fn.filter(vim.fn.range(1, vim.fn.bufnr '$'), 'buflisted(v:val)') - - if buffer_count == 1 or buffer_count == 0 then - try_quit(quit_cmd) - else - tree.toggle({ focus = false }) - try_quit(buf_cmd) - tree.toggle({ focus = false }) - end + tree.toggle({ focus = false }) + vim.api.nvim_command("bd" .. (force and "!" or "")) + tree.toggle({ focus = false }) + end end return M diff --git a/.config/nvim/lua/utils/lazy.lua b/.config/nvim/lua/utils/lazy.lua index b1a819b..9f88a4b 100644 --- a/.config/nvim/lua/utils/lazy.lua +++ b/.config/nvim/lua/utils/lazy.lua @@ -1,18 +1,18 @@ local M = { } function M.lazy_init() - local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' - if not vim.loop.fs_stat(lazypath) then - vim.fn.system { - 'git', - 'clone', - '--filter=blob:none', - 'https://github.com/folke/lazy.nvim.git', - '--branch=stable', -- latest stable release - lazypath, - } - end - vim.opt.rtp:prepend(lazypath) + local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' + if not vim.loop.fs_stat(lazypath) then + vim.fn.system { + 'git', + 'clone', + '--filter=blob:none', + 'https://github.com/folke/lazy.nvim.git', + '--branch=stable', + lazypath, + } + end + vim.opt.rtp:prepend(lazypath) end return M