Loads of changes

This commit is contained in:
2025-04-13 22:53:08 +01:00
parent dd502a800b
commit f2f3b1812a
14 changed files with 307 additions and 372 deletions

248
init.lua
View File

@@ -12,219 +12,6 @@ require 'keymap'
require 'autocmd' require 'autocmd'
require 'lazy_init' require 'lazy_init'
-- nnoremap <Leader>ev :tabedit $MYVIMRC<CR>
-- The line beneath this is called `modeline`. See `:help modeline`
-- vim: ts=2 sts=2 sw=2 et
-- " Mappings --- {{{
-- " Editing files - {{{
-- "Make it easy to edit the vimrc file
-- " }}}
--
-- "Changing unused ctrl bindings
-- "Turn on git blame
-- nnoremap <C-S-A> <CMD>Git blame<CR>
-- "List all tags in the current buffer (replaced pageup, use CTRL-u instead)
-- nnoremap <C-Q> <CMD>CocFzfList outline<CR>
-- "List all tags in directory
-- "nnoremap <C-S-B> <CMD>Tags<CR>
-- "List all the recently opened files (replaced scroll one line up, use "k")
-- nnoremap <C-E> <CMD>History<CR>
-- "Search within the current buffer (replaced pagedown, use CTRL-d instead)
-- "nnoremap <C-F> /
-- "Search within the whole project
-- nnoremap <C-F> <CMD>Rg<CR>
-- "Move line down (uses vim-unimpaired) (replaced move down, use "j")
-- nnoremap <C-J> <C-E>
-- "Move line up (uses vim-unimpaired) (replaced move up, use "k")
-- nnoremap <C-K> <C-Y>
-- "Does not work because of legacy reasons
-- " nnoremap <C-M>
-- "Search marks (replaced "j" clone)
-- nnoremap <C-N> <CMD>Marks<CR>
-- "Search version controlled files (replaced move up, use "k")
-- nnoremap <C-P> <CMD>GFiles<CR>
-- "Search all files in directory
-- nnoremap <C-S-P> <CMD>Files<CR>
-- "Toggle file draw
-- nnoremap <C-S-Q> <CMD>CHADopen<CR>
-- "Search all snippets (uses ultisnips)
-- nnoremap <C-S> <CMD>Snippets<CR>
-- "Search git history (replaced scroll one line up, use "k")
-- nnoremap <C-Y> <CMD>Commits<CR>
-- "Search git history within current buffer/selection
-- nnoremap <C-S-Y> <CMD>BCommits<CR>
--
-- "Turn on git blame
-- inoremap <C-S-A> <CMD>Git blame<CR>
-- "List all tags in the current buffer
-- inoremap <C-Q> <CMD>BTags<CR>
-- "List all tags in directory
-- inoremap <C-S-Q> <CMD>Tags<CR>
-- "List all the recently opened files (replaced inserting characters from below)
-- inoremap <C-E> <CMD>History<CR>
-- "Search within the current buffer
-- inoremap <C-F> <Esc>/
-- "Search within the whole project
-- inoremap <C-S-F> <CMD>Rg<CR>
-- "Move line down (uses vim-unimpaired) (replaced <CR> clone)
-- inoremap <C-J> <Esc>ddpi
-- "Move line up (uses vim-unimpaired) (replaced start digraph, use command instead)
-- inoremap <C-K> <Esc>ddkPi
-- "Does not work because of legacy reasons
-- " inoremap <C-M> <CMD>Marks<CR>
-- "Add line below (replaced execute single command in normal)
-- inoremap <C-O> <Esc>o
-- "Add line above
-- inoremap <C-S-O> <Esc>O
-- "Search version controlled files (replaced autocomplete reverse)
-- inoremap <C-P> <CMD>GFiles<CR>
-- "Search all files in directory
-- inoremap <C-S-P> <CMD>Files<CR>
-- "Toggle file draw (replaces CTRL-v clone)
-- inoremap <C-S-Q> <CMD>CHADopen<CR>
-- "Search all snippets (uses ultisnips)
-- inoremap <C-S> <CMD>Snippets<CR>
-- "Search git history (replaced inserting characters from above)
-- inoremap <C-Y> <CMD>Commits<CR>
-- "Search git history within current buffer/selection
-- inoremap <C-S-Y> <CMD>BCommits<CR>
--
-- "Add simple highlight removal
-- nnoremap <Leader><Space> :nohlsearch<CR>
--
-- "Convert tabs to spaces
-- nnoremap <Leader><Tab> :retab<CR>
--
-- "Git mappings
-- nnoremap ga :Git add %<CR>
-- nnoremap gb :Git blame<CR>
-- nnoremap gC :Git commit<CR>
-- nnoremap gp :Git push<CR>
-- nnoremap gP :Git pull<CR>
--
-- "Map movement keys to Escape
-- inoremap jj <Esc>
-- inoremap jk <Esc>
-- inoremap kk <Esc>
-- inoremap hh <Esc>
--
-- "Delete a line in insert mode
-- " inoremap <C-D> <Esc>ddi
--
-- "Use semicolon instead of colon for commands
-- nnoremap ; :
-- nnoremap : ;
--
-- "Append the line with a semicolon
-- inoremap <Leader>; <Esc>mzA;<Esc>`za
-- nnoremap <Leader>; mzA;<Esc>`za<Esc>
--
-- "Easily navigate items in the quickfix menu
-- nnoremap <Leader>] :cnext<CR>
-- nnoremap <Leader>[ :cprevious<CR>
--
-- "Indent arrays
-- nnoremap <Leader>{ mzF[`a<CR><Esc>``%i<CR><Esc>`z
-- nnoremap <Leader>} mzF[`a<CR><Esc>``%i<CR><Esc>`zvi[:s/,\s*/,\r/g<CR>vi[=<Esc>`z:nohlsearch<CR>
--
-- "A command to properly indent json code
-- command! FormatJSON %!python -m json.tool
--
-- " Allow saving of files as doas
-- command! W execute 'silent! w !doas /usr/bin/tee % >/dev/null' <BAR> edit!
-- command! X execute 'silent! x !doas /usr/bin/tee % >/dev/null' <BAR> edit!
--
-- " }}}
--
-- " Plugins --- {{{
--
-- " COC --- {{{
-- " Use tab for trigger completion with characters ahead and navigate
-- " NOTE: There's always complete item selected by default, you may want to enable
-- " no select by `"suggest.noselect": true` in your configuration file
-- " NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by
-- " other plugin before putting this into your config
-- inoremap <silent><expr> <TAB>
-- \ coc#pum#visible() ? coc#pum#next(1) :
-- \ CheckBackspace() ? "\<Tab>" :
-- \ coc#refresh()
-- inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
--
-- " Make <CR> to accept selected completion item or notify coc.nvim to format
-- " <C-g>u breaks current undo, please make your own choice
-- inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm()
-- \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
--
-- function! CheckBackspace() abort
-- let col = col('.') - 1
-- return !col || getline('.')[col - 1] =~# '\s'
-- endfunction
--
-- if has('nvim')
-- inoremap <silent><expr> <c-space> coc#refresh()
-- else
-- inoremap <silent><expr> <c-@> coc#refresh()
-- endif
--
-- " Use `[g` and `]g` to navigate diagnostics
-- " Use `:CocDiagnostics` to get all diagnostics of current buffer in location list
-- nmap <silent> [g <Plug>(coc-diagnostic-prev)
-- nmap <silent> ]g <Plug>(coc-diagnostic-next)
--
-- " GoTo code navigation
-- nmap <silent> gd <Plug>(coc-definition)
-- nmap <silent> gy <Plug>(coc-type-definition)
-- nmap <silent> gi <Plug>(coc-implementation)
-- nmap <silent> gr <Plug>(coc-references)
--
-- " Use K to show documentation in preview window
-- nnoremap <silent> K :call ShowDocumentation()<CR>
--
-- function! ShowDocumentation()
-- if CocAction('hasProvider', 'hover')
-- call CocActionAsync('doHover')
-- else
-- call feedkeys('K', 'in')
-- endif
-- endfunction
--
-- " Highlight the symbol and its references when holding the cursor
-- autocmd CursorHold * silent call CocActionAsync('highlight')
--
-- " Symbol renaming
-- nmap <leader>rn <Plug>(coc-rename)
--
-- " Formatting selected code
-- xmap <leader>f <Plug>(coc-format-selected)
-- nmap <leader>f <Plug>(coc-format-selected)
--
-- augroup mygroup
-- autocmd!
-- " Setup formatexpr specified filetype(s)
-- autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
-- " Update signature help on jump placeholder
-- autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
-- augroup end
--
-- " Applying code actions to the selected code block
-- " Example: `<leader>aap` for current paragraph
-- xmap <leader>a <Plug>(coc-codeaction-selected)
-- nmap <leader>a <Plug>(coc-codeaction-selected)
--
-- " Remap keys for applying code actions at the cursor position
-- nmap <leader>ac <Plug>(coc-codeaction-cursor)
-- " Remap keys for apply code actions affect whole buffer
-- nmap <leader>as <Plug>(coc-codeaction-source)
-- " Apply the most preferred quickfix action to fix diagnostic on the current line
-- nmap <leader>qf <Plug>(coc-fix-current)
--
-- " Remap keys for applying refactor code actions
-- nmap <silent> <leader>re <Plug>(coc-codeaction-refactor)
-- xmap <silent> <leader>r <Plug>(coc-codeaction-refactor-selected)
-- nmap <silent> <leader>r <Plug>(coc-codeaction-refactor-selected)
--
-- " Run the Code Lens action on the current line -- " Run the Code Lens action on the current line
-- nmap <leader>cl <Plug>(coc-codelens-action) -- nmap <leader>cl <Plug>(coc-codelens-action)
-- --
@@ -426,41 +213,6 @@ require 'lazy_init'
-- --
-- " Auto-Commands --- {{{ -- " Auto-Commands --- {{{
-- --
-- "Automatically source the config files on save.
-- augroup autosourcing
-- autocmd!
-- autocmd BufWritePost $MYVIMRC source % "Source the vimrc file
-- augroup END
--
-- "Fold vimrc and zshrc files on open
-- augroup autofolding
-- autocmd!
-- autocmd BufReadPost $MYVIMRC :setlocal foldlevelstart=0
-- autocmd FileType vim setlocal foldmethod=marker
-- autocmd BufReadPost zsh :setlocal foldlevelstart=0
-- autocmd FileType zsh setlocal foldmethod=marker
-- augroup END
--
-- "Set commentary formats
-- function s:setcommentary()
-- if &commentstring =~ '/\*\s*%s\s*\*/'
-- let b:commentary_format="// %s"
-- endif
-- endfunction
--
-- augroup autocomment
-- autocmd!
-- autocmd FileType * call <SID>setcommentary()
-- augroup END
--
-- "Automatically save files
-- augroup autosaving
-- autocmd!
-- autocmd FocusLost * silent! wa "Save all files when moving away from the window
-- autocmd InsertLeave * silent! wa "Save all files when leaving insert mode
-- autocmd TextChanged * silent! wa "Save all files when text is changed
-- augroup END
--
-- augroup modes -- augroup modes
-- autocmd! -- autocmd!
-- autocmd FocusLost * call feedkeys("\<Esc>") "Go to normal mode when moving away -- autocmd FocusLost * call feedkeys("\<Esc>") "Go to normal mode when moving away

View File

@@ -12,4 +12,24 @@ vim.api.nvim_create_autocmd('TextYankPost', {
end, end,
}) })
local autosave_group = vim.api.nvim_create_augroup('autosaving', { clear = true })
vim.api.nvim_create_autocmd('FocusLost', {
group = autosave_group,
pattern = '*',
command = 'silent! wa', -- Save all files when moving away from the window
})
vim.api.nvim_create_autocmd('InsertLeave', {
group = autosave_group,
pattern = '*',
command = 'silent! wa', -- Save all files when leaving insert mode
})
vim.api.nvim_create_autocmd('TextChanged', {
group = autosave_group,
pattern = '*',
command = 'silent! wa', -- Save all files when text is changed
})
require('helpers').edit_cf('a', '/lua/autocmd.lua') require('helpers').edit_cf('a', '/lua/autocmd.lua')

View File

@@ -2,8 +2,8 @@
-- See `:help vim.keymap.set()` -- See `:help vim.keymap.set()`
-- Swap : and ; around -- Swap : and ; around
vim.keymap.set('n', ':', ';') vim.keymap.set({ 'n', 'v' }, ':', ';')
vim.keymap.set('n', ';', ':') vim.keymap.set({ 'n', 'v' }, ';', ':')
-- Clear highlights on search when pressing <Esc> in normal mode -- Clear highlights on search when pressing <Esc> in normal mode
-- See `:help hlsearch` -- See `:help hlsearch`
@@ -20,12 +20,6 @@ vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagn
-- or just use <C-\><C-n> to exit terminal mode -- or just use <C-\><C-n> to exit terminal mode
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' }) vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
-- TIP: Disable arrow keys in normal mode
-- vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
-- vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
-- vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
-- vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
-- Keybinds to make split navigation easier. -- Keybinds to make split navigation easier.
-- Use CTRL+<hjkl> to switch between windows -- Use CTRL+<hjkl> to switch between windows
-- --
@@ -40,4 +34,82 @@ vim.keymap.set('n', '<C-S-l>', '<C-w>L', { desc = 'Move window to the right' })
vim.keymap.set('n', '<C-S-j>', '<C-w>J', { desc = 'Move window to the lower' }) vim.keymap.set('n', '<C-S-j>', '<C-w>J', { desc = 'Move window to the lower' })
vim.keymap.set('n', '<C-S-k>', '<C-w>K', { desc = 'Move window to the upper' }) vim.keymap.set('n', '<C-S-k>', '<C-w>K', { desc = 'Move window to the upper' })
-- Overriding CTRL mappings because some of them are stupid
vim.keymap.set({ 'n', 'v', 'c', 'i' }, '<C-S-A>', '<CMD>Git blame<CR>', { desc = 'Git blame' })
vim.keymap.set({ 'n', 'v', 'c', 'i' }, '<C-Q>', '<CMD>Telescope lsp_document_symbols<CR>', { desc = 'Show symbols in current document' })
vim.keymap.set({ 'n', 'v', 'c', 'i' }, '<C-S-Q>', '<CMD>Telescope lsp_workspace_symbols<CR>', { desc = 'Show symbols in workspace' })
vim.keymap.set({ 'n', 'v', 'c', 'i' }, '<C-E>', '<CMD>Telescope oldfiles<CR>', { desc = 'Show recently opened files' })
vim.keymap.set({ 'n', 'v', 'c', 'i' }, '<C-P>', function()
require('telescope.builtin').find_files {
show_untracked = true,
hidden = true,
}
end, { desc = 'Find version controlled files' })
vim.keymap.set({ 'n', 'v', 'c', 'i' }, '<C-S-P>', function()
require('telescope.builtin').find_files {
no_ignore = true,
hidden = true,
}
end, { desc = 'Find all files' })
vim.keymap.set({ 'n', 'v', 'c', 'i' }, '<C-F>', function()
require('telescope.builtin').live_grep {
hidden = true,
}
end, { desc = 'Search within the whole project' })
vim.keymap.set({ 'n', 'v', 'c', 'i' }, '<C-Y>', '<CMD>Telescope quickfix<CR>', { desc = 'Show quickfix list' })
vim.keymap.set({ 'n', 'v', 'c', 'i' }, '<C-S-Y>', '<CMD>Telescope quickfixhistory<CR>', { desc = 'Show quickfix history' })
vim.keymap.set({ 'n', 'v', 'c', 'i' }, '<C-A>', '<CMD>CodeCompanionActions<CR>', { desc = 'Open AI Actions' })
vim.keymap.set({ 'n', 'v', 'c', 'i' }, '<C-S-A>', '<CMD>CodeCompanionChat<CR>', { desc = 'Open AI Chat' })
-- Editing helpers
vim.keymap.set('i', '<C-O>', '<Esc>o', { desc = 'Add line below' })
vim.keymap.set('i', '<C-S-O>', '<Esc>O', { desc = 'Add line above' })
vim.keymap.set('i', 'jj', '<Esc>', { desc = 'Exit insert mode' })
vim.keymap.set('i', 'jk', '<Esc>', { desc = 'Exit insert mode' })
vim.keymap.set('i', 'kk', '<Esc>', { desc = 'Exit insert mode' })
vim.keymap.set('i', '<C-D>', '<Esc>ddi', { desc = 'Delete line' })
vim.keymap.set('i', '<Leader>;', '<Esc>mzA;<Esc>`za', { desc = 'Append a semicolon' })
vim.keymap.set('n', '<Leader>;', 'mzA;<Esc>`za', { desc = 'Append a semicolon' })
vim.keymap.set('n', '<Leader>{', 'mzF[`a<CR><Esc>``%i<CR><Esc>`z', { desc = 'Indent an array' })
vim.keymap.set('n', '<Leader>}', 'mzF[`a<CR><Esc>``%i<CR><Esc>`zvi[:s/,\\s*/,\\r/g<CR>vi[=<Esc>`z:nohlsearch<CR>', { desc = 'Indent an array some other way?' })
-- Git mappings
vim.keymap.set('n', '<Leader>gaf', '<CMD>Git add %<CR>', { desc = 'Git add current file' })
vim.keymap.set('n', '<Leader>gaa', '<CMD>Git add --all<CR>', { desc = 'Git add all unstaged changes' })
vim.keymap.set('n', '<Leader>gap', '<CMD>Git add --patch --all<CR>', { desc = 'Git add all unstaged changes interactively' })
vim.keymap.set('n', '<Leader>gb', '<CMD>Git blame<CR>', { desc = 'Git blame' })
vim.keymap.set('n', '<Leader>gc', '<CMD>Git commit<CR>', { desc = 'Git commit' })
vim.keymap.set('n', '<Leader>gp', '<CMD>Git push<CR>', { desc = 'Git push' })
vim.keymap.set('n', '<Leader>gup', '<CMD>Git pull --rebase<CR>', { desc = 'Git pull --rebase' })
vim.keymap.set('n', '<Leader>gs', '<CMD>Git status<CR>', { desc = 'Git status' })
vim.keymap.set('n', '<Leader>gd', '<CMD>Git diff<CR>', { desc = 'Git diff' })
vim.keymap.set('n', '<Leader>gl', '<CMD>Git log<CR>', { desc = 'Git log' })
vim.keymap.set('n', '<Leader>gun', '<CMD>Git reset -- %<CR>', { desc = 'Git unstage file' })
vim.keymap.set('n', '<Leader>gco', '<CMD>Git checkout', { desc = 'Git checkout' })
vim.keymap.set('n', '<Leader>gc', '<CMD>Git commit<CR>', { desc = 'Git commit' })
vim.keymap.set('n', '<Leader>G', '<CMD>Git', { desc = 'Git' })
vim.keymap.set('n', '<Leader>gsta', '<CMD>Git stash push<CR>', { desc = 'Git stash' })
vim.keymap.set('n', '<Leader>gstA', '<CMD>Git stash apply<CR>', { desc = 'Git stash apply' })
vim.keymap.set('n', '<Leader>gstp', '<CMD>Git stash pop<CR>', { desc = 'Git stash pop' })
-- AI mappings
vim.keymap.set('v', '<Leader>ae', '<CMD>CodeCompanion<CR>', { desc = 'Edit selection with AI' })
vim.keymap.set('n', '<Leader>ac', '<CMD>CodeCompanionCmd<CR>', { desc = 'Run Neovim commands with AI' })
-- Search mappings
vim.keymap.set('n', '<Leader>sGb', '<CMD>Telescope git_branches<CR>', { desc = 'Search git branches' })
vim.keymap.set('n', '<Leader>sGc', '<CMD>Telescope git_commits<CR>', { desc = 'Search git history' })
vim.keymap.set('n', '<Leader>sGh', '<CMD>Telescope git_bcommits<CR>', { desc = 'Search git history within current buffer/selection' })
vim.keymap.set('n', '<Leader>sGs', '<CMD>Telescope git_status<CR>', { desc = 'Search git status' })
vim.keymap.set('n', '<Leader>sGS', '<CMD>Telescope git_stash<CR>', { desc = 'Search git stash' })
-- Misc
vim.keymap.set('n', '<Leader>]', '<CMD>cnext<CR>', { desc = 'Next item in quickfix list' })
vim.keymap.set('n', '<Leader>[', '<CMD>cprevious<CR>', { desc = 'Previous item in quickfix list' })
vim.keymap.set('n', 'gd', '<CMD>Telescope lsp_definitions<CR>', { desc = 'Go to definition' })
-- Leaving this commented out, I will try the format command instead
-- "A command to properly indent json code
-- command! FormatJSON %!python -m json.tool
require('helpers').edit_cf('k', '/lua/keymap.lua') require('helpers').edit_cf('k', '/lua/keymap.lua')

3
lua/plugins/actually.lua Normal file
View File

@@ -0,0 +1,3 @@
return {
'mong8se/actually.nvim',
}

View File

@@ -1,72 +1,75 @@
require('helpers').edit_cf('pa', '/lua/plugins/avante.lua') return {}
-- require('helpers').edit_cf('pa', '/lua/plugins/avante.lua')
return { --
'yetone/avante.nvim', -- return {
event = 'VeryLazy', -- 'yetone/avante.nvim',
version = false, -- Never set this value to "*"! Never! -- event = 'VeryLazy',
opts = { -- version = false, -- Never set this value to "*"! Never!
-- add any opts here -- opts = {
-- for example -- -- add any opts here
provider = 'aihubmix', -- -- for example
cursor_applying_provider = 'aihubmix_llama_versatile', -- provider = 'aihubmix',
aihubmix = { -- -- cursor_applying_provider = 'aihubmix_llama_versatile',
-- model = 'claude-3-7-sonnet-20250219', -- aihubmix = {
model = 'DeepSeek-V3', -- -- model = 'claude-3-7-sonnet-20250219',
}, -- model = 'DeepSeek-V3',
openai = { -- },
endpoint = 'https://api.openai.com/v1', -- openai = {
model = 'gpt-4o', -- your desired model (or use gpt-4o, etc.) -- endpoint = 'https://api.openai.com/v1',
timeout = 30000, -- Timeout in milliseconds, increase this for reasoning models -- model = 'gpt-4o', -- your desired model (or use gpt-4o, etc.)
temperature = 0, -- timeout = 30000, -- Timeout in milliseconds, increase this for reasoning models
max_completion_tokens = 8192, -- Increase this to include reasoning tokens (for reasoning models) -- temperature = 0,
--reasoning_effort = "medium", -- low|medium|high, only used for reasoning models -- max_completion_tokens = 8192, -- Increase this to include reasoning tokens (for reasoning models)
}, -- --reasoning_effort = "medium", -- low|medium|high, only used for reasoning models
vendors = { -- },
aihubmix_llama_versatile = { -- vendors = {
__inherited_from = 'aihubmix', -- aihubmix_llama_versatile = {
model = 'llama-3.3-70b-versatile', -- __inherited_from = 'openai',
}, -- api_key_name = 'AIHUBMIX_API_KEY',
}, -- endpoint = 'https://aihubmix.com/v1',
}, -- model = 'llama-3.3-70b-versatile',
-- if you want to build from source then do `make BUILD_FROM_SOURCE=true` -- },
build = 'make', -- },
-- build = "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" -- for windows -- },
dependencies = { -- -- if you want to build from source then do `make BUILD_FROM_SOURCE=true`
'nvim-treesitter/nvim-treesitter', -- build = 'make',
'stevearc/dressing.nvim', -- -- build = "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" -- for windows
'nvim-lua/plenary.nvim', -- dependencies = {
'MunifTanjim/nui.nvim', -- 'nvim-treesitter/nvim-treesitter',
--- The below dependencies are optional, -- 'stevearc/dressing.nvim',
'echasnovski/mini.pick', -- for file_selector provider mini.pick -- 'nvim-lua/plenary.nvim',
'nvim-telescope/telescope.nvim', -- for file_selector provider telescope -- 'MunifTanjim/nui.nvim',
'hrsh7th/nvim-cmp', -- autocompletion for avante commands and mentions -- --- The below dependencies are optional,
'ibhagwan/fzf-lua', -- for file_selector provider fzf -- 'echasnovski/mini.pick', -- for file_selector provider mini.pick
'nvim-tree/nvim-web-devicons', -- or echasnovski/mini.icons -- 'nvim-telescope/telescope.nvim', -- for file_selector provider telescope
'zbirenbaum/copilot.lua', -- for providers='copilot' -- 'hrsh7th/nvim-cmp', -- autocompletion for avante commands and mentions
{ -- 'ibhagwan/fzf-lua', -- for file_selector provider fzf
-- support for image pasting -- 'nvim-tree/nvim-web-devicons', -- or echasnovski/mini.icons
'HakonHarnes/img-clip.nvim', -- 'zbirenbaum/copilot.lua', -- for providers='copilot'
event = 'VeryLazy', -- {
opts = { -- -- support for image pasting
-- recommended settings -- 'HakonHarnes/img-clip.nvim',
default = { -- event = 'VeryLazy',
embed_image_as_base64 = false, -- opts = {
prompt_for_file_name = false, -- -- recommended settings
drag_and_drop = { -- default = {
insert_mode = true, -- embed_image_as_base64 = false,
}, -- prompt_for_file_name = false,
-- required for Windows users -- drag_and_drop = {
use_absolute_path = true, -- insert_mode = true,
}, -- },
}, -- -- required for Windows users
}, -- use_absolute_path = true,
{ -- },
-- Make sure to set this up properly if you have lazy=true -- },
'MeanderingProgrammer/render-markdown.nvim', -- },
opts = { -- {
file_types = { 'markdown', 'Avante' }, -- -- Make sure to set this up properly if you have lazy=true
}, -- 'MeanderingProgrammer/render-markdown.nvim',
ft = { 'markdown', 'Avante' }, -- opts = {
}, -- file_types = { 'markdown', 'Avante' },
}, -- },
} -- ft = { 'markdown', 'Avante' },
-- },
-- },
-- }

View File

@@ -5,7 +5,7 @@ return {
version = '1.*', version = '1.*',
dependencies = { dependencies = {
-- Compatibility for Avante with Blink (it typically only works with cmp) -- Compatibility for Avante with Blink (it typically only works with cmp)
'Kaiser-Yang/blink-cmp-avante', -- 'Kaiser-Yang/blink-cmp-avante',
-- Snippet Engine -- Snippet Engine
{ {
'L3MON4D3/LuaSnip', 'L3MON4D3/LuaSnip',
@@ -59,7 +59,7 @@ return {
-- <c-k>: Toggle signature help -- <c-k>: Toggle signature help
-- --
-- See :h blink-cmp-config-keymap for defining your own keymap -- See :h blink-cmp-config-keymap for defining your own keymap
preset = 'default', preset = 'enter',
-- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see: -- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
-- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps -- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
@@ -68,20 +68,23 @@ return {
appearance = { appearance = {
-- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
-- Adjusts spacing to ensure icons are aligned -- Adjusts spacing to ensure icons are aligned
nerd_font_variant = 'mono', nerd_font_variant = 'normal',
}, },
completion = { completion = {
-- By default, you may press `<c-space>` to show the documentation. -- By default, you may press `<c-space>` to show the documentation.
-- Optionally, set `auto_show = true` to show the documentation after a delay. -- Optionally, set `auto_show = true` to show the documentation after a delay.
documentation = { auto_show = false, auto_show_delay_ms = 500 }, documentation = { auto_show = true, auto_show_delay_ms = 500 },
}, },
sources = { sources = {
default = { 'avante', 'lsp', 'path', 'snippets', 'lazydev' }, default = { 'codecompanion', 'lsp', 'path', 'snippets', 'lazydev' },
providers = { providers = {
lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 }, lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 },
avante = { module = 'blink-cmp-avante', name = 'Avante', opts = {} }, -- avante = { module = 'blink-cmp-avante', name = 'Avante', opts = {} },
},
per_filetype = {
codecompanion = { 'codecompanion' },
}, },
}, },

View File

@@ -0,0 +1,8 @@
return {
'olimorris/codecompanion.nvim',
opts = {},
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-treesitter/nvim-treesitter',
},
}

3
lua/plugins/copilot.lua Normal file
View File

@@ -0,0 +1,3 @@
return {
'github/copilot.vim',
}

10
lua/plugins/dashboard.lua Normal file
View File

@@ -0,0 +1,10 @@
return {
'nvimdev/dashboard-nvim',
event = 'VimEnter',
config = function()
require('dashboard').setup {
-- config
}
end,
dependencies = { {'nvim-tree/nvim-web-devicons'}}
}

View File

@@ -25,42 +25,42 @@ return {
keys = { keys = {
-- Basic debugging keymaps, feel free to change to your liking! -- Basic debugging keymaps, feel free to change to your liking!
{ {
'<F5>', '<Leader>dc',
function() function()
require('dap').continue() require('dap').continue()
end, end,
desc = 'Debug: Start/Continue', desc = 'Debug: Start/Continue',
}, },
{ {
'<F1>', '<Leader>di',
function() function()
require('dap').step_into() require('dap').step_into()
end, end,
desc = 'Debug: Step Into', desc = 'Debug: Step Into',
}, },
{ {
'<F2>', '<Leader>do',
function() function()
require('dap').step_over() require('dap').step_over()
end, end,
desc = 'Debug: Step Over', desc = 'Debug: Step Over',
}, },
{ {
'<F3>', '<Leader>du',
function() function()
require('dap').step_out() require('dap').step_out()
end, end,
desc = 'Debug: Step Out', desc = 'Debug: Step Out',
}, },
{ {
'<leader>b', '<leader>db',
function() function()
require('dap').toggle_breakpoint() require('dap').toggle_breakpoint()
end, end,
desc = 'Debug: Toggle Breakpoint', desc = 'Debug: Toggle Breakpoint',
}, },
{ {
'<leader>B', '<leader>dB',
function() function()
require('dap').set_breakpoint(vim.fn.input 'Breakpoint condition: ') require('dap').set_breakpoint(vim.fn.input 'Breakpoint condition: ')
end, end,
@@ -68,7 +68,7 @@ return {
}, },
-- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception. -- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception.
{ {
'<F7>', '<Leader>ds',
function() function()
require('dapui').toggle() require('dapui').toggle()
end, end,

3
lua/plugins/dotenv.lua Normal file
View File

@@ -0,0 +1,3 @@
return {
'ellisonleao/dotenv.nvim',
}

View File

@@ -1,38 +1,69 @@
-- Collection of various small independent plugins/modules -- Collection of various small independent plugins/modules
return { return {
"echasnovski/mini.nvim", 'echasnovski/mini.nvim',
config = function() config = function()
-- Better Around/Inside textobjects -- Better Around/Inside textobjects
-- --
-- Examples: -- Examples:
-- - va) - [V]isually select [A]round [)]paren -- - va) - [V]isually select [A]round [)]paren
-- - yinq - [Y]ank [I]nside [N]ext [Q]uote -- - yinq - [Y]ank [I]nside [N]ext [Q]uote
-- - ci' - [C]hange [I]nside [']quote -- - ci' - [C]hange [I]nside [']quote
require("mini.ai").setup({ n_lines = 500 }) require('mini.ai').setup { n_lines = 500 }
-- Add/delete/replace surroundings (brackets, quotes, etc.) -- Add/delete/replace surroundings (brackets, quotes, etc.)
-- --
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
-- - sd' - [S]urround [D]elete [']quotes -- - sd' - [S]urround [D]elete [']quotes
-- - sr)' - [S]urround [R]eplace [)] ['] -- - sr)' - [S]urround [R]eplace [)] [']
require("mini.surround").setup() require('mini.surround').setup {
mappings = {
add = 'ys',
delete = 'ds',
replace = 'cs',
},
}
-- Simple and easy statusline. require('mini.pairs').setup()
-- You could remove this setup call if you don't like it,
-- and try some other statusline plugin
local statusline = require("mini.statusline")
-- set use_icons to true if you have a Nerd Font
statusline.setup({ use_icons = vim.g.have_nerd_font })
-- You can configure sections in the statusline by overriding their -- require('mini.jump').setup()
-- default behavior. For example, here we set the section for
-- cursor location to LINE:COLUMN
---@diagnostic disable-next-line: duplicate-set-field
statusline.section_location = function()
return "%2l:%-2v"
end
-- ... and there is more! require('mini.jump2d').setup()
-- Check out: https://github.com/echasnovski/mini.nvim
end, require('mini.splitjoin').setup()
local animate = require 'mini.animate'
animate.setup {
cursor = {
enable = false,
},
resize = {
enable = true,
timing = animate.gen_timing.linear { duration = 50, unit = 'total' },
},
scroll = {
enable = true,
timing = animate.gen_timing.linear { duration = 50, unit = 'total' },
},
}
require('mini.map').setup()
-- Simple and easy statusline.
-- You could remove this setup call if you don't like it,
-- and try some other statusline plugin
local statusline = require 'mini.statusline'
-- set use_icons to true if you have a Nerd Font
statusline.setup { use_icons = vim.g.have_nerd_font }
-- You can configure sections in the statusline by overriding their
-- default behavior. For example, here we set the section for
-- cursor location to LINE:COLUMN
---@diagnostic disable-next-line: duplicate-set-field
statusline.section_location = function()
return '%2l:%-2v'
end
-- ... and there is more!
-- Check out: https://github.com/echasnovski/mini.nvim
end,
} }

18
lua/plugins/oil.lua Normal file
View File

@@ -0,0 +1,18 @@
-- Filesystem manager
vim.keymap.set('n', '-', '<CMD>Oil<CR>', { desc = 'Open parent directory' })
return {
'stevearc/oil.nvim',
---@module 'oil'
---@type oil.SetupOpts
opts = {
view_options = {
show_hidden = true,
},
},
-- Optional dependencies
dependencies = { { 'echasnovski/mini.icons', opts = {} } },
-- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if you prefer nvim-web-devicons
-- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations.
lazy = false,
}

9
lua/plugins/refactor.lua Normal file
View File

@@ -0,0 +1,9 @@
return {
"ThePrimeagen/refactoring.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
},
lazy = false,
opts = {},
}