1
0
Fork 0

nvim config updates

This commit is contained in:
Arthur K. 2026-01-30 15:47:24 +03:00
parent 559939e2f4
commit adc494721a
Signed by: wzray
GPG key ID: B97F30FDC4636357
20 changed files with 1108 additions and 30 deletions

View file

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

View file

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

View file

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

View file

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

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

View file

@ -1,7 +1,11 @@
return {
'RRethy/vim-illuminate', config = function()
require('illuminate').configure({
delay = 0,
delay = 100,
filetypes_denylist = {
'NvimTree',
'TelescopePrompt',
}
})
end
}

View file

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

View file

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

View file

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

View file

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

View file

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