cumulative update
This commit is contained in:
parent
3ecbac352e
commit
c360fc2339
71 changed files with 3281 additions and 380 deletions
|
|
@ -1,18 +1,19 @@
|
|||
-- Open NvimTree on startup
|
||||
local function open_nvim_tree(data)
|
||||
local real_file = vim.fn.filereadable(data.file) == 1
|
||||
local no_name = data.file == "" and vim.bo[data.buf].buftype == ""
|
||||
local directory = vim.fn.isdirectory(data.file) == 1
|
||||
vim.api.nvim_create_autocmd({ "VimEnter" }, {
|
||||
callback = function(data)
|
||||
local real_file = vim.fn.filereadable(data.file) == 1
|
||||
local no_name = data.file == "" and vim.bo[data.buf].buftype == ""
|
||||
local directory = vim.fn.isdirectory(data.file) == 1
|
||||
|
||||
if real_file or no_name then
|
||||
require("nvim-tree.api").tree.toggle({ focus = false, find_file = true, })
|
||||
elseif directory then
|
||||
vim.cmd.enew()
|
||||
vim.cmd.cd(data.file)
|
||||
require("nvim-tree.api").tree.open()
|
||||
if real_file or no_name then
|
||||
require("nvim-tree.api").tree.toggle({ focus = false, find_file = true, })
|
||||
elseif directory then
|
||||
vim.cmd.enew()
|
||||
vim.cmd.cd(data.file)
|
||||
require("nvim-tree.api").tree.open()
|
||||
end
|
||||
end
|
||||
end
|
||||
vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree })
|
||||
})
|
||||
|
||||
-- Resotre cursor on exit
|
||||
-- vim.api.nvim_create_autocmd("VimLeave", {
|
||||
|
|
|
|||
1
.config/nvim/lua/config/lsp/cmake.lua
Normal file
1
.config/nvim/lua/config/lsp/cmake.lua
Normal file
|
|
@ -0,0 +1 @@
|
|||
return {}
|
||||
1
.config/nvim/lua/config/lsp/gopls.lua
Normal file
1
.config/nvim/lua/config/lsp/gopls.lua
Normal file
|
|
@ -0,0 +1 @@
|
|||
return {}
|
||||
|
|
@ -4,7 +4,38 @@ require('mason-lspconfig').setup()
|
|||
local mason_lspconfig = require('mason-lspconfig')
|
||||
|
||||
local on_attach = function(_, bufnr)
|
||||
require("config.lsp.keybinds").init_keymap(bufnr)
|
||||
local nmap = function(keys, func, desc)
|
||||
if desc then
|
||||
desc = 'LSP: ' .. desc
|
||||
end
|
||||
|
||||
vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc })
|
||||
end
|
||||
|
||||
nmap('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
|
||||
nmap('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
|
||||
|
||||
nmap('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition')
|
||||
nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
|
||||
nmap('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
|
||||
nmap('<leader>D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition')
|
||||
nmap("<leader>i", vim.diagnostic.open_float)
|
||||
|
||||
nmap('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
|
||||
nmap('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
|
||||
|
||||
-- See `:help K` for why this keymap
|
||||
nmap('K', vim.lsp.buf.hover, 'Hover Documentation')
|
||||
nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation')
|
||||
|
||||
-- Lesser used LSP functionality
|
||||
nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
|
||||
nmap('<leader>wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder')
|
||||
nmap('<leader>wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder')
|
||||
nmap('<leader>wl', function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end, '[W]orkspace [L]ist Folders')
|
||||
-- require("config.lsp.keybinds").init_keymap(bufnr)
|
||||
|
||||
vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
|
||||
vim.lsp.buf.format()
|
||||
|
|
@ -15,6 +46,9 @@ local servers = {
|
|||
clangd = require("config.lsp.clangd"),
|
||||
pyright = require("config.lsp.pyright"),
|
||||
lua_ls = require("config.lsp.lua_ls"),
|
||||
gopls = require("config.lsp.gopls"),
|
||||
rust_analyzer = require("config.lsp.rust_analyzer"),
|
||||
cmake = require("config.lsp.cmake"),
|
||||
}
|
||||
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
|
|
|
|||
|
|
@ -1,36 +1 @@
|
|||
local M = {}
|
||||
|
||||
function M.init_keymap(bufnr)
|
||||
local nmap = function(keys, func, desc)
|
||||
if desc then
|
||||
desc = 'LSP: ' .. desc
|
||||
end
|
||||
|
||||
vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc })
|
||||
end
|
||||
|
||||
nmap('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
|
||||
nmap('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
|
||||
|
||||
nmap('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition')
|
||||
nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
|
||||
nmap('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
|
||||
nmap('<leader>D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition')
|
||||
|
||||
nmap('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
|
||||
nmap('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
|
||||
|
||||
-- See `:help K` for why this keymap
|
||||
nmap('K', vim.lsp.buf.hover, 'Hover Documentation')
|
||||
nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation')
|
||||
|
||||
-- Lesser used LSP functionality
|
||||
nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
|
||||
nmap('<leader>wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder')
|
||||
nmap('<leader>wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder')
|
||||
nmap('<leader>wl', function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end, '[W]orkspace [L]ist Folders')
|
||||
end
|
||||
|
||||
return M
|
||||
return {}
|
||||
|
|
|
|||
1
.config/nvim/lua/config/lsp/rust_analyzer.lua
Normal file
1
.config/nvim/lua/config/lsp/rust_analyzer.lua
Normal file
|
|
@ -0,0 +1 @@
|
|||
return {}
|
||||
|
|
@ -2,15 +2,15 @@ local map = vim.keymap.set
|
|||
|
||||
-- Unbind keys
|
||||
map('n', '<C-q>', '<NOP>')
|
||||
map('v', 'K', '<NOP>')
|
||||
-- map('v', 'K', '<NOP>')
|
||||
|
||||
-- Movement between buffers
|
||||
map({ 'n', 'v', 'i' }, '<A-u>', ':bp<CR>')
|
||||
map({ 'n', 'v', 'i' }, '<A-i>', ':bn<CR>')
|
||||
map({ 'n', 'v' }, '<A-u>', ':bp<CR>', { silent = true })
|
||||
map({ 'n', 'v' }, '<A-i>', ':bn<CR>', { silent = true })
|
||||
|
||||
-- Remap for dealing with word wrap
|
||||
map('n', 'k', 'v:count == 0 ? "gk" : "k"', { expr = true, silent = true })
|
||||
map('n', 'j', 'v:count == 0 ? "gj" : "j"', { expr = true, silent = true })
|
||||
map({ 'n', 'v' }, 'k', 'v:count == 0 ? "gk" : "k"', { expr = true, silent = true })
|
||||
map({ 'n', 'v' }, 'j', 'v:count == 0 ? "gj" : "j"', { expr = true, silent = true })
|
||||
|
||||
-- Exit buffers/nvim with <leader>
|
||||
map('n', '<leader>q', function() require('utils.close_buffer').close_buffer() end)
|
||||
|
|
@ -18,6 +18,12 @@ map('n', '<leader>1', function() require('utils.close_buffer').close_buffer(true
|
|||
map('n', '<leader>Q', ':%bd | quit<CR>')
|
||||
map('n', '<leader>!', ':%bd! | quit!<CR>')
|
||||
map('n', '<leader>w', ':write<CR>')
|
||||
map('n', '<leader>W', function() vim.cmd.write(vim.fn.input("File: ")) end)
|
||||
map('n', '<leader>e', ':e<CR>')
|
||||
|
||||
-- Duplicate leader feats to gradually move to
|
||||
map('n', '<C-q>', function() require('utils.close_buffer').close_buffer() end)
|
||||
map('n', '<C-1>', function() require('utils.close_buffer').close_buffer(true) end)
|
||||
|
||||
-- Copy and paste from clipboard
|
||||
map('n', '<leader>y', '"+yy<ESC>')
|
||||
|
|
@ -25,7 +31,16 @@ map('v', '<leader>y', '"+y<ESC>')
|
|||
map({ 'n', 'v' }, '<leader>p', '"+p<ESC>')
|
||||
map({ 'n', 'v' }, '<leader>P', '"+P<ESC>')
|
||||
|
||||
-- buffer size
|
||||
map({ 'n', 'v' }, '<leader>n', '<C-w>10<')
|
||||
map({ 'n', 'v' }, '<leader>m', '<C-w>10>')
|
||||
map({ 'n', 'v' }, '<leader>N', '<C-w>6-')
|
||||
map({ 'n', 'v' }, '<leader>M', '<C-w>6+')
|
||||
|
||||
-- Remap <M-BS> to remove last word
|
||||
map('i', '<M-BS>', '<C-w>')
|
||||
|
||||
map('n', '<leader>F', function() vim.lsp.buf.format() end)
|
||||
|
||||
map('n', '<C-M-k>', ':m-2<CR>', { silent = true })
|
||||
map('n', '<C-M-j>', ':m+1<CR>', { silent = true })
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
-- Highlight search results
|
||||
vim.o.hlsearch = true
|
||||
|
||||
-- Enable line numbers
|
||||
|
|
@ -7,8 +8,12 @@ vim.wo.relativenumber = true
|
|||
-- Enable mouse mode
|
||||
vim.o.mouse = 'a'
|
||||
|
||||
-- Enable break indent
|
||||
-- Indentation
|
||||
vim.o.breakindent = true
|
||||
vim.o.tabstop = 4
|
||||
vim.o.shiftwidth = 4
|
||||
vim.o.expandtab = true
|
||||
vim.o.smartindent = false
|
||||
|
||||
-- Save undo history
|
||||
vim.o.undofile = true
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ require("cmake-tools").setup {
|
|||
cmake_command = "cmake", -- this is used to specify cmake command path
|
||||
cmake_regenerate_on_save = true, -- auto generate when save CMakeLists.txt
|
||||
cmake_generate_options = { "-DCMAKE_EXPORT_COMPILE_COMMANDS=1" }, -- this will be passed when invoke `CMakeGenerate`
|
||||
cmake_build_options = {}, -- this will be passed when invoke `CMakeBuild`
|
||||
cmake_build_options = { "-j14" }, -- this will be passed when invoke `CMakeBuild`
|
||||
-- support macro expansion:
|
||||
-- ${kit}
|
||||
-- ${kitGenerator}
|
||||
|
|
@ -60,16 +60,15 @@ require("cmake-tools").setup {
|
|||
},
|
||||
},
|
||||
cmake_notifications = {
|
||||
enabled = false, -- show cmake execution progress in nvim-notify
|
||||
enabled = true, -- show cmake execution progress in nvim-notify
|
||||
spinner = { "⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏" }, -- icons used for progress display
|
||||
refresh_rate_ms = 100, -- how often to iterate icons
|
||||
},
|
||||
}
|
||||
|
||||
local map = vim.keymap.set
|
||||
|
||||
-- Mappings
|
||||
map('n', '<leader>b', ':CMakeBuild<CR>')
|
||||
map('n', '<leader>c', ':CMakeClose<CR>')
|
||||
map('n', '<leader>r', ':CMakeRun<CR>')
|
||||
vim.keymap.set('n', '<leader>b', ':CMakeBuild<CR>')
|
||||
vim.keymap.set('n', '<leader>c', ':CMakeClose<CR>')
|
||||
vim.keymap.set('n', '<leader>r', ':CMakeRun<CR>')
|
||||
vim.keymap.set('n', '<leader>G', ':CMakeGenerate<CR>')
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
local map = vim.keymap.set
|
||||
|
||||
map('n', '<C-_>', require('Comment.api').toggle.linewise.current)
|
||||
map('i', '<C-_>', require('Comment.api').toggle.linewise.current)
|
||||
map('x', '<C-_>', function()
|
||||
map({ 'n', 'i' }, '<C-_>', require('Comment.api').toggle.linewise.current)
|
||||
|
||||
map('v', '<C-_>', function()
|
||||
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes('<ESC>', true, false, true), 'nx', false)
|
||||
require('Comment.api').toggle.linewise(vim.fn.visualmode())
|
||||
end
|
||||
|
|
|
|||
|
|
@ -7,3 +7,4 @@ require('config.plugins.nvim-tree')
|
|||
require('config.plugins.telescope')
|
||||
require('config.plugins.treesitter')
|
||||
require('config.plugins.navigator')
|
||||
require('config.plugins.trouble')
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
require('nvim-autopairs').setup({
|
||||
disable_filetype = { "TelescopePrompt" , "vim" },
|
||||
enable_check_bracket_line = false,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1,6 +1,15 @@
|
|||
vim.g.loaded_netrw = 1
|
||||
vim.g.loaded_netrwPlugin = 1
|
||||
|
||||
require("nvim-tree").setup()
|
||||
require("nvim-tree").setup({
|
||||
update_focused_file = {
|
||||
enable = true,
|
||||
update_root = false,
|
||||
ignore_list = { "help" },
|
||||
},
|
||||
filters = {
|
||||
custom = { '.git' },
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set('n', '<C-b>', ':NvimTreeToggle<CR>')
|
||||
vim.keymap.set('n', '<C-m>', ':NvimTreeToggle<CR>', { silent=true })
|
||||
|
|
|
|||
|
|
@ -9,18 +9,15 @@ require('telescope').setup {
|
|||
},
|
||||
}
|
||||
|
||||
-- Enable telescope fzf native, if installed
|
||||
pcall(require('telescope').load_extension, 'fzf')
|
||||
|
||||
-- See `:help telescope.builtin`
|
||||
vim.keymap.set('n', '<leader>?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' })
|
||||
-- vim.keymap.set('n', '<leader><space>', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' })
|
||||
vim.keymap.set('n', '<leader>/', 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', '<leader>gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' })
|
||||
|
|
@ -30,3 +27,4 @@ vim.keymap.set('n', '<leader>sw', require('telescope.builtin').grep_string, { de
|
|||
vim.keymap.set('n', '<leader>sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' })
|
||||
vim.keymap.set('n', '<leader>sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' })
|
||||
vim.keymap.set('n', '<leader>sr', require('telescope.builtin').resume, { desc = '[S]earch [R]esume' })
|
||||
vim.keymap.set('n', '<leader>sm', require('telescope.builtin').treesitter)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ vim.defer_fn(function()
|
|||
ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'javascript', 'typescript', 'vimdoc', 'vim', 'bash' },
|
||||
|
||||
-- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
|
||||
auto_install = false,
|
||||
auto_install = true,
|
||||
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
|
|
@ -51,15 +51,7 @@ vim.defer_fn(function()
|
|||
['[]'] = '@class.outer',
|
||||
},
|
||||
},
|
||||
swap = {
|
||||
enable = true,
|
||||
swap_next = {
|
||||
['<leader>a'] = '@parameter.inner',
|
||||
},
|
||||
swap_previous = {
|
||||
['<leader>A'] = '@parameter.inner',
|
||||
},
|
||||
},
|
||||
swap = { enable = false, },
|
||||
},
|
||||
}
|
||||
end, 0)
|
||||
|
|
|
|||
6
.config/nvim/lua/config/plugins/trouble.lua
Normal file
6
.config/nvim/lua/config/plugins/trouble.lua
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
vim.keymap.set("n", "<leader>xx", function() require("trouble").toggle() end)
|
||||
vim.keymap.set("n", "<leader>xw", function() require("trouble").toggle("workspace_diagnostics") end)
|
||||
vim.keymap.set("n", "<leader>xd", function() require("trouble").toggle("document_diagnostics") end)
|
||||
vim.keymap.set("n", "<leader>xq", function() require("trouble").toggle("quickfix") end)
|
||||
vim.keymap.set("n", "<leader>xl", function() require("trouble").toggle("loclist") end)
|
||||
vim.keymap.set("n", "gR", function() require("trouble").toggle("lsp_references") end)
|
||||
|
|
@ -1,8 +1,5 @@
|
|||
return {
|
||||
-- Add indentation guides even on blank lines
|
||||
'lukas-reineke/indent-blankline.nvim',
|
||||
-- Enable `lukas-reineke/indent-blankline.nvim`
|
||||
-- See `:help ibl`
|
||||
main = 'ibl',
|
||||
opts = {},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,19 @@
|
|||
return {
|
||||
'Civitasv/cmake-tools.nvim',
|
||||
'averms/black-nvim',
|
||||
'numToStr/Navigator.nvim',
|
||||
'nvim-lualine/lualine.nvim',
|
||||
'nvim-tree/nvim-tree.lua',
|
||||
'nvim-tree/nvim-web-devicons',
|
||||
'rcarriga/nvim-notify',
|
||||
'tmux-plugins/vim-tmux',
|
||||
'tpope/vim-fugitive',
|
||||
'tpope/vim-rhubarb',
|
||||
'tpope/vim-sleuth',
|
||||
'tpope/vim-surround',
|
||||
'tmux-plugins/vim-tmux',
|
||||
'nvim-lualine/lualine.nvim',
|
||||
'nvim-tree/nvim-tree.lua',
|
||||
'nvim-tree/nvim-web-devicons',
|
||||
'Civitasv/cmake-tools.nvim',
|
||||
'rcarriga/nvim-notify',
|
||||
{ 'numToStr/Comment.nvim', opts = {} },
|
||||
{ 'akinsho/bufferline.nvim', config = {} },
|
||||
{ 'ethanholz/nvim-lastplace', config = {} },
|
||||
{ 'wakatime/vim-wakatime', event = 'VeryLazy' },
|
||||
{ 'numToStr/Comment.nvim', opts = {} },
|
||||
-- { 'wakatime/vim-wakatime', event = 'VeryLazy' },
|
||||
{ "folke/trouble.nvim", dependencies = { "nvim-tree/nvim-web-devicons" }, opts = { }, }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,6 @@ return {
|
|||
branch = '0.1.x',
|
||||
dependencies = {
|
||||
'nvim-lua/plenary.nvim',
|
||||
{
|
||||
'nvim-telescope/telescope-fzf-native.nvim',
|
||||
build = 'make',
|
||||
},
|
||||
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make', },
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,3 @@
|
|||
-- return {
|
||||
-- 'aserowy/tmux.nvim',
|
||||
-- event = "VeryLazy",
|
||||
-- }
|
||||
return {
|
||||
"numToStr/Navigator.nvim",
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue