Added rest of configurations

master
hheik 2026-01-27 19:19:50 +02:00
parent 70d36b38d8
commit d2c1c04fad
20 changed files with 359 additions and 113 deletions

View File

@ -4,7 +4,7 @@
There are some packages required by Mason, Telescope, etc. There are some packages required by Mason, Telescope, etc.
**Note: this list is very loose list.** **Note: this is a very loose list.**
```shell ```shell
sudo apt install gcc ripgrep unzip java-common default-jre luarocks cmake libbinutils moreutils shellcheck sudo apt install gcc ripgrep unzip java-common default-jre luarocks cmake libbinutils moreutils shellcheck
@ -15,7 +15,8 @@ sudo apt install gcc ripgrep unzip java-common default-jre luarocks cmake libbin
``` ```
:MasonInstall lua-language-server@3.15.0 :MasonInstall lua-language-server@3.15.0
:MasonInstall typescript-language-server :MasonInstall typescript-language-server
:MasonInstall rust_analyzer :MasonInstall vue-language-server
:MasonInstall rust-analyzer
``` ```
## NerdFont ## NerdFont

View File

@ -4,22 +4,22 @@ require 'spec'
spec 'plugin/colorscheme' spec 'plugin/colorscheme'
spec 'plugin/treesitter' spec 'plugin/treesitter'
spec 'plugin/telescope' spec 'plugin/telescope'
spec 'plugin/telescope-ui-select'
spec 'plugin/mason' spec 'plugin/mason'
spec 'plugin/nvimtree' spec 'plugin/nvimtree'
spec 'plugin/nvimtree-icons' spec 'plugin/nvimtree-icons'
spec 'plugin/toggleterm' spec 'plugin/toggleterm'
spec 'plugin/lspconfig' spec 'plugin/lspconfig'
-- spec 'plugin/bufferline' spec 'plugin/bufferline'
-- spec 'plugin/copilot' spec 'plugin/copilot'
-- spec 'plugin/smartword' spec 'plugin/smartword'
-- spec 'plugin/gitsigns' spec 'plugin/gitsigns'
-- spec 'plugin/lualine' spec 'plugin/lualine'
spec 'plugin/autopairs' spec 'plugin/autopairs'
spec 'plugin/lspkind' spec 'plugin/lspkind'
spec 'plugin/nvim-cmp' spec 'plugin/nvim-cmp'
-- spec 'plugin/nvim-navic' spec 'plugin/which-key'
-- spec 'plugin/csvview' spec 'plugin/todo-comments'
-- spec 'plugin/which-key'
require 'plugin/lazy' require 'plugin/lazy'
require 'lsp' require 'lsp'

View File

@ -1,20 +1,28 @@
{ {
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" }, "cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" },
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" }, "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"copilot.vim": { "branch": "release", "commit": "a12fd5672110c8aa7e3c8419e28c96943ca179be" },
"gitsigns.nvim": { "branch": "main", "commit": "abf82a65f185bd54adc0679f74b7d6e1ada690c9" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"lspkind.nvim": { "branch": "master", "commit": "3ddd1b4edefa425fda5a9f95a4f25578727c0bb3" }, "lspkind.nvim": { "branch": "master", "commit": "3ddd1b4edefa425fda5a9f95a4f25578727c0bb3" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "4cfe411526a7a99c18281135e8b4765ae6330d15" }, "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
"mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "fe661093f4b05136437b531e7f959af2a2ae66c8" },
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
"nvim-autopairs": { "branch": "master", "commit": "c2a0dd0d931d0fb07665e1fedb1ea688da3b80b4" }, "nvim-autopairs": { "branch": "master", "commit": "c2a0dd0d931d0fb07665e1fedb1ea688da3b80b4" },
"nvim-cmp": { "branch": "main", "commit": "d97d85e01339f01b842e6ec1502f639b080cb0fc" }, "nvim-cmp": { "branch": "main", "commit": "85bbfad83f804f11688d1ab9486b459e699292d6" },
"nvim-lspconfig": { "branch": "master", "commit": "41ceb6bba3a40128b7841f5b7f5a9dae7201e823" }, "nvim-lspconfig": { "branch": "master", "commit": "92ee7d42320edfbb81f3cad851314ab197fa324a" },
"nvim-tree.lua": { "branch": "master", "commit": "b8b44b6a2494d086a9177251a119f9daec6cace8" }, "nvim-tree.lua": { "branch": "master", "commit": "b8b44b6a2494d086a9177251a119f9daec6cace8" },
"nvim-treesitter": { "branch": "main", "commit": "7efc1b58a8061d29786860006c7257c90a5196dc" }, "nvim-treesitter": { "branch": "main", "commit": "5a7e5638e7d220575b1c22c8a2e099b52231886e" },
"nvim-web-devicons": { "branch": "master", "commit": "6788013bb9cb784e606ada44206b0e755e4323d7" }, "nvim-web-devicons": { "branch": "master", "commit": "6788013bb9cb784e606ada44206b0e755e4323d7" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"telescope.nvim": { "branch": "master", "commit": "4d0f5e0e7f69071e315515c385fab2a4eff07b3d" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "master", "commit": "3333a52ff548ba0a68af6d8da1e54f9cd96e9179" },
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
"toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" }, "toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" },
"tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" } "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" },
"vim-smartword": { "branch": "master", "commit": "608d4883bb1eff4131f44857a21119220e55886d" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
} }

View File

@ -9,8 +9,8 @@ return {
globals = { 'vim' }, globals = { 'vim' },
}, },
workspace = { workspace = {
library = vim.api.nvim_get_runtime_file('', true), library = vim.tbl_deep_extend('force', vim.api.nvim_get_runtime_file('', true), { '${3rd}/love2d/library' }),
checkThirdParty = true, checkThirdParty = false,
}, },
}, },
}, },

View File

@ -28,7 +28,12 @@ vim.opt.listchars = {
tab = ' - ', tab = ' - ',
} }
vim.opt.signcolumn = 'number' vim.opt.signcolumn = 'yes'
vim.opt.scrolloff = 10 vim.opt.scrolloff = 10
vim.diagnostic.config { virtual_text = true } vim.diagnostic.config {
virtual_text = true,
jump = { float = true }
}
vim.opt.winborder = 'single'

View File

@ -3,78 +3,75 @@ local horizontal_resize_step = 8
local small_step = 5 local small_step = 5
local big_step = 25 local big_step = 25
vim.keymap.set('n', '<leader>w', '<cmd>w<cr>') vim.keymap.set('n', '<leader>w', '<cmd>w<cr>', { desc = 'Write buffer' })
vim.keymap.set('n', '<leader>q', '<cmd>q<cr>') vim.keymap.set('n', '<leader>q', '<cmd>q<cr>', { desc = 'Close window' })
vim.keymap.set('n', '<leader>c', '<cmd>bp<cr><cmd>bd#<cr>') vim.keymap.set('n', '<leader>c', '<cmd>bp<cr><cmd>bd#<cr>', { desc = 'Close buffer' })
vim.keymap.set('n', '<leader>h', '<cmd>nohl<cr>') vim.keymap.set('n', '<leader>h', '<cmd>nohl<cr>', { desc = 'Clear highlight' })
vim.keymap.set('n', '<leader>z', '<cmd>set wrap! wrap?<cr>') vim.keymap.set('n', '<leader>z', '<cmd>set wrap! wrap?<cr>', { desc = 'Toggle wrap' })
vim.keymap.set('n', '<leader>x', '<cmd>set cursorline! cursorline?<cr>') vim.keymap.set('n', '<leader>x', '<cmd>set cursorline! cursorline?<cr>', { desc = 'Toggle cursorline' })
vim.keymap.set('n', '<c-k>', '<c-w>k') vim.keymap.set('n', '<leader><up>', '<c-w>k', { desc = 'Move to upper window' })
vim.keymap.set('n', '<c-j>', '<c-w>j') vim.keymap.set('n', '<leader><down>', '<c-w>j', { desc = 'Move to lower window' })
vim.keymap.set('n', '<c-h>', '<c-w>h') vim.keymap.set('n', '<leader><left>', '<c-w>h', { desc = 'Move to left window' })
vim.keymap.set('n', '<c-l>', '<c-w>l') vim.keymap.set('n', '<leader><right>', '<c-w>l', { desc = 'Move to right window' })
vim.keymap.set('n', '<leader><up>', '<c-w>k')
vim.keymap.set('n', '<leader><down>', '<c-w>j')
vim.keymap.set('n', '<leader><left>', '<c-w>h')
vim.keymap.set('n', '<leader><right>', '<c-w>l')
vim.keymap.set('n', '<m-c-up>', '<cmd>resize +' .. vertical_resize_step .. '<cr>') vim.keymap.set('n', '<m-c-up>', '<cmd>resize +' .. vertical_resize_step .. '<cr>', { desc = 'Increase window height' })
vim.keymap.set('n', '<m-c-down>', '<cmd>resize -' .. vertical_resize_step .. '<cr>') vim.keymap.set('n', '<m-c-down>', '<cmd>resize -' .. vertical_resize_step .. '<cr>', { desc = 'Decrease window height' })
vim.keymap.set('n', '<m-c-left>', '<cmd>vertical resize -' .. horizontal_resize_step .. '<cr>') vim.keymap.set('n', '<m-c-left>', '<cmd>vertical resize -' .. horizontal_resize_step .. '<cr>', { desc = 'Decrease window width' })
vim.keymap.set('n', '<m-c-right>', '<cmd>vertical resize +' .. horizontal_resize_step .. '<cr>') vim.keymap.set('n', '<m-c-right>', '<cmd>vertical resize +' .. horizontal_resize_step .. '<cr>', { desc = 'Increase window width' })
vim.keymap.set({'n', 'v'}, '<s-up>', small_step .. 'k') vim.keymap.set({'n', 'v'}, '<s-up>', small_step .. 'k', { desc = 'Move cursor up ' .. small_step .. ' lines' })
vim.keymap.set({'n', 'v'}, '<s-down>', small_step .. 'j') vim.keymap.set({'n', 'v'}, '<s-down>', small_step .. 'j', { desc = 'Move cursor down ' .. small_step .. ' lines' })
vim.keymap.set({'n', 'v'}, '<c-up>', small_step .. '<c-y>' .. small_step .. 'k') vim.keymap.set({'n', 'v'}, '<c-up>', small_step .. '<c-y>' .. small_step .. 'k', { desc = 'Scroll up ' .. small_step .. ' lines' })
vim.keymap.set({'n', 'v'}, '<c-down>', small_step .. '<c-e>' .. small_step .. 'j') vim.keymap.set({'n', 'v'}, '<c-down>', small_step .. '<c-e>' .. small_step .. 'j', { desc = 'Scroll down ' .. small_step .. ' lines' })
vim.keymap.set({'n', 'v'}, '<pageup>', big_step .. '<c-y><cmd>lua center_cursor()<cr>') vim.keymap.set({'n', 'v'}, '<pageup>', big_step .. '<c-y><cmd>lua center_cursor()<cr>', { desc = 'Page up' })
vim.keymap.set({'n', 'v'}, '<pagedown>', big_step .. '<c-e><cmd>lua center_cursor()<cr>') vim.keymap.set({'n', 'v'}, '<pagedown>', big_step .. '<c-e><cmd>lua center_cursor()<cr>', { desc = 'Page down' })
vim.keymap.set({'n', 'v'}, '<home>', '^') vim.keymap.set({'n', 'v'}, '<home>', '^', { desc = 'Move to beginning of line' })
vim.keymap.set({'n', 'v'}, '<end>', '$') vim.keymap.set({'n', 'v'}, '<end>', '$', { desc = 'Move to end of line' })
vim.keymap.set('n', 'zz', center_cursor) vim.keymap.set('n', 'zz', center_cursor, { desc = 'Center cursor vertically' })
vim.keymap.set('i', '<s-up>', '<c-o>' .. small_step .. 'k') vim.keymap.set('i', '<s-up>', '<c-o>' .. small_step .. 'k', { desc = 'Move cursor up ' .. small_step .. ' lines' })
vim.keymap.set('i', '<s-down>', '<c-o>' .. small_step .. 'j') vim.keymap.set('i', '<s-down>', '<c-o>' .. small_step .. 'j', { desc = 'Move cursor down ' .. small_step .. ' lines' })
vim.keymap.set('i', '<c-up>', '<c-o>' .. small_step .. '<c-y><c-o>' .. small_step .. 'k') vim.keymap.set('i', '<c-up>', '<c-o>' .. small_step .. '<c-y><c-o>' .. small_step .. 'k', { desc = 'Scroll up ' .. small_step .. ' lines' })
vim.keymap.set('i', '<c-down>', '<c-o>' .. small_step .. '<c-e><c-o>' .. small_step .. 'j') vim.keymap.set('i', '<c-down>', '<c-o>' .. small_step .. '<c-e><c-o>' .. small_step .. 'j', { desc = 'Scroll down ' .. small_step .. ' lines' })
vim.keymap.set('i', '<pageup>', '<c-o>' .. big_step .. '<c-y><cmd>lua center_cursor()<cr>') vim.keymap.set('i', '<pageup>', '<c-o>' .. big_step .. '<c-y><cmd>lua center_cursor()<cr>', { desc = 'Page up' })
vim.keymap.set('i', '<pagedown>', '<c-o>' .. big_step .. '<c-e><cmd>lua center_cursor()<cr>') vim.keymap.set('i', '<pagedown>', '<c-o>' .. big_step .. '<c-e><cmd>lua center_cursor()<cr>', { desc = 'Page down' })
vim.keymap.set('i', '<home>', '<c-o>^') vim.keymap.set('i', '<home>', '<c-o>^', { desc = 'Move to beginning of line' })
vim.keymap.set('i', '<end>', '<c-o>$') vim.keymap.set('i', '<end>', '<c-o>$', { desc = 'Move to end of line' })
vim.keymap.set('i', '<c-h>', '<c-w>') -- <c-bs> is interpreted as <c-h> (^H) by my terminal. You can check yours with <c-v><c-bs> in insert mode.
vim.keymap.set('i', '<c-delete>', '<c-o>"_dw') vim.keymap.set('i', '<c-h>', '<c-w>', { desc = 'Remove word backwards' })
vim.keymap.set('i', '<c-delete>', '<c-o>"_dw', { desc = 'Remove word forwards' })
vim.keymap.set('n', '<bs>', '"_dd') vim.keymap.set('n', '<bs>', '"_dd', { desc = 'Delete line without yanking' })
vim.keymap.set('v', '<bs>', '"_d') vim.keymap.set('v', '<bs>', '"_d', { desc = 'Delete selection without yanking' })
vim.keymap.set('n', '<m-bs>', 'mzk"_ddg`z') vim.keymap.set('n', '<m-bs>', 'mzk"_ddg`z', { desc = 'Delete line above without yanking' })
vim.keymap.set('n', '<m-enter>', '<cmd>call append(line("."), "")<cr>') vim.keymap.set('n', '<m-enter>', '<cmd>call append(line("."), "")<cr>', { desc = 'Insert newline below' })
vim.keymap.set('i', '<m-enter>', '<c-o>O') vim.keymap.set('i', '<m-enter>', '<c-o>$<cr>', { desc = 'Insert newline below and go to it' })
vim.keymap.set({'n', 'i'}, '<m-up>', '<cmd>m -2<cr>') vim.keymap.set({'n', 'i'}, '<m-up>', '<cmd>m -2<cr>', { desc = 'Move line up' })
vim.keymap.set({'n', 'i'}, '<m-down>', '<cmd>m +1<cr>') vim.keymap.set({'n', 'i'}, '<m-down>', '<cmd>m +1<cr>', { desc = 'Move line down' })
vim.cmd [[ vim.cmd [[
xnoremap <m-up> :m-2<cr>gv=gv xnoremap <m-up> :m-2<cr>gv=gv
xnoremap <m-down> :m'>+<cr>gv=gv xnoremap <m-down> :m'>+<cr>gv=gv
]] ]]
vim.keymap.set('v', '>', '>gv') vim.keymap.set('v', '>', '>gv', { desc = 'Indent selection right' })
vim.keymap.set('v', '<', '<gv') vim.keymap.set('v', '<', '<gv', { desc = 'Indent selection left' })
vim.keymap.set('n', 'gd', '<c-]>') vim.keymap.set('n', 'gd', '<c-]>', { desc = 'Jump to definition' })
vim.keymap.set('n', '<leader>/', 'gcc', { remap = true }) vim.keymap.set('n', '<leader>/', 'gcc', { remap = true, desc = 'Toggle comment' })
vim.keymap.set('v', '<leader>/', 'gcgv', { remap = true }) vim.keymap.set('v', '<leader>/', 'gcgv', { remap = true, desc = 'Toggle comment' })
vim.keymap.set('n', 'gl', '<cmd>lua vim.diagnostic.open_float()<cr>') vim.keymap.set('n', 'gl', vim.diagnostic.open_float, { desc = 'Show diagnostics' })
vim.keymap.set('n', 'gj', '<cmd>lua vim.diagnostic.goto_next()<cr>') vim.keymap.set('n', 'gj', function() vim.diagnostic.jump { count = 1 } end, { desc = 'Next diagnostic' })
vim.keymap.set('n', 'gk', '<cmd>lua vim.diagnostic.goto_prev()<cr>') vim.keymap.set('n', 'gk', function() vim.diagnostic.jump { count = -1 } end, { desc = 'Previuous diagnostic' })
vim.keymap.set('n', '<leader>la', 'gra') vim.keymap.set('n', '<leader>la', vim.lsp.buf.code_action, { desc = 'Code actions' })
vim.keymap.set('n', '<leader>lf', '<cmd>lua vim.lsp.buf.format({ async = true })<cr>') vim.keymap.set('n', '<leader>lf', function() vim.lsp.buf.format { async = true } end, { desc = 'Format buffer' })
vim.keymap.set('n', '<leader>ln', '<cmd>lua vim.lsp.buf.rename()<cr>') vim.keymap.set('n', '<leader>ln', vim.lsp.buf.rename, { desc = 'Rename symbol' })
vim.keymap.set('n', '<leader>lr', '<cmd>lua vim.lsp.buf.references()<cr>') vim.keymap.set('n', '<leader>lr', vim.lsp.buf.references, { desc = 'List references' })
for _, keymap in pairs(PLUGIN_KEYMAPS) do for _, keymap in pairs(PLUGIN_KEYMAPS) do
keymap() keymap()

39
lua/plugin/bufferline.lua Normal file
View File

@ -0,0 +1,39 @@
local M = {
'akinsho/bufferline.nvim',
dependencies = 'nvim-tree/nvim-web-devicons',
}
M.config = function()
vim.opt.termguicolors = true
require 'bufferline'.setup {
options = {
offsets = {
{
filetype = 'NvimTree',
text = 'File Explorer 󰄛',
highlight = 'Directory',
padding = 1,
separator = false,
},
},
diagnostics = 'nvim_lsp',
show_buffer_close_icons = false,
show_close_icon = false,
indicator = {
style = 'icon',
icon = '',
},
modified_icon = '',
},
}
end
M.keymap = function()
vim.keymap.set('n', '<s-h>', '<cmd>BufferLineCyclePrev<cr>', { desc = 'Previous buffer' })
vim.keymap.set('n', '<s-l>', '<cmd>BufferLineCycleNext<cr>', { desc = 'Next buffer' })
vim.keymap.set('n', '<s-c-left>', '<cmd>BufferLineCyclePrev<cr>', { desc = 'Previous buffer' })
vim.keymap.set('n', '<s-c-right>', '<cmd>BufferLineCycleNext<cr>', { desc = 'Next buffer' })
end
return M

36
lua/plugin/copilot.lua Normal file
View File

@ -0,0 +1,36 @@
local M = {
'github/copilot.vim',
}
local copilot_enabled = true
M.keymap = function()
vim.g.copilot_no_tab_map = true
vim.keymap.set('i', '<c-j>', 'copilot#Accept("\\<cr>")', {
expr = true,
replace_keycodes = false,
desc = 'Accept Copilot suggestion'
})
vim.keymap.set('i', '<c-cr>', 'copilot#Accept("\\<cr>")', {
expr = true,
replace_keycodes = false,
desc = 'Accept Copilot suggestion'
})
vim.keymap.set('i', '<c-\\>', 'copilot#AcceptWord("\\<cr>")', {
expr = true,
replace_keycodes = false,
desc = 'Accept Copilot suggested word'
})
vim.keymap.set('n', '<leader>d', function()
if copilot_enabled then
vim.cmd.Copilot('disable')
vim.notify('Copilot off', vim.log.levels.INFO)
else
vim.cmd.Copilot('enable')
vim.notify('Copilot on', vim.log.levels.INFO)
end
copilot_enabled = not copilot_enabled
end, { desc = 'Toggle Copilot' })
end
return M

43
lua/plugin/gitsigns.lua Normal file
View File

@ -0,0 +1,43 @@
local M = {
'lewis6991/gitsigns.nvim',
opts = {
signs = {
add = { text = '' },
change = { text = '' },
delete = { text = '' },
topdelete = { text = '' },
changedelete = { text = '' },
untracked = { text = '?' },
},
signs_staged = {
add = { text = '' },
change = { text = '' },
delete = { text = '' },
topdelete = { text = '' },
changedelete = { text = '' },
untracked = { text = '?' },
},
signs_staged_enable = true,
current_line_blame = true,
max_file_length = 40000,
},
}
M.keymap = function()
local git = require 'gitsigns'
vim.keymap.set('n', '<leader>gl', git.blame_line, { desc = 'Git blame line' })
vim.keymap.set('n', '<leader>gg', git.toggle_word_diff, { desc = 'Git toggle word diff' })
vim.keymap.set({ 'n', 'v' }, '<leader>gr', git.reset_hunk, { desc = 'Git reset hunk' })
vim.keymap.set('n', '<m-b>', git.stage_buffer, { desc = 'Git stage buffer' })
vim.keymap.set('n', '<m-j>', function() git.nav_hunk 'next' end, { desc = 'Git next hunk' })
vim.keymap.set('n', '<m-k>', function() git.nav_hunk 'prev' end, { desc = 'Git previous hunk' })
vim.keymap.set('n', '<s-c-down>', function() git.nav_hunk 'next' end, { desc = 'Git next hunk' })
vim.keymap.set('n', '<s-c-up>', function() git.nav_hunk 'prev' end, { desc = 'Git previous hunk' })
vim.keymap.set('n', '<m-l>', git.preview_hunk, { desc = 'Git preview hunk' })
vim.keymap.set('n', '<m-h>', git.stage_hunk, { desc = 'Git stage hunk' })
vim.keymap.set('n', '<m-right>', git.preview_hunk, { desc = 'Git preview hunk' })
vim.keymap.set('n', '<m-left>', git.stage_hunk, { desc = 'Git stage hunk' })
end
return M

View File

@ -1,5 +1,5 @@
local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim' local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
if not vim.loop.fs_stat(lazypath) then if not vim.uv.fs_stat(lazypath) then
vim.fn.system { vim.fn.system {
'git', 'git',
'clone', 'clone',

12
lua/plugin/lualine.lua Normal file
View File

@ -0,0 +1,12 @@
local M = {
'nvim-lualine/lualine.nvim',
dependencies = { 'nvim-tree/nvim-web-devicons' },
opts = {
options = {
section_separators = { left = '', right = '' },
component_separators = { left = '', right = '' },
},
},
}
return M

View File

@ -3,9 +3,9 @@ local M = {
opts = { opts = {
ui = { ui = {
icons = { icons = {
package_installed = "", package_installed = '',
package_pending = "", package_pending = '',
package_uninstalled = "" package_uninstalled = ''
}, },
}, },
}, },

View File

@ -41,19 +41,18 @@ M.config = function()
return kind return kind
end end
}, },
mapping = cmp.mapping.preset.insert({ -- mapping = cmp.mapping.preset.insert {
mapping = {
['<c-b>'] = cmp.mapping.scroll_docs(-4), ['<c-b>'] = cmp.mapping.scroll_docs(-4),
['<c-f>'] = cmp.mapping.scroll_docs(4), ['<c-f>'] = cmp.mapping.scroll_docs(4),
['<c-Space>'] = cmp.mapping.complete(), ['<c-space>'] = cmp.mapping.complete(),
['<c-e>'] = cmp.mapping.abort(), ['<c-e>'] = cmp.mapping.abort(),
['<down>'] = cmp.mapping.abort(), ['<down>'] = cmp.mapping.select_next_item(),
['<up>'] = cmp.mapping.abort(), ['<up>'] = cmp.mapping.select_prev_item(),
['<c-down>'] = cmp.mapping.select_next_item(),
['<c-up>'] = cmp.mapping.select_prev_item(),
['<tab>'] = cmp.mapping.select_next_item(), ['<tab>'] = cmp.mapping.select_next_item(),
['<s-tab>'] = cmp.mapping.select_prev_item(), ['<s-tab>'] = cmp.mapping.select_prev_item(),
['<cr>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. ['<cr>'] = cmp.mapping.confirm { select = true }, -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
}), },
sources = cmp.config.sources( sources = cmp.config.sources(
{ {
{ name = 'nvim_lsp' }, { name = 'nvim_lsp' },
@ -74,4 +73,17 @@ M.config = function()
) )
end end
M.keymap = function()
local cmp = require 'cmp'
vim.keymap.set('n', '<leader>a', function()
if cmp.get_config().completion.autocomplete then
cmp.setup { completion = { autocomplete = false } }
vim.notify('Autocomplete off', vim.log.levels.INFO)
else
cmp.setup { completion = { autocomplete = { cmp.TriggerEvent.TextChanged } } }
vim.notify('Autocomplete on', vim.log.levels.INFO)
end
end, { desc = 'Toggle autocomplete' })
end
return M return M

View File

@ -9,10 +9,52 @@ local M = {
side = 'left', side = 'left',
width = 40, width = 40,
}, },
renderer = {
indent_width = 2,
highlight_git = true,
highlight_opened_files = 'all',
icons = {
git_placement = 'right_align',
show = {
git = true,
folder = true,
file = true,
folder_arrow = true,
},
glyphs = {
git = {
unstaged = '~',
staged = '',
unmerged = '',
renamed = '󱦰',
untracked = '?',
deleted = '',
ignored = '',
},
},
}
},
filters = {
enable = true,
git_ignored = false,
dotfiles = false,
git_clean = false,
no_buffer = false,
no_bookmark = false,
},
live_filter = {
always_show_folders = false,
},
actions = { actions = {
expand_all = { expand_all = {
max_folder_discovery = 1000, max_folder_discovery = 3000,
exclude = { '.git', 'target', 'build', 'node_modules' }, exclude = {
'.git',
'target',
'build',
'node_modules',
'.yarn',
},
}, },
}, },
update_focused_file = { update_focused_file = {
@ -21,13 +63,13 @@ local M = {
diagnostics = { diagnostics = {
enable = true, enable = true,
show_on_dirs = true, show_on_dirs = true,
show_on_open_dirs = true, show_on_open_dirs = false,
}, },
}, },
} }
M.keymap = function() M.keymap = function()
vim.keymap.set('n', '<leader>e', '<cmd>NvimTreeFindFileToggle<cr>') vim.keymap.set('n', '<leader>e', '<cmd>NvimTreeFindFileToggle<cr>', { desc = 'Toggle Nvim Tree' })
end end
return M return M

12
lua/plugin/smartword.lua Normal file
View File

@ -0,0 +1,12 @@
local M = {
'kana/vim-smartword',
}
M.config = function()
vim.keymap.set({ 'n', 'v' }, '<c-right>', '<plug>(smartword-e)')
vim.keymap.set({ 'n', 'v' }, '<c-left>', '<plug>(smartword-b)')
vim.keymap.set('i', '<c-right>', '<c-o><plug>(smartword-e)<c-o>a')
vim.keymap.set('i', '<c-left>', '<c-o><plug>(smartword-b)')
end
return M

View File

@ -0,0 +1,6 @@
local M = {
'nvim-telescope/telescope-ui-select.nvim',
dependencies = { 'nvim-telescope/telescope.nvim' },
}
return M

View File

@ -6,6 +6,7 @@ local M = {
} }
function M.config() function M.config()
local telescope = require 'telescope'
local actions = require 'telescope.actions' local actions = require 'telescope.actions'
require 'telescope'.setup { require 'telescope'.setup {
defaults = { defaults = {
@ -23,7 +24,6 @@ function M.config()
sorting_strategy = 'ascending', sorting_strategy = 'ascending',
scroll_strategy = 'limit', scroll_strategy = 'limit',
mappings = { mappings = {
i = {},
n = { n = {
['<esc>'] = actions.close, ['<esc>'] = actions.close,
['q'] = actions.close, ['q'] = actions.close,
@ -44,31 +44,37 @@ function M.config()
extensions = { extensions = {
file_browser = { file_browser = {
git_icons = { git_icons = {
added = "A", added = 'A',
changed = "M", changed = 'M',
copied = "C", copied = 'C',
deleted = "D", deleted = 'D',
renamed = "R", renamed = 'R',
unmerged = "U", unmerged = 'U',
untracked = "?", untracked = '?',
}, },
}, },
}, },
} }
telescope.load_extension 'ui-select'
end end
M.keymap = function() M.keymap = function()
local builtin = require 'telescope.builtin' local builtin = require 'telescope.builtin'
vim.keymap.set('n', '<leader>f', builtin.find_files) vim.keymap.set('n', '<leader>f', builtin.find_files, { desc = 'Find files' })
vim.keymap.set('n', '<leader>r', builtin.resume) vim.keymap.set('n', '<leader>r', builtin.resume, { desc = 'Resume last search' })
vim.keymap.set('n', '<s-f>', function() builtin.grep_string { word_match = '-w' } end) vim.keymap.set('n', '<s-f>', function() builtin.grep_string { word_match = '-w' } end,
vim.keymap.set('v', '<s-f>', builtin.grep_string) { desc = 'Find word under cursor' })
vim.keymap.set('n', '<leader>st', builtin.live_grep) vim.keymap.set('v', '<s-f>', builtin.grep_string, { desc = 'Find visual selection' })
vim.keymap.set('n', '<leader>o', builtin.lsp_document_symbols) vim.keymap.set('n', '<leader>st', builtin.live_grep, { desc = 'Search for text in files' })
vim.keymap.set('n', '<leader>p', builtin.lsp_workspace_symbols) vim.keymap.set('n', '<leader>sd', builtin.diagnostics, { desc = 'List diagnostics' })
vim.keymap.set('n', '<leader>gb', builtin.git_branches) vim.keymap.set('n', '<leader>o', builtin.lsp_document_symbols, { desc = 'List document symbols' })
vim.keymap.set('n', '<leader>gc', builtin.git_commits) vim.keymap.set('n', '<leader>p', builtin.lsp_workspace_symbols, { desc = 'List workspace symbols' })
vim.keymap.set('n', '<m-q>', builtin.git_status) vim.keymap.set('n', '<leader>gb', builtin.git_branches, { desc = 'List git branches' })
vim.keymap.set('n', '<leader>gc', builtin.git_commits, { desc = 'List git commits' })
vim.keymap.set('n', '<m-q>', function() builtin.git_status {
max_results = 10000,
temp__scrolling_limit = 10000,
} end, { desc = 'Git status' })
end end
return M return M

View File

@ -0,0 +1,11 @@
local M = {
'folke/todo-comments.nvim',
dependencies = { 'nvim-lua/plenary.nvim' },
opts = {},
}
M.keymap = function()
vim.keymap.set('n', '<leader>t', '<cmd>TodoTelescope<cr>', { desc = 'Find TODO comments' })
end
return M

View File

@ -5,7 +5,7 @@ local M = {
M.keymap = function() M.keymap = function()
for i = 1, 9 do for i = 1, 9 do
vim.keymap.set({'n', 't'}, '<m-' .. i .. '>', '<cmd>' .. i .. 'ToggleTerm direction=float name=term-' .. i .. '<cr>') vim.keymap.set({'n', 't'}, '<m-' .. i .. '>', '<cmd>' .. i .. 'ToggleTerm direction=float name=term-' .. i .. '<cr>', { desc = 'Toggle terminal ' .. i })
end end
end end

16
lua/plugin/which-key.lua Normal file
View File

@ -0,0 +1,16 @@
local M = {
'folke/which-key.nvim',
event = 'VeryLazy',
config = true,
keys = {
{
'<leader>?',
function()
require 'which-key'.show({ global = false })
end,
desc = 'Buffer local mappings',
}
}
}
return M