diff --git a/lua/autocmd.lua b/lua/autocmd.lua index 22743a2..8af95f2 100644 --- a/lua/autocmd.lua +++ b/lua/autocmd.lua @@ -1,4 +1,15 @@ -vim.api.nvim_create_autocmd({ 'BufEnter, BufWinEnter' }, { command = 'set colorcolumn=120,80,88', pattern = { '*.py', '*.pyi' } }) -vim.api.nvim_create_autocmd({ 'BufEnter, BufWinEnter' }, { command = 'set colorcolumn=80,100', pattern = { '*.rs' } }) -vim.api.nvim_create_autocmd({ 'BufEnter, BufWinEnter' }, { command = 'set splitright', pattern = { '*' } }) -vim.api.nvim_create_autocmd({ 'BufEnter, BufWinEnter' }, { command = 'set splitbelow', pattern = { '*' } }) +vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWinEnter' }, { command = 'set colorcolumn=79,80,88,120', pattern = { '*.py', '*.pyi' } }) +vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWinEnter' }, { command = 'set colorcolumn=80,100', pattern = { '*.rs' } }) +vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWinEnter' }, { command = 'set splitright', pattern = { '*' } }) +vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWinEnter' }, { command = 'set splitbelow', pattern = { '*' } }) + +-- [[ Highlight on yank ]] +-- See `:help vim.highlight.on_yank()` +local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true }) +vim.api.nvim_create_autocmd('TextYankPost', { + callback = function() + vim.highlight.on_yank() + end, + group = highlight_group, + pattern = '*', +}) diff --git a/lua/keymaps.lua b/lua/keymaps.lua index 2ba6ce3..0692eab 100644 --- a/lua/keymaps.lua +++ b/lua/keymaps.lua @@ -20,17 +20,6 @@ vim.keymap.set('n', 'N', 'Nzzzv', { noremap = true, silent = true }) vim.keymap.set('v', '', ":m '<-2gv=gv", { desc = 'Move selected lines up' }) vim.keymap.set('v', '', ":m '>+1gv=gv", { desc = 'Move selected lines down' }) --- [[ Highlight on yank ]] --- See `:help vim.highlight.on_yank()` -local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true }) -vim.api.nvim_create_autocmd('TextYankPost', { - callback = function() - vim.highlight.on_yank() - end, - group = highlight_group, - pattern = '*', -}) - -- Diagnostic keymaps vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) vim.keymap.set('n', ']d', vim.diagnostic.goto_next) @@ -39,3 +28,6 @@ vim.keymap.set('n', 'q', vim.diagnostic.setloclist) -- terminal vim.keymap.set('t', '', vim.api.nvim_replace_termcodes('', true, true, true), { desc = 'Escape terminal mode' }) + +-- disabling highlight +vim.keymap.set('n', 'hh', ':noh', { desc = 'No highlight search' }) diff --git a/lua/options.lua b/lua/options.lua index d621f84..7637187 100644 --- a/lua/options.lua +++ b/lua/options.lua @@ -2,8 +2,8 @@ -- See `:help vim.o` -- disable netrw --- vim.g.loaded_netrw = 1 --- vim.g.loaded_netrwPlugin = 1 +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 -- Set highlight on search vim.o.hlsearch = true @@ -14,9 +14,6 @@ vim.wo.number = true -- Make line numbers relative vim.wo.relativenumber = true --- Enable mouse mode -vim.o.mouse = 'a' - -- Enable break indent vim.o.breakindent = true diff --git a/lua/plugins/cmp.lua b/lua/plugins/completions.lua similarity index 82% rename from lua/plugins/cmp.lua rename to lua/plugins/completions.lua index 1223e67..0b26800 100644 --- a/lua/plugins/cmp.lua +++ b/lua/plugins/completions.lua @@ -1,4 +1,4 @@ -function leave_snippet() +function Leave_snippet() if ((vim.v.event.old_mode == 's' and vim.v.event.new_mode == 'n') or vim.v.event.old_mode == 'i') and require('luasnip').session.current_nodes[vim.api.nvim_get_current_buf()] @@ -9,7 +9,7 @@ function leave_snippet() end vim.api.nvim_command [[ - autocmd ModeChanged * lua leave_snippet() + autocmd ModeChanged * lua Leave_snippet() ]] vim.cmd 'highlight! link CmpPmenu Pmenu' @@ -44,19 +44,22 @@ return { 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.confirm { select = true }, + [''] = cmp.mapping.close(), [''] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() + elseif luasnip.locally_jumpable() then + luasnip.jump(1) else fallback() end @@ -64,7 +67,7 @@ return { [''] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() - elseif luasnip.jumpable(-1) then + elseif luasnip.locally_jumpable(-1) then luasnip.jump(-1) else fallback() diff --git a/lua/plugins/indent_blankline.lua b/lua/plugins/indent_blankline.lua index b75437d..908f03b 100644 --- a/lua/plugins/indent_blankline.lua +++ b/lua/plugins/indent_blankline.lua @@ -4,5 +4,5 @@ return { -- Enable `lukas-reineke/indent-blankline.nvim` -- See `:help indent_blankline.txt` main = 'ibl', - opts = {}, + opts = { scope = { show_start = false, show_end = false } }, } diff --git a/lua/plugins/leap.lua b/lua/plugins/leap.lua deleted file mode 100644 index e96d811..0000000 --- a/lua/plugins/leap.lua +++ /dev/null @@ -1,7 +0,0 @@ -return { - 'ggandor/leap.nvim', - dependencies = { 'tpope/vim-repeat' }, - config = function() - require('leap').add_default_mappings() - end, -} diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 80ef570..3481298 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -52,7 +52,7 @@ return { 'simrat39/rust-tools.nvim', -- Useful status updates for LSP - { 'j-hui/fidget.nvim', opts = {}, tag='legacy' }, + { 'j-hui/fidget.nvim', opts = {} }, -- Additional lua configuration, makes nvim stuff amazing! 'folke/neodev.nvim', @@ -101,30 +101,24 @@ return { local rust_tools_opts = { tools = { - runnables = { - use_telescope = true, - }, inlay_hints = { - auto = true, - show_parameter_hints = false, - parameter_hints_prefix = '', - other_hints_prefix = '', + auto = false, }, }, server = { on_attach = on_attach, - settings = { - ['rust-analyzer'] = { - cargo = { - -- always enable all features - features = 'all', - }, - -- use clippy on save - checkOnSave = { - command = 'clippy', - }, - }, - }, + -- settings = { + -- ['rust-analyzer'] = { + -- cargo = { + -- -- always enable all features + -- features = 'all', + -- }, + -- -- use clippy on save + -- checkOnSave = { + -- command = 'clippy', + -- }, + -- }, + -- }, }, } diff --git a/lua/plugins/navbuddy.lua b/lua/plugins/navbuddy.lua deleted file mode 100644 index 9f089f9..0000000 --- a/lua/plugins/navbuddy.lua +++ /dev/null @@ -1,15 +0,0 @@ -return { - 'SmiteshP/nvim-navbuddy', - dependencies = { - 'neovim/nvim-lspconfig', - 'SmiteshP/nvim-navic', - 'MunifTanjim/nui.nvim', - }, - config = function() - require('nvim-navbuddy').setup { lsp = { auto_attach = true } } - - -- Plugins - vim.keymap.set('n', 'nb', ':Navbuddy', { desc = '[N]av[b]uddy' }) - vim.keymap.set('n', 'nt', ':NvimTreeToggle', { desc = '[N]vim[T]ree' }) - end, -} diff --git a/lua/plugins/null_ls.lua b/lua/plugins/none_ls.lua similarity index 94% rename from lua/plugins/null_ls.lua rename to lua/plugins/none_ls.lua index 2b9c045..cba0ed1 100644 --- a/lua/plugins/null_ls.lua +++ b/lua/plugins/none_ls.lua @@ -1,6 +1,6 @@ return { -- inject lsp formatting, diagonstics etc - 'jose-elias-alvarez/null-ls.nvim', + 'nvimtools/none-ls.nvim', dependencies = { 'nvim-lua/plenary.nvim' }, config = function() local null_ls = require 'null-ls' diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua index fa4408b..0e17d49 100644 --- a/lua/plugins/telescope.lua +++ b/lua/plugins/telescope.lua @@ -3,14 +3,11 @@ return { { -- Fuzzy Finder (files, lsp, etc) 'nvim-telescope/telescope.nvim', - version = '*', + branch = '0.1.x', dependencies = { 'nvim-lua/plenary.nvim', - { 'nvim-telescope/telescope-fzf-native.nvim', - -- NOTE: If you are having trouble with this installation, - -- refer to the README for telescope-fzf-native for more instructions. build = 'make', cond = function() return vim.fn.executable 'make' == 1 @@ -18,43 +15,43 @@ return { }, }, config = function() + local telescopeConfig = require 'telescope.config' + + -- Clone the default Telescope configuration + local vimgrep_arguments = { unpack(telescopeConfig.values.vimgrep_arguments) } + + -- I want to search in hidden/dot files. + table.insert(vimgrep_arguments, '--hidden') + -- I don't want to respect .gitignore but do want to respect .ignore + table.insert(vimgrep_arguments, '--no-ignore-vcs') + -- I don't want to search in the `.git` directory. + table.insert(vimgrep_arguments, '--glob') + table.insert(vimgrep_arguments, '!**/.git/*') + + local rg_defaults = { 'rg', '-S', '--hidden', '--no-ignore-vcs', '--glob', '!**/.git/*' } + + local find_command = { unpack(rg_defaults) } + table.insert(find_command, '--files') + + local grep_command = { unpack(rg_defaults) } + table.insert(grep_command, '--color=never') + table.insert(grep_command, '--no-heading') + table.insert(grep_command, '--with-filename') + table.insert(grep_command, '--line-number') + table.insert(grep_command, '--column') + -- [[ Configure Telescope ]] -- See `:help telescope` and `:help telescope.setup()` require('telescope').setup { defaults = { - mappings = { - i = { - [''] = false, - [''] = false, - }, - }, + vimgrep_arguments = vimgrep_arguments, }, pickers = { find_files = { - find_command = { - 'rg', - '-S', - '--no-ignore-vcs', - '--hidden', - '--files', - '-g', - '!.git/', - }, + find_command = find_command, }, live_grep = { - grep_command = { - 'rg', - '--no-ignore-vcs', - '--hidden', - '--color=never', - '--no-heading', - '--with-filename', - '--line-number', - '--column', - '--smart-case', - '-g', - '!.git/', - }, + grep_command = grep_command, }, }, } @@ -62,19 +59,9 @@ return { -- Enable telescope fzf native, if installed pcall(require('telescope').load_extension, 'fzf') - -- Enable harpoon - require('telescope').load_extension 'harpoon' - -- See `:help telescope.builtin` vim.keymap.set('n', '?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' }) vim.keymap.set('n', '', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' }) - vim.keymap.set('n', '/', function() - -- You can pass additional configuration to telescope to change theme, layout, etc. - 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', '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' }) @@ -82,18 +69,6 @@ return { 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', 'ss', require('telescope.builtin').spell_suggest, { desc = '[S]pell [S]suggest' }) - - vim.keymap.set('n', 'sc', function() - require('telescope.builtin').colorscheme { enable_preview = true } - end, { desc = '[S]earch [C]olorscheme' }) - - -- extensions - vim.api.nvim_set_keymap('n', 'tc', ':TodoTelescope', { desc = '[T]odo [c]omments', noremap = true }) - vim.api.nvim_set_keymap('n', 'hm', ':Telescope harpoon marks', { desc = '[H]arpoon [m]arks', noremap = true }) end, }, - - -- Fuzzy Finder Algorithm which requires local dependencies to be built. - -- Only load if `make` is available. Make sure you have the system - -- requirements installed. } diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua index 23d0061..65fd9a4 100644 --- a/lua/plugins/treesitter.lua +++ b/lua/plugins/treesitter.lua @@ -1,83 +1,77 @@ return { -- Highlight, edit, and navigate code 'nvim-treesitter/nvim-treesitter', - dependencies = { - 'nvim-treesitter/nvim-treesitter-textobjects', - 'nvim-treesitter/nvim-treesitter-context', - 'nvim-treesitter/nvim-treesitter-refactor', - }, + dependencies = { 'nvim-treesitter/nvim-treesitter-textobjects' }, config = function() pcall(require('nvim-treesitter.install').update { with_sync = true }) -- [[ Configure Treesitter ]] -- See `:help nvim-treesitter` - 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', 'typescript', 'vimdoc', 'vim', 'markdown' }, + 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', 'typescript', 'vimdoc', 'vim', 'markdown' }, - -- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!) - auto_install = true, + -- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!) + auto_install = true, - highlight = { enable = true }, - indent = { enable = true, disable = { 'python' } }, - incremental_selection = { - enable = true, - keymaps = { - init_selection = '', - node_incremental = '', - scope_incremental = '', - node_decremental = '', - }, - }, - -- refactor - refactor = { - highlight_definitions = { enable = true, clear_on_cursor_move = true }, - }, - -- textobjects - textobjects = { - select = { + highlight = { enable = true }, + indent = { enable = true }, + incremental_selection = { 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', + init_selection = '', + node_incremental = '', + scope_incremental = '', + node_decremental = '', }, }, - move = { - enable = true, - set_jumps = true, -- whether to set jumps in the jumplist - goto_next_start = { - [']m'] = '@function.outer', - [']]'] = '@class.outer', + -- textobjects + 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', + }, }, - goto_next_end = { - [']M'] = '@function.outer', - [']['] = '@class.outer', + 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', + }, }, - goto_previous_start = { - ['[m'] = '@function.outer', - ['[['] = '@class.outer', - }, - goto_previous_end = { - ['[M'] = '@function.outer', - ['[]'] = '@class.outer', + swap = { + enable = true, + swap_next = { + ['a'] = '@parameter.inner', + }, + swap_previous = { + ['A'] = '@parameter.inner', + }, }, }, - swap = { - enable = true, - swap_next = { - ['a'] = '@parameter.inner', - }, - swap_previous = { - ['A'] = '@parameter.inner', - }, - }, - }, - } + } + end, 0) end, } diff --git a/lua/plugins/wilder.lua b/lua/plugins/wilder.lua deleted file mode 100644 index ed9abe4..0000000 --- a/lua/plugins/wilder.lua +++ /dev/null @@ -1,39 +0,0 @@ -return { - -- a more adventurous wildmenu - 'gelguy/wilder.nvim', - dependencies = { 'romgrk/fzy-lua-native' }, - config = function() - local wilder = require 'wilder' - wilder.setup { modes = { ':', '/', '?' } } - -- Disable Python remote plugin - wilder.set_option('use_python_remote_plugin', 0) - - wilder.set_option('pipeline', { - wilder.branch( - wilder.cmdline_pipeline { - fuzzy = 1, - fuzzy_filter = wilder.lua_fzy_filter(), - }, - wilder.vim_search_pipeline() - ), - }) - - wilder.set_option( - 'renderer', - wilder.popupmenu_renderer(wilder.popupmenu_border_theme { - highlights = { - border = 'Normal', - }, - -- stylua: ignore - border = { - '┌', '─', '┐', - '│', '│', - '└', '─', '┘', - }, - highlighter = wilder.lua_fzy_highlighter(), - left = { ' ', wilder.popupmenu_devicons() }, - right = { ' ', wilder.popupmenu_scrollbar() }, - }) - ) - end, -}