nvim config updates
This commit is contained in:
parent
559939e2f4
commit
adc494721a
20 changed files with 1108 additions and 30 deletions
|
|
@ -30,9 +30,24 @@ local filetypes = {
|
|||
|
||||
for ext, ft in pairs(filetypes) do
|
||||
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
|
||||
pattern = "*." .. ext,
|
||||
callback = function()
|
||||
vim.bo.filetype = ft
|
||||
end,
|
||||
pattern = "*." .. ext,
|
||||
callback = function()
|
||||
vim.bo.filetype = ft
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
local spell_filetypes = {
|
||||
'markdown',
|
||||
'text',
|
||||
'gitcommit'
|
||||
}
|
||||
|
||||
for _, ext in ipairs(spell_filetypes) do
|
||||
vim.api.nvim_create_autocmd('FileType', {
|
||||
pattern = ext,
|
||||
callback = function()
|
||||
vim.cmd 'setlocal spell'
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
|
|
|||
|
|
@ -16,8 +16,11 @@ 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', 'v' }, 'k', 'v:count == 0 ? "gk" : "k"', { expr = true, silent = true })
|
||||
map({ 'n', 'v' }, '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' }, 'о', 'v:count == 0 ? "gj" : "j"', { expr = true, silent = true })
|
||||
map({ 'n', 'v' }, 'л', 'v:count == 0 ? "gk" : "k"', { expr = true, silent = true })
|
||||
|
||||
-- Duplicate leader feats to gradually move to
|
||||
|
||||
|
|
@ -27,6 +30,11 @@ map({ 'n', 'v' }, '<leader>Y', '"+y$')
|
|||
map({ 'n', 'v' }, '<leader>p', '"+p<ESC>')
|
||||
map({ 'n', 'v' }, '<leader>P', '"+P<ESC>')
|
||||
|
||||
map({ 'n', 'v' }, '<leader>н', '"+y')
|
||||
map({ 'n', 'v' }, '<leader>н', '"+y$')
|
||||
map({ 'n', 'v' }, '<leader>з', '"+p<ESC>')
|
||||
map({ 'n', 'v' }, '<leader>З', '"+P<ESC>')
|
||||
|
||||
-- buffer size
|
||||
map({ 'n', 'v' }, '<leader>n', '<C-w>10<')
|
||||
map({ 'n', 'v' }, '<leader>m', '<C-w>10>')
|
||||
|
|
|
|||
|
|
@ -35,4 +35,28 @@ vim.o.timeoutlen = 300
|
|||
vim.o.splitbelow = true
|
||||
vim.o.splitright = true
|
||||
|
||||
vim.diagnostic.config({ virtual_text = true })
|
||||
vim.diagnostic.config({
|
||||
virtual_text = true,
|
||||
signs = true,
|
||||
virtual_lines = false,
|
||||
update_in_insert = true,
|
||||
float = {
|
||||
source = 'if_many',
|
||||
format = function(d)
|
||||
return ("[%d:%d] %s"):format(
|
||||
d.lnum + 1,
|
||||
d.end_col + 1,
|
||||
d.message
|
||||
)
|
||||
end,
|
||||
}
|
||||
})
|
||||
|
||||
-- fold related stuff
|
||||
vim.o.foldcolumn = '0'
|
||||
vim.o.foldlevel = 99
|
||||
vim.o.foldlevelstart = 99
|
||||
vim.o.foldenable = true
|
||||
|
||||
-- spelling
|
||||
vim.o.spelllang = 'en,ru'
|
||||
|
|
|
|||
|
|
@ -17,9 +17,10 @@ local servers = {
|
|||
svls = {},
|
||||
ts_ls = {},
|
||||
yamlls = require('lsp.yamlls'),
|
||||
-- codebook = {}
|
||||
}
|
||||
|
||||
-- vim.lsp.set_log_level('info')
|
||||
vim.lsp.set_log_level('DEBUG')
|
||||
|
||||
local on_attach = function(_, bufnr)
|
||||
local nmap = function(keys, func)
|
||||
|
|
@ -27,26 +28,33 @@ local on_attach = function(_, bufnr)
|
|||
end
|
||||
|
||||
nmap('<leader>rn', vim.lsp.buf.rename)
|
||||
nmap('<leader>ca', vim.lsp.buf.code_action)
|
||||
nmap('<leader>w', vim.lsp.buf.code_action)
|
||||
|
||||
nmap('gd', require('telescope.builtin').lsp_definitions)
|
||||
nmap('gr', require('telescope.builtin').lsp_references)
|
||||
nmap('gt', require('telescope.builtin').lsp_type_definitions)
|
||||
local telescope_func = function(name)
|
||||
return function()
|
||||
require('telescope.builtin')[name]({
|
||||
show_line = false
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
nmap('gd', telescope_func("lsp_definitions"))
|
||||
nmap('gr', telescope_func("lsp_references"))
|
||||
nmap('gt', telescope_func("lsp_type_definitions"))
|
||||
|
||||
-- nmap('gd', vim.lsp.buf.definition)
|
||||
-- nmap('gr', vim.lsp.buf.references)
|
||||
-- nmap('gt', vim.lsp.buf.type_definition)
|
||||
|
||||
nmap('<leader>sd', require('telescope.builtin').diagnostics)
|
||||
nmap('<leader>ds', require('telescope.builtin').lsp_document_symbols)
|
||||
nmap('<leader>as', require('telescope.builtin').lsp_dynamic_workspace_symbols)
|
||||
nmap('<leader>sd', telescope_func("diagnostics"))
|
||||
nmap('<leader>ds', telescope_func("lsp_document_symbols"))
|
||||
nmap('<leader>as', telescope_func("lsp_dynamic_workspace_symbols"))
|
||||
|
||||
nmap("<leader>i", vim.diagnostic.open_float)
|
||||
nmap('K', vim.lsp.buf.hover)
|
||||
nmap('<C-k>', vim.lsp.buf.signature_help)
|
||||
|
||||
nmap('gI', require('telescope.builtin').lsp_implementations)
|
||||
-- nmap('gI', vim.lsp.buf.implementation)
|
||||
nmap('gD', vim.lsp.buf.declaration)
|
||||
|
||||
nmap('<leader>F', vim.lsp.buf.format)
|
||||
|
|
|
|||
67
.config/nvim/lua/plugins/diffview.lua
Normal file
67
.config/nvim/lua/plugins/diffview.lua
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
return {
|
||||
'sindrets/diffview.nvim',
|
||||
config = function()
|
||||
vim.keymap.set('n', '<leader>dv', ':DiffviewOpen<CR>', { silent = true })
|
||||
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "DiffviewViewEnter",
|
||||
callback = function()
|
||||
vim.keymap.del('n', 'Ā')
|
||||
|
||||
for _, buf in ipairs(vim.api.nvim_list_bufs()) do
|
||||
if vim.api.nvim_buf_is_loaded(buf)
|
||||
and vim.api.nvim_buf_get_name(buf) == ""
|
||||
and vim.bo[buf].buftype == "" then
|
||||
vim.api.nvim_buf_delete(buf, { force = true })
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "DiffviewViewLeave",
|
||||
callback = function()
|
||||
vim.keymap.set('n', 'Ā', ':NvimTreeToggle<CR>', { silent = true })
|
||||
end,
|
||||
})
|
||||
|
||||
local actions = require("diffview.actions")
|
||||
require('diffview').setup({
|
||||
view = {
|
||||
merge_tool = {
|
||||
disable_diagnostics = false
|
||||
},
|
||||
},
|
||||
keymaps = {
|
||||
view = {
|
||||
-- The `view` bindings are active in the diff buffers, only when the current
|
||||
-- tabpage is a Diffview.
|
||||
{ "n", "<tab>", actions.select_next_entry, { desc = "Open the diff for the next file" } },
|
||||
{ "n", "<s-tab>", actions.select_prev_entry, { desc = "Open the diff for the previous file" } },
|
||||
{ "n", "[F", actions.select_first_entry, { desc = "Open the diff for the first file" } },
|
||||
{ "n", "]F", actions.select_last_entry, { desc = "Open the diff for the last file" } },
|
||||
{ "n", "gf", actions.goto_file_edit, { desc = "Open the file in the previous tabpage" } },
|
||||
{ "n", "<C-w><C-f>", actions.goto_file_split, { desc = "Open the file in a new split" } },
|
||||
{ "n", "<C-w>gf", actions.goto_file_tab, { desc = "Open the file in a new tabpage" } },
|
||||
{ "n", "Ā", actions.toggle_files, { desc = "Toggle the file panel." } },
|
||||
{ "n", "g<C-x>", actions.cycle_layout, { desc = "Cycle through available layouts." } },
|
||||
{ "n", "<M-p>", actions.prev_conflict, { desc = "In the merge-tool: jump to the previous conflict" } },
|
||||
{ "n", "<M-n>", actions.next_conflict, { desc = "In the merge-tool: jump to the next conflict" } },
|
||||
{ "n", "gh", actions.conflict_choose("ours"), { desc = "Choose the OURS version of a conflict" } },
|
||||
{ "n", "gl", actions.conflict_choose("theirs"), { desc = "Choose the THEIRS version of a conflict" } },
|
||||
{ "n", "gb", actions.conflict_choose("base"), { desc = "Choose the BASE version of a conflict" } },
|
||||
{ "n", "ga", actions.conflict_choose("all"), { desc = "Choose all the versions of a conflict" } },
|
||||
{ "n", "gx", actions.conflict_choose("none"), { desc = "Delete the conflict region" } },
|
||||
{ "n", "gH", actions.conflict_choose_all("ours"), { desc = "Choose the OURS version of a conflict for the whole file" } },
|
||||
{ "n", "gL", actions.conflict_choose_all("theirs"), { desc = "Choose the THEIRS version of a conflict for the whole file" } },
|
||||
{ "n", "gB", actions.conflict_choose_all("base"), { desc = "Choose the BASE version of a conflict for the whole file" } },
|
||||
{ "n", "gA", actions.conflict_choose_all("all"), { desc = "Choose all the versions of a conflict for the whole file" } },
|
||||
{ "n", "gX", actions.conflict_choose_all("none"), { desc = "Delete the conflict region for the whole file" } },
|
||||
},
|
||||
file_panel = {
|
||||
{ "n", "Ā", actions.toggle_files, { desc = "Toggle the file panel" } },
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
}
|
||||
|
|
@ -1,7 +1,11 @@
|
|||
return {
|
||||
'RRethy/vim-illuminate', config = function()
|
||||
require('illuminate').configure({
|
||||
delay = 0,
|
||||
delay = 100,
|
||||
filetypes_denylist = {
|
||||
'NvimTree',
|
||||
'TelescopePrompt',
|
||||
}
|
||||
})
|
||||
end
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,5 +16,5 @@ return {
|
|||
{ 'norcalli/nvim-colorizer.lua', opts={ '*' }, dependencies = { 'navarasu/onedark.nvim' } },
|
||||
{ 'wakatime/vim-wakatime', event = 'VeryLazy' },
|
||||
{ 'williamboman/mason.nvim', opts = {} },
|
||||
{ dir = '~/.local/share/nvim/preseed/' }, -- 'https://git.netizen.se/vim-preseed',
|
||||
{ 'hky/vim-preseed' }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
return {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
branch = '0.1.x',
|
||||
dependencies = {
|
||||
'navarasu/onedark.nvim',
|
||||
'nvim-lua/plenary.nvim',
|
||||
'xiyaowong/telescope-emoji.nvim',
|
||||
'nvim-telescope/telescope-ui-select.nvim',
|
||||
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' },
|
||||
},
|
||||
|
||||
|
|
@ -25,6 +25,7 @@ return {
|
|||
}
|
||||
|
||||
require('telescope').load_extension('fzf')
|
||||
require('telescope').load_extension('ui-select')
|
||||
require('telescope').load_extension('emoji')
|
||||
|
||||
vim.keymap.set('n', '<leader>/', function()
|
||||
|
|
@ -39,12 +40,12 @@ return {
|
|||
vim.keymap.set('n', '<leader>of', require('telescope.builtin').oldfiles)
|
||||
vim.keymap.set('n', '<leader>af', require('telescope.builtin').git_files)
|
||||
vim.keymap.set('n', '<leader>sf', require('telescope.builtin').find_files)
|
||||
vim.keymap.set('n', '<leader>.', require('telescope').extensions.emoji.emoji)
|
||||
vim.keymap.set('n', '<leader>.', require('telescope').extensions.emoji.emoji)
|
||||
vim.keymap.set('n', 'z=', require('telescope.builtin').spell_suggest)
|
||||
|
||||
|
||||
-- Use this to add more results without clearing the trouble list
|
||||
-- local add_to_trouble = require("trouble.sources.telescope").add
|
||||
|
||||
local telescope = require("telescope")
|
||||
-- local telescope = require("telescope")
|
||||
end
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,5 +40,9 @@ return {
|
|||
vim.o.termguicolors = true
|
||||
vim.cmd.colorscheme 'onedark'
|
||||
vim.cmd.hi 'clear @spell'
|
||||
|
||||
vim.cmd.hi 'IlluminatedWordText ctermbg=15 gui=underline,bold guibg=#1a1a1a'
|
||||
vim.cmd.hi 'IlluminatedWordRead ctermbg=15 gui=underline,bold guibg=#1a1a1a'
|
||||
vim.cmd.hi 'IlluminatedWordWrite ctermbg=15 gui=underline,bold guibg=#1a1a1a'
|
||||
end,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,27 @@
|
|||
-- TODO: migrate to `main` when it's complete and staable
|
||||
|
||||
return {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
dependencies = {
|
||||
'nvim-treesitter/nvim-treesitter-textobjects',
|
||||
'nvim-treesitter/nvim-treesitter-context'
|
||||
'nvim-treesitter/nvim-treesitter-context',
|
||||
{
|
||||
'nvim-treesitter/nvim-treesitter-textobjects',
|
||||
branch = 'master',
|
||||
}
|
||||
},
|
||||
build = ':TSUpdate',
|
||||
branch = 'master',
|
||||
build = function()
|
||||
local queries_path = vim.fn.stdpath('data') .. '/lazy/nvim-treesitter/queries/dockerfile'
|
||||
local dockerfile_queries = vim.fn.stdpath('config') .. '/treesitter/dockerfile/queries/'
|
||||
|
||||
vim.fn.system({ 'rm', '-r', queries_path })
|
||||
vim.fn.mkdir(queries_path, 'p')
|
||||
for file in vim.fs.dir(dockerfile_queries) do
|
||||
vim.fn.system({ 'cp', dockerfile_queries .. file, queries_path })
|
||||
end
|
||||
|
||||
vim.cmd('TSUpdate')
|
||||
end,
|
||||
config = function()
|
||||
vim.defer_fn(function()
|
||||
--- @diagnostic disable-next-line: missing-fields
|
||||
|
|
@ -17,6 +34,16 @@ return {
|
|||
require('treesitter-context').setup {
|
||||
max_lines = 6
|
||||
}
|
||||
|
||||
local parser_config = require('nvim-treesitter.parsers').get_parser_configs()
|
||||
parser_config.dockerfile = {
|
||||
install_info = {
|
||||
url = '/home/wzray/.config/nvim/treesitter/dockerfile',
|
||||
files = { "src/parser.c", "scanner.c" },
|
||||
generate_requires_npm = false,
|
||||
requires_generate_from_grammar = true,
|
||||
},
|
||||
}
|
||||
end, 0)
|
||||
end
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,11 +5,6 @@ return {
|
|||
},
|
||||
config = function()
|
||||
vim.defer_fn(function()
|
||||
vim.o.foldcolumn = '0'
|
||||
vim.o.foldlevel = 99
|
||||
vim.o.foldlevelstart = 99
|
||||
vim.o.foldenable = true
|
||||
|
||||
vim.keymap.set('n', 'zR', require('ufo').openAllFolds)
|
||||
vim.keymap.set('n', 'zM', require('ufo').closeAllFolds)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue