Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
649 changes: 103 additions & 546 deletions init.lua

Large diffs are not rendered by default.

19 changes: 19 additions & 0 deletions lua/custom/plugins/copilot.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
return {
'zbirenbaum/copilot.lua',
event = 'InsertEnter',
config = function()
require('copilot').setup {
suggestion = {
enabled = true,
auto_trigger = true,
keymap = {
accept = '<C-l>',
next = '<M-]>',
prev = '<M-[>',
dismiss = '<C-]>',
},
},
panel = { enabled = false },
}
end,
}
67 changes: 67 additions & 0 deletions lua/custom/plugins/debug.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
return {
'mfussenegger/nvim-dap',
dependencies = {
-- Красивый UI
'rcarriga/nvim-dap-ui',
-- Обязательная зависимость для UI
'nvim-neotest/nvim-nio',
-- Настройка для Go
'leoluz/nvim-dap-go',
},
config = function()
local dap = require 'dap'
local dapui = require 'dapui'

-- Настраиваем UI
dapui.setup()

-- Настраиваем Go (автоматически подхватит dlv)
require('dap-go').setup()

-- Автоматическое открытие/закрытие окна отладки
dap.listeners.before.attach.dapui_config = function()
dapui.open()
end
dap.listeners.before.launch.dapui_config = function()
dapui.open()
end
-- dap.listeners.before.event_terminated.dapui_config = function()
-- dapui.close()
-- end
-- dap.listeners.before.event_exited.dapui_config = function()
-- dapui.close()
-- end

-- КЛАВИШИ (Keymaps)

-- Ставит точку остановки (Breakpoint) на текущей строке
vim.keymap.set('n', '<leader>db', dap.toggle_breakpoint, { desc = 'Debug: Toggle Breakpoint' })

-- Запуск / Продолжить (F5 - как везде)
vim.keymap.set('n', '<F5>', dap.continue, { desc = 'Debug: Start/Continue' })

-- Шаг внутрь (Step Into - F11)
vim.keymap.set('n', '<F11>', dap.step_into, { desc = 'Debug: Step Into' })

-- Шаг через (Step Over - F10)
vim.keymap.set('n', '<F10>', dap.step_over, { desc = 'Debug: Step Over' })

-- Шаг назад (Step Out - Shift+F11)
vim.keymap.set('n', '<S-F11>', dap.step_out, { desc = 'Debug: Step Out' })

-- Открыть UI вручную (если вдруг закрылся)
vim.keymap.set('n', '<leader>du', dapui.toggle, { desc = 'Debug: Toggle UI' })
vim.keymap.set('n', '<leader>dt', function()
require('dap-go').debug_test()
end, { desc = 'Debug: Run Nearest Test' })

vim.keymap.set('n', '<leader>dq', function()
require('dapui').close()
end, { desc = 'Debug: [Q]uit/Close UI' })

vim.keymap.set('n', '<leader>dx', function()
require('dap').terminate() -- Убить процесс
require('dapui').close() -- Закрыть окна
end, { desc = 'Debug: e[X]it and close' })
end,
}
8 changes: 8 additions & 0 deletions lua/custom/plugins/diffview.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
return {
'sindrets/diffview.nvim',
cmd = { 'DiffviewOpen', 'DiffviewFileHistory' },
keys = {
{ '<leader>gd', '<cmd>DiffviewOpen<cr>', desc = 'DiffView: Open' },
{ '<leader>gh', '<cmd>DiffviewFileHistory %<cr>', desc = 'DiffView: File History' },
},
}
3 changes: 3 additions & 0 deletions lua/custom/plugins/editing.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
return {
{ 'windwp/nvim-autopairs', event = 'InsertEnter', config = true },
}
13 changes: 13 additions & 0 deletions lua/custom/plugins/git-conflict.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
return {
'akinsho/git-conflict.nvim',
version = '*',
config = function()
require('git-conflict').setup {
default_mappings = true,
-- co - выбрать Ours (свое)
-- ct - выбрать Theirs (чужое)
-- cb - оба
disable_diagnostics = true,
}
end,
}
89 changes: 89 additions & 0 deletions lua/custom/plugins/git.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
return {
{
'lewis6991/gitsigns.nvim',
event = { 'BufReadPre', 'BufNewFile' },
dependencies = { 'nvim-lua/plenary.nvim' },
config = function()
local util = require 'gitsigns.util'
require('gitsigns').setup {
-- --- ТВОИ НАСТРОЙКИ ВИЗУАЛА (оставляем как было) ---
watch_gitdir = { interval = 1000, follow_files = true },
attach_to_untracked = true,
current_line_blame = true, -- Блейм включен по умолчанию
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'right_align',
delay = 500,
},
-- Твой кастомный форматтер блейма
current_line_blame_formatter = function(_, info)
return {
{ '|| ', '@lsp.type.variable' },
{ info.author, '@lsp.type.comment' },
{ ' • ', '@lsp.type.variable' },
{ util.expand_format('<author_time:%R>', info), '@lsp.type.operator' },
{ ' • ', '@lsp.type.variable' },
{ info.summary or '', '@lsp.type.string' },
}
end,
preview_config = {
border = 'rounded',
style = 'minimal',
relative = 'cursor',
row = 0,
col = 1,
},

-- --- ВОТ ЧЕГО НЕ ХВАТАЛО: КЛАВИШИ УПРАВЛЕНИЯ ---
on_attach = function(bufnr)
local gs = package.loaded.gitsigns

local function map(mode, l, r, opts)
opts = opts or {}
opts.buffer = bufnr
vim.keymap.set(mode, l, r, opts)
end

-- Навигация (переход к следующему изменению)
map('n', ']c', function()
if vim.wo.diff then
return ']c'
end
vim.schedule(function()
gs.next_hunk()
end)
return '<Ignore>'
end, { expr = true, desc = 'Jump to next hunk' })

map('n', '[c', function()
if vim.wo.diff then
return '[c'
end
vim.schedule(function()
gs.prev_hunk()
end)
return '<Ignore>'
end, { expr = true, desc = 'Jump to previous hunk' })

-- Действия (Actions)
map('n', '<leader>hs', gs.stage_hunk, { desc = 'Git: [S]tage Hunk' }) -- Добавить кусок в индекс
map('n', '<leader>hr', gs.reset_hunk, { desc = 'Git: [R]eset Hunk' }) -- Откатить кусок
map('v', '<leader>hs', function()
gs.stage_hunk { vim.fn.line '.', vim.fn.line 'v' }
end, { desc = 'Git: Stage selection' })
map('v', '<leader>hr', function()
gs.reset_hunk { vim.fn.line '.', vim.fn.line 'v' }
end, { desc = 'Git: Reset selection' })

map('n', '<leader>hS', gs.stage_buffer, { desc = 'Git: [S]tage Buffer' }) -- Добавить весь файл
map('n', '<leader>hu', gs.undo_stage_hunk, { desc = 'Git: [U]ndo Stage Hunk' }) -- Убрать из индекса последний кусок

map('n', '<leader>hp', gs.preview_hunk, { desc = 'Git: [P]review Hunk' }) -- Показать превью изменений

map('n', '<leader>tb', gs.toggle_current_line_blame, { desc = 'Git: [T]oggle [B]lame line' }) -- Вкл/Выкл блейм
map('n', '<leader>hd', gs.diffthis, { desc = 'Git: [D]iff against index' }) -- Показать diff
end,
}
end,
},
}
27 changes: 27 additions & 0 deletions lua/custom/plugins/go.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
return {
{
'ray-x/go.nvim',
ft = { 'go', 'gomod' },
dependencies = {
'ray-x/guihua.lua',
'nvim-treesitter/nvim-treesitter',
'neovim/nvim-lspconfig',
},
config = function()
require('go').setup {
lsp_cfg = true,
lsp_on_attach = function(client, bufnr)
if client.server_capabilities.documentFormattingProvider then
vim.api.nvim_create_autocmd('BufWritePre', {
group = vim.api.nvim_create_augroup('GoFormat', { clear = true }),
buffer = bufnr,
callback = function()
vim.lsp.buf.format { async = false }
end,
})
end
end,
}
end,
},
}
5 changes: 0 additions & 5 deletions lua/custom/plugins/init.lua

This file was deleted.

26 changes: 26 additions & 0 deletions lua/custom/plugins/ui.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
return {
{ 'folke/snacks.nvim', opts = { image = { enabled = true } } },
{
'nvim-neo-tree/neo-tree.nvim',
branch = 'v3.x',
dependencies = {
'nvim-lua/plenary.nvim',
'MunifTanjim/nui.nvim',
'nvim-tree/nvim-web-devicons',
},
git_status = {
enabled = false, -- <--- вот это
},
opts = {
window = {
mappings = {
['P'] = {
'toggle_preview',
config = { use_float = true, use_snacks_image = true, use_image_nvim = true },
},
},
},
},
lazy = false,
},
}
13 changes: 13 additions & 0 deletions lua/kickstart/plugins/lsp.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
lspconfig.gopls.setup {
capabilities = capabilities,
on_attach = on_attach,
settings = {
gopls = {
completeUnimported = true,
usePlaceholders = true,
analyses = {
unusedparams = true,
},
},
},
}