1
0
Fork 0

cumulative update

This commit is contained in:
Arthur Khachaturov 2024-06-19 11:51:19 +03:00
parent 3ecbac352e
commit c360fc2339
71 changed files with 3281 additions and 380 deletions

View file

@ -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", {

View file

@ -0,0 +1 @@
return {}

View file

@ -0,0 +1 @@
return {}

View file

@ -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()

View file

@ -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 {}

View file

@ -0,0 +1 @@
return {}

View file

@ -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 })

View file

@ -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

View file

@ -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>')

View file

@ -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

View file

@ -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')

View file

@ -1,4 +1,3 @@
require('nvim-autopairs').setup({
disable_filetype = { "TelescopePrompt" , "vim" },
enable_check_bracket_line = false,
})

View file

@ -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 })

View file

@ -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)

View file

@ -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)

View 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)

View file

@ -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 = {},
}

View file

@ -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 = { }, }
}

View file

@ -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', },
},
}

View file

@ -1,7 +1,3 @@
-- return {
-- 'aserowy/tmux.nvim',
-- event = "VeryLazy",
-- }
return {
"numToStr/Navigator.nvim",
}