feat: добавлены hotkeys для перехода между файлами и дебаггингом, добавлен конфиг для работы с локальным конфигом prettier для веб проектов, плюс добавлены сеттинг подсказек при нажатии на tab
This commit is contained in:
parent
b8653f6ed4
commit
148096e607
71
init.lua
71
init.lua
|
|
@ -121,18 +121,6 @@ require('lazy').setup({
|
||||||
BS = '<BS> ',
|
BS = '<BS> ',
|
||||||
Space = '<Space> ',
|
Space = '<Space> ',
|
||||||
Tab = '<Tab> ',
|
Tab = '<Tab> ',
|
||||||
F1 = '<F1>',
|
|
||||||
F2 = '<F2>',
|
|
||||||
F3 = '<F3>',
|
|
||||||
F4 = '<F4>',
|
|
||||||
F5 = '<F5>',
|
|
||||||
F6 = '<F6>',
|
|
||||||
F7 = '<F7>',
|
|
||||||
F8 = '<F8>',
|
|
||||||
F9 = '<F9>',
|
|
||||||
F10 = '<F10>',
|
|
||||||
F11 = '<F11>',
|
|
||||||
F12 = '<F12>',
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -197,6 +185,12 @@ require('lazy').setup({
|
||||||
vim.keymap.set('n', '<leader>w=', '<C-w>=', { desc = '[W]indow Equalize' })
|
vim.keymap.set('n', '<leader>w=', '<C-w>=', { desc = '[W]indow Equalize' })
|
||||||
vim.keymap.set('n', '<leader>e', ':Neotree toggle<CR>', { desc = 'Toggle Neotree' })
|
vim.keymap.set('n', '<leader>e', ':Neotree toggle<CR>', { desc = 'Toggle Neotree' })
|
||||||
|
|
||||||
|
-- Комментирование строки на <Probel> + /
|
||||||
|
vim.keymap.set('n', '<leader>/', 'gcc', { remap = true, desc = 'Toggle comment line' })
|
||||||
|
|
||||||
|
-- Комментирование выделения на <Probel> + /
|
||||||
|
vim.keymap.set('v', '<leader>/', 'gc', { remap = true, desc = 'Toggle comment selection' })
|
||||||
|
|
||||||
vim.keymap.set('n', '<leader>/', function()
|
vim.keymap.set('n', '<leader>/', function()
|
||||||
builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
|
builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
|
||||||
winblend = 10,
|
winblend = 10,
|
||||||
|
|
@ -254,9 +248,9 @@ require('lazy').setup({
|
||||||
|
|
||||||
map('gri', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
|
map('gri', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
|
||||||
|
|
||||||
map('grd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition')
|
map('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition')
|
||||||
|
|
||||||
map('grD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
|
map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
|
||||||
|
|
||||||
map('gO', require('telescope.builtin').lsp_document_symbols, 'Open Document Symbols')
|
map('gO', require('telescope.builtin').lsp_document_symbols, 'Open Document Symbols')
|
||||||
|
|
||||||
|
|
@ -264,6 +258,32 @@ require('lazy').setup({
|
||||||
|
|
||||||
map('grt', require('telescope.builtin').lsp_type_definitions, '[G]oto [T]ype Definition')
|
map('grt', require('telescope.builtin').lsp_type_definitions, '[G]oto [T]ype Definition')
|
||||||
|
|
||||||
|
-- -- Переменная для хранения ID окна (чтобы знать, что закрывать)
|
||||||
|
-- local diagnostic_float = nil
|
||||||
|
--
|
||||||
|
-- -- 1. Логика кнопки gl (Открыть/Закрыть)
|
||||||
|
-- map('gl', function()
|
||||||
|
-- if diagnostic_float and vim.api.nvim_win_is_valid(diagnostic_float) then
|
||||||
|
-- -- Если открыто — закрываем
|
||||||
|
-- vim.api.nvim_win_close(diagnostic_float, true)
|
||||||
|
-- diagnostic_float = nil
|
||||||
|
-- else
|
||||||
|
-- -- Если закрыто — открываем и запоминаем ID
|
||||||
|
-- diagnostic_float = vim.diagnostic.open_float(nil, { focusable = false })
|
||||||
|
-- end
|
||||||
|
-- end, 'Toggle [L]ine Diagnostic')
|
||||||
|
|
||||||
|
-- 2. Автоматическая чистка при переключении файла
|
||||||
|
vim.api.nvim_create_autocmd('BufLeave', {
|
||||||
|
buffer = event.buf, -- Работает только для этого буфера
|
||||||
|
callback = function()
|
||||||
|
if diagnostic_float and vim.api.nvim_win_is_valid(diagnostic_float) then
|
||||||
|
vim.api.nvim_win_close(diagnostic_float, true)
|
||||||
|
diagnostic_float = nil
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
---@param client vim.lsp.Client
|
---@param client vim.lsp.Client
|
||||||
---@param method vim.lsp.protocol.Method
|
---@param method vim.lsp.protocol.Method
|
||||||
---@param bufnr? integer some lsp support methods only in specific files
|
---@param bufnr? integer some lsp support methods only in specific files
|
||||||
|
|
@ -297,11 +317,11 @@ require('lazy').setup({
|
||||||
callback = vim.lsp.buf.clear_references,
|
callback = vim.lsp.buf.clear_references,
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('CursorHold', {
|
-- vim.api.nvim_create_autocmd('CursorHold', {
|
||||||
callback = function()
|
-- callback = function()
|
||||||
vim.diagnostic.open_float(nil, { focusable = false })
|
-- vim.diagnostic.open_float(nil, { focusable = false })
|
||||||
end,
|
-- end,
|
||||||
})
|
-- })
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('LspDetach', {
|
vim.api.nvim_create_autocmd('LspDetach', {
|
||||||
group = vim.api.nvim_create_augroup('kickstart-lsp-detach', { clear = true }),
|
group = vim.api.nvim_create_augroup('kickstart-lsp-detach', { clear = true }),
|
||||||
|
|
@ -313,6 +333,10 @@ require('lazy').setup({
|
||||||
end
|
end
|
||||||
|
|
||||||
if client and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then
|
if client and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then
|
||||||
|
-- 1. Явно выключаем подсказки при старте
|
||||||
|
vim.lsp.inlay_hint.enable(false, { bufnr = event.buf })
|
||||||
|
|
||||||
|
-- 2. Оставляем твой переключатель (Toggle)
|
||||||
map('<leader>th', function()
|
map('<leader>th', function()
|
||||||
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf })
|
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf })
|
||||||
end, '[T]oggle Inlay [H]ints')
|
end, '[T]oggle Inlay [H]ints')
|
||||||
|
|
@ -409,6 +433,10 @@ require('lazy').setup({
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
formatters_by_ft = {
|
formatters_by_ft = {
|
||||||
|
javascript = { 'prettier', stop_after_first = true },
|
||||||
|
typescript = { 'prettier', stop_after_first = true },
|
||||||
|
javascriptreact = { 'prettier', stop_after_first = true },
|
||||||
|
typescriptreact = { 'prettier', stop_after_first = true },
|
||||||
lua = { 'stylua' },
|
lua = { 'stylua' },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -439,6 +467,11 @@ require('lazy').setup({
|
||||||
opts = {
|
opts = {
|
||||||
keymap = {
|
keymap = {
|
||||||
preset = 'default',
|
preset = 'default',
|
||||||
|
-- Tab принимает выбранную подсказку
|
||||||
|
['<Tab>'] = { 'accept', 'fallback' },
|
||||||
|
|
||||||
|
-- Enter работает как обычно (новая строка), даже если меню открыто
|
||||||
|
['<CR>'] = { 'fallback' },
|
||||||
},
|
},
|
||||||
|
|
||||||
appearance = {
|
appearance = {
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
}
|
||||||
|
|
@ -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,
|
||||||
|
}
|
||||||
|
|
@ -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' },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
return {
|
||||||
|
{ 'windwp/nvim-autopairs', event = 'InsertEnter', config = true },
|
||||||
|
}
|
||||||
|
|
@ -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,
|
||||||
|
}
|
||||||
|
|
@ -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,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
@ -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,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
-- You can add your own plugins here or in other files in this directory!
|
|
||||||
-- I promise not to create any merge conflicts in this directory :)
|
|
||||||
--
|
|
||||||
-- See the kickstart.nvim README for more information
|
|
||||||
-- Bootstrap lazy.nvim
|
|
||||||
|
|
||||||
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', -- optional, but recommended
|
|
||||||
},
|
|
||||||
opts = {
|
|
||||||
window = {
|
|
||||||
mappings = {
|
|
||||||
['P'] = { -- toggle preview window
|
|
||||||
'toggle_preview',
|
|
||||||
config = { use_float = true, use_snacks_image = true, use_image_nvim = true },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
lazy = false, -- neo-tree will lazily load itself
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
'ray-x/go.nvim',
|
|
||||||
dependencies = {
|
|
||||||
'ray-x/guihua.lua', -- required UI library
|
|
||||||
'nvim-treesitter/nvim-treesitter',
|
|
||||||
'neovim/nvim-lspconfig',
|
|
||||||
},
|
|
||||||
ft = { 'go', 'gomod' },
|
|
||||||
config = function()
|
|
||||||
require('go').setup {
|
|
||||||
lsp_cfg = true, -- auto-setup gopls
|
|
||||||
lsp_on_attach = function(client, bufnr)
|
|
||||||
-- Auto format on save
|
|
||||||
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,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
'windwp/nvim-autopairs',
|
|
||||||
event = 'InsertEnter',
|
|
||||||
config = true,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- ⬇️ Your gitsigns with blame-on-cursor
|
|
||||||
{
|
|
||||||
'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 },
|
|
||||||
numhl = true,
|
|
||||||
linehl = false,
|
|
||||||
word_diff = false,
|
|
||||||
attach_to_untracked = true,
|
|
||||||
|
|
||||||
current_line_blame = true,
|
|
||||||
current_line_blame_opts = {
|
|
||||||
virt_text = true,
|
|
||||||
virt_text_pos = 'right_align', -- 'eol' | 'overlay' | 'right_align'
|
|
||||||
delay = 500,
|
|
||||||
ignore_whitespace = false,
|
|
||||||
virt_text_priority = 100,
|
|
||||||
use_focus = true,
|
|
||||||
},
|
|
||||||
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' }, -- commit message
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
|
|
||||||
update_debounce = 200,
|
|
||||||
max_file_length = 40000,
|
|
||||||
preview_config = {
|
|
||||||
border = 'rounded',
|
|
||||||
style = 'minimal',
|
|
||||||
relative = 'cursor',
|
|
||||||
row = 0,
|
|
||||||
col = 1,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -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,
|
||||||
|
},
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue