Added rest of configurations
parent
70d36b38d8
commit
d2c1c04fad
|
|
@ -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
|
||||||
|
|
|
||||||
16
init.lua
16
init.lua
|
|
@ -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'
|
||||||
|
|
|
||||||
|
|
@ -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" }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
|
||||||
109
lua/keymap.lua
109
lua/keymap.lua
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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',
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -3,9 +3,9 @@ local M = {
|
||||||
opts = {
|
opts = {
|
||||||
ui = {
|
ui = {
|
||||||
icons = {
|
icons = {
|
||||||
package_installed = "✓",
|
package_installed = '✓',
|
||||||
package_pending = "➜",
|
package_pending = '➜',
|
||||||
package_uninstalled = "✗"
|
package_uninstalled = '✗'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -34,26 +34,25 @@ M.config = function()
|
||||||
local kind = require 'lspkind'.cmp_format {
|
local kind = require 'lspkind'.cmp_format {
|
||||||
mode = 'symbol_text',
|
mode = 'symbol_text',
|
||||||
maxwidth = 50,
|
maxwidth = 50,
|
||||||
}(entry, vim_item)
|
} (entry, vim_item)
|
||||||
local strings = vim.split(kind.kind, '%s', { trimempty = true })
|
local strings = vim.split(kind.kind, '%s', { trimempty = true })
|
||||||
kind.kind = ' ' .. (strings[1] or '') .. ' '
|
kind.kind = ' ' .. (strings[1] or '') .. ' '
|
||||||
kind.menu = ' (' .. (strings[2] or '') .. ')'
|
kind.menu = ' (' .. (strings[2] or '') .. ')'
|
||||||
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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
local M = {
|
||||||
|
'nvim-telescope/telescope-ui-select.nvim',
|
||||||
|
dependencies = { 'nvim-telescope/telescope.nvim' },
|
||||||
|
}
|
||||||
|
|
||||||
|
return M
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
Loading…
Reference in New Issue