moshno nadristal
This commit is contained in:
parent
b4157580f5
commit
47e833bef3
6
init.lua
6
init.lua
|
@ -4,9 +4,9 @@ require('settings/tabs')
|
||||||
require('settings/panels')
|
require('settings/panels')
|
||||||
require('settings/search')
|
require('settings/search')
|
||||||
|
|
||||||
|
-- Плагины
|
||||||
|
require('plugins/packer')
|
||||||
|
|
||||||
-- Комбинации клавиш
|
-- Комбинации клавиш
|
||||||
require('keymaps/system')
|
require('keymaps/system')
|
||||||
require('keymaps/plugins')
|
require('keymaps/plugins')
|
||||||
|
|
||||||
-- Плагины
|
|
||||||
require('plugins/packer')
|
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
--[[ nvim-neo-tree/neo-tree ]]
|
--[[ nvim-neo-tree/neo-tree ]]
|
||||||
|
|
||||||
-- Открыть интерфейс
|
-- Открыть интерфейс с древовидным отображением файлов
|
||||||
vim.keymap.set('n', '<space>ff', '<cmd>NeoTreeShow<cr>', {noremap = true})
|
vim.keymap.set({'n', 'i', 'v', 'o', 'x'}, '<f1>', '<cmd>NeoTreeRevealToggle<cr>', {noremap = true})
|
||||||
vim.keymap.set('n', '<space>fd', '<cmd>NeoTreeReveal<cr>', {noremap = true})
|
|
||||||
|
|
||||||
|
-- [[ folke/trouble.nvim ]]
|
||||||
|
vim.keymap.set({'n', 'i', 'v', 'o', 'x'}, '<f2>', '<cmd>TroubleToggle<cr>', {noremap = true})
|
||||||
|
|
||||||
|
|
||||||
--[[ onsails/diaglist.nvim ]]
|
--[[ onsails/diaglist.nvim ]]
|
||||||
|
|
||||||
|
@ -10,160 +14,142 @@ vim.keymap.set('n', '<space>fd', '<cmd>NeoTreeReveal<cr>', {noremap = true})
|
||||||
vim.keymap.set('n', '<space>dw', '<cmd>lua require(\'diaglist\').open_all_diagnostics()<cr>', {noremap = true})
|
vim.keymap.set('n', '<space>dw', '<cmd>lua require(\'diaglist\').open_all_diagnostics()<cr>', {noremap = true})
|
||||||
vim.keymap.set('n', '<space>d0', '<cmd>lua require(\'diaglist\').open_buffer_diagnostics()<cr>', {noremap = true})
|
vim.keymap.set('n', '<space>d0', '<cmd>lua require(\'diaglist\').open_buffer_diagnostics()<cr>', {noremap = true})
|
||||||
|
|
||||||
|
|
||||||
--[[ noib3/nvim-cokeline ]]
|
--[[ noib3/nvim-cokeline ]]
|
||||||
|
|
||||||
-- Переключение вкладок
|
-- Переключение вкладок
|
||||||
vim.keymap.set('n', '<tab>', '<Plug>(cokeline-focus-next)', {noremap = true, silent = true})
|
vim.keymap.set('n', '<tab>', '<Plug>(cokeline-focus-next)', {noremap = true, silent = true})
|
||||||
vim.keymap.set('n', '<s-tab>', '<Plug>(cokeline-focus-prev)', {noremap = true, silent = true})
|
vim.keymap.set('n', '<s-tab>', '<Plug>(cokeline-focus-prev)', {noremap = true, silent = true})
|
||||||
|
|
||||||
--[[ neoclide/coc ]]
|
|
||||||
|
|
||||||
-- Автозавершение
|
--[[ neovim/nvim-lspconfig ]]
|
||||||
function _G.check_back_space()
|
|
||||||
local col = vim.fn.col('.') - 1
|
-- Диагностика
|
||||||
return col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') ~= nil
|
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, {noremap = true, silent = true})
|
||||||
|
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, {noremap = true, silent = true})
|
||||||
|
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, {noremap = true, silent = true})
|
||||||
|
vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, {noremap = true, silent = true})
|
||||||
|
|
||||||
|
-- Инициализация только после того, как LSP-сервер подключится к текущему буферу
|
||||||
|
lspconfig_on_attach = function(client, bufnr)
|
||||||
|
-- Активация завершения
|
||||||
|
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||||
|
|
||||||
|
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, {noremap = true, silent = true, buffer = bufnr})
|
||||||
|
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, {noremap = true, silent = true, buffer = bufnr})
|
||||||
|
vim.keymap.set('n', 'K', vim.lsp.buf.hover, {noremap = true, silent = true, buffer = bufnr})
|
||||||
|
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, {noremap = true, silent = true, buffer = bufnr})
|
||||||
|
vim.keymap.set('n', '<c-k>', vim.lsp.buf.signature_help, {noremap = true, silent = true, buffer = bufnr})
|
||||||
|
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, {noremap = true, silent = true, buffer = bufnr})
|
||||||
|
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, {noremap = true, silent = true, buffer = bufnr})
|
||||||
|
vim.keymap.set('n', '<space>wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, {noremap = true, silent = true, buffer = bufnr})
|
||||||
|
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, {noremap = true, silent = true, buffer = bufnr})
|
||||||
|
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, {noremap = true, silent = true, buffer = bufnr})
|
||||||
|
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, {noremap = true, silent = true, buffer = bufnr})
|
||||||
|
vim.keymap.set('n', 'gr', vim.lsp.buf.references, {noremap = true, silent = true, buffer = bufnr})
|
||||||
|
|
||||||
|
-- Форматирование
|
||||||
|
vim.keymap.set('n', '<space>f', function() vim.lsp.buf.format { async = true } end, {noremap = true, silent = true, buffer = bufnr})
|
||||||
end
|
end
|
||||||
vim.keymap.set('i', '<tab>', 'coc#pum#visible() ? coc#pum#next(1) : v:lua.check_back_space() ? "<TAB>" : coc#refresh()', {silent = true, noremap = true, expr = true, replace_keycodes = false})
|
|
||||||
vim.keymap.set('i', '<s-tab>', [[coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"]], {silent = true, noremap = true, expr = true, replace_keycodes = false})
|
|
||||||
|
|
||||||
-- Применить выбранное автозавершение
|
|
||||||
vim.keymap.set('i', '<cr>', [[coc#pum#visible() ? coc#pum#confirm() : "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"]], {silent = true, noremap = true, expr = true, replace_keycodes = false})
|
|
||||||
|
|
||||||
-- Отобразить меню фрагментов
|
--[[ lewis6991/gitsigns.nvim ]]
|
||||||
vim.keymap.set('i', '<c-j>', '<Plug>(coc-snippets-expand-jump)', {silent = true, noremap = true, expr = true, replace_keycodes = false})
|
|
||||||
|
|
||||||
-- Отобразить меню автозавершений
|
-- Инициализация только после того, как LSP-сервер подключится к текущему буферу
|
||||||
vim.keymap.set('i', '<c-space>', 'coc#refresh()', {silent = true, expr = true})
|
gitsigns_on_attach = function(bufnr)
|
||||||
|
-- Инициализация ярлыка
|
||||||
|
local gs = package.loaded.gitsigns
|
||||||
|
|
||||||
-- Навигация в диагностической панели
|
-- Навигация
|
||||||
vim.keymap.set('n', '[g', '<Plug>(coc-diagnostic-prev)', {silent = true})
|
vim.keymap.set('n', ']c', function()
|
||||||
vim.keymap.set('n', ']g', '<Plug>(coc-diagnostic-next)', {silent = true})
|
if vim.wo.diff then return ']c' end
|
||||||
|
vim.schedule(function() gs.next_hunk() end)
|
||||||
|
return '<Ignore>'
|
||||||
|
end, {expr = true, buffer = bufnr})
|
||||||
|
|
||||||
-- GoTo-навигация
|
-- Навигация
|
||||||
vim.keymap.set('n', 'gd', '<Plug>(coc-definition)', {silent = true})
|
vim.keymap.set('n', '[c', function()
|
||||||
vim.keymap.set('n', 'gy', '<Plug>(coc-type-definition)', {silent = true})
|
if vim.wo.diff then return '[c' end
|
||||||
vim.keymap.set('n', 'gi', '<Plug>(coc-implementation)', {silent = true})
|
vim.schedule(function() gs.prev_hunk() end)
|
||||||
vim.keymap.set('n', 'gr', '<Plug>(coc-references)', {silent = true})
|
return '<Ignore>'
|
||||||
|
end, {expr = true, buffer = bufnr})
|
||||||
|
|
||||||
-- Отобразить документацию в окне представления
|
vim.keymap.set('n', '<leader>hs', '<cmd>Gitsigns stage_hunk<cr>', {buffer = bufnr})
|
||||||
function _G.show_docs()
|
vim.keymap.set('v', '<leader>hs', '<cmd>Gitsigns stage_hunk<cr>', {buffer = bufnr})
|
||||||
local cw = vim.fn.expand('<cword>')
|
vim.keymap.set('n', '<leader>hr', '<cmd>Gitsigns reset_hunk<cr>', {buffer = bufnr})
|
||||||
if vim.fn.index({'vim', 'help'}, vim.bo.filetype) >= 0 then
|
vim.keymap.set('v', '<leader>hr', '<cmd>Gitsigns reset_hunk<cr>', {buffer = bufnr})
|
||||||
vim.api.nvim_command('h ' .. cw)
|
vim.keymap.set('n', '<leader>hS', gs.stage_buffer, {buffer = bufnr})
|
||||||
elseif vim.api.nvim_eval('coc#rpc#ready()') then
|
vim.keymap.set('n', '<leader>hu', gs.undo_stage_hunk, {buffer = bufnr})
|
||||||
vim.fn.CocActionAsync('doHover')
|
vim.keymap.set('n', '<leader>hR', gs.reset_buffer, {buffer = bufnr})
|
||||||
else
|
vim.keymap.set('n', '<leader>hp', gs.preview_hunk, {buffer = bufnr})
|
||||||
vim.api.nvim_command('!' .. vim.o.keywordprg .. ' ' .. cw)
|
vim.keymap.set('n', '<leader>hb', function() gs.blame_line{full=true} end, {buffer = bufnr})
|
||||||
|
vim.keymap.set('n', '<leader>tb', gs.toggle_current_line_blame, {buffer = bufnr})
|
||||||
|
vim.keymap.set('n', '<leader>hd', gs.diffthis, {buffer = bufnr})
|
||||||
|
vim.keymap.set('n', '<leader>hD', function() gs.diffthis('~') end, {buffer = bufnr})
|
||||||
|
vim.keymap.set('n', '<leader>td', gs.toggle_deleted, {buffer = bufnr})
|
||||||
|
|
||||||
|
vim.keymap.set('o', 'ih', '<cmd><c-U>Gitsigns select_hunk<cr>', {buffer = bufnr})
|
||||||
|
vim.keymap.set('x', 'ih', '<cmd><c-U>Gitsigns select_hunk<cr>', {buffer = bufnr})
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--[[ nvim-telescope/telescope.nvim ]]
|
||||||
|
|
||||||
|
-- Инициализация ярлыка
|
||||||
|
local builtin = require('telescope.builtin')
|
||||||
|
|
||||||
|
-- Поиск файла
|
||||||
|
vim.keymap.set('n', '<leader>ff', builtin.find_files, {noremap = true, silent = true})
|
||||||
|
|
||||||
|
-- grep
|
||||||
|
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {noremap = true, silent = true})
|
||||||
|
|
||||||
|
-- Буферы?
|
||||||
|
vim.keymap.set('n', '<leader>fb', builtin.buffers, {noremap = true, silent = true})
|
||||||
|
|
||||||
|
-- Помощь
|
||||||
|
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {noremap = true, silent = true})
|
||||||
|
|
||||||
|
|
||||||
|
--[[ windwp/nvim-autopairs ]]
|
||||||
|
|
||||||
|
-- Переназначение стандартных сочетаний клавиш для "ms-jpq/coq_nvim"
|
||||||
|
--vim.keymap.set('i', '<esc>', [[pumvisible() ? "<c-e><esc>" : "<esc>"]], {expr = true, noremap = true})
|
||||||
|
--vim.keymap.set('i', '<c-c>', [[pumvisible() ? "<c-e><c-c>" : "<c-c>"]], {expr = true, noremap = true})
|
||||||
|
--vim.keymap.set('i', '<tab>', [[pumvisible() ? "<c-n>" : "<tab>"]], {expr = true, noremap = true})
|
||||||
|
--vim.keymap.set('i', '<s-tab>', [[pumvisible() ? "<c-p>" : "<tab>"]], {expr = true, noremap = true})
|
||||||
|
|
||||||
|
_G.PairIT = function()
|
||||||
|
local autopairs = {
|
||||||
|
['('] = ')',
|
||||||
|
['['] = ']',
|
||||||
|
['{'] = '}',
|
||||||
|
['<'] = '>',
|
||||||
|
[ [=[']=] ] = [=[']=],
|
||||||
|
[ [=["]=] ] = [=["]=],
|
||||||
|
}
|
||||||
|
local set_pairs = vim.keymap.set
|
||||||
|
for k, v in pairs(autopairs) do
|
||||||
|
set_pairs('i', k, function()
|
||||||
|
return k .. v .. '<Left>'
|
||||||
|
end, { expr = true, noremap = true })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
vim.keymap.set('n', 'k', '<CMD>lua _G.show_docs()<CR>', {silent = true})
|
|
||||||
|
|
||||||
-- Подсветка символа и ссылаемые на него объекты при событии "CursorHold" (курсор неподвижен)
|
|
||||||
vim.api.nvim_create_augroup('CocGroup', {})
|
|
||||||
vim.api.nvim_create_autocmd('CursorHold', {
|
|
||||||
group = 'CocGroup',
|
|
||||||
command = 'silent call CocActionAsync(\'highlight\')',
|
|
||||||
desc = 'Подсветка символа и ссылаемые на него объекты при событии "CursorHold"'
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Переименовать символ
|
--[[ b3nj5m1n/kommentary ]]
|
||||||
vim.keymap.set('n', '<leader>rn', '<Plug>(coc-rename)', {silent = true})
|
vim.keymap.set('n', '<leader>cic', '<Plug>kommentary_line_increase', {noremap = true, silent = true})
|
||||||
|
vim.keymap.set('n', '<leader>ci', '<Plug>kommentary_motion_increase', {noremap = true, silent = true})
|
||||||
|
vim.keymap.set('x', '<leader>ci', '<Plug>kommentary_visual_increase', {noremap = true, silent = true})
|
||||||
|
vim.keymap.set('n', '<leader>cdc', '<Plug>kommentary_line_decrease', {noremap = true, silent = true})
|
||||||
|
vim.keymap.set('n', '<leader>cd', '<Plug>kommentary_motion_decrease', {noremap = true, silent = true})
|
||||||
|
vim.keymap.set('x', '<leader>cd', '<Plug>kommentary_visual_decrease', {noremap = true, silent = true})
|
||||||
|
|
||||||
-- Форматировать выбранный код
|
|
||||||
vim.keymap.set('x', '<leader>f', '<Plug>(coc-format-selected)', {silent = true})
|
|
||||||
vim.keymap.set('n', '<leader>f', '<Plug>(coc-format-selected)', {silent = true})
|
|
||||||
|
|
||||||
-- Установить formatexpr для указанных типов файлов
|
--[[ preservim/tagbar ]]
|
||||||
vim.api.nvim_create_autocmd('FileType', {
|
vim.keymap.set({'n', 'i', 'v', 'o', 'x'}, '<f8>', '<cmd>TagbarToggle<cr>', {noremap = true, silent = true})
|
||||||
group = 'CocGroup',
|
|
||||||
pattern = 'typescript,json',
|
|
||||||
command = 'setl formatexpr=CocAction(\'formatSelected\')',
|
|
||||||
desc = 'Установить formatexpr для указанных типов файлов'
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Обновить вспомогательную запись на всплывающем заполнителе
|
|
||||||
vim.api.nvim_create_autocmd('User', {
|
|
||||||
group = 'CocGroup',
|
|
||||||
pattern = 'CocJumpPlaceholder',
|
|
||||||
command = 'call CocActionAsync(\'showSignatureHelp\')',
|
|
||||||
desc = 'Обновить вспомогательную запись на всплывающем заполнителе'
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Применить codeAction к выбранному региону
|
--[[ simrat39/symbols-outline.nvim ]]
|
||||||
vim.keymap.set('x', '<leader>a', '<Plug>(coc-codeaction-selected)', {silent = true, nowait = true})
|
vim.keymap.set({'n', 'i', 'v', 'o', 'x'}, '<f7>', '<cmd>SymbolsOutline<cr>', {noremap = true, silent = true})
|
||||||
vim.keymap.set('n', '<leader>a', '<Plug>(coc-codeaction-selected)', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Применить действия с кодом в позиции курсора
|
|
||||||
vim.keymap.set('n', '<leader>ac', '<Plug>(coc-codeaction-cursor)', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Применить действия с кодом на всём буфере
|
|
||||||
vim.keymap.set('n', '<leader>as', '<Plug>(coc-codeaction-source)', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Применить codeActions в текущем буфере
|
|
||||||
vim.keymap.set('n', '<leader>ac', '<Plug>(coc-codeaction)', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Применить наиболее предпочтительное быстрое исправление в текущей строке
|
|
||||||
vim.keymap.set('n', '<leader>qf', '<Plug>(coc-fix-current)', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Применить рефакторинг
|
|
||||||
vim.keymap.set('n', '<leader>re', '<Plug>(coc-codeaction-refactor)', {silent = true})
|
|
||||||
vim.keymap.set('x', '<leader>r', 'Plug>(coc-codeaction-refactor-selected)', {silent = true})
|
|
||||||
vim.keymap.set('n', '<leader>r', 'Plug>(coc-codeaction-refactor-selected)', {silent = true})
|
|
||||||
|
|
||||||
-- Выполнить действия Code Lens в текущей строке
|
|
||||||
vim.keymap.set('n', '<leader>cl', '<Plug>(coc-codelens-action)', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Назначение функция и классов текстовых объектов
|
|
||||||
vim.keymap.set('x', 'if', '<Plug>(coc-funcobj-i)', {silent = true, nowait = true})
|
|
||||||
vim.keymap.set('o', 'if', '<Plug>(coc-funcobj-i)', {silent = true, nowait = true})
|
|
||||||
vim.keymap.set('x', 'af', '<Plug>(coc-funcobj-a)', {silent = true, nowait = true})
|
|
||||||
vim.keymap.set('o', 'af', '<Plug>(coc-funcobj-a)', {silent = true, nowait = true})
|
|
||||||
vim.keymap.set('x', 'ic', '<Plug>(coc-classobj-i)', {silent = true, nowait = true})
|
|
||||||
vim.keymap.set('o', 'ic', '<Plug>(coc-classobj-i)', {silent = true, nowait = true})
|
|
||||||
vim.keymap.set('x', 'ac', '<Plug>(coc-classobj-a)', {silent = true, nowait = true})
|
|
||||||
vim.keymap.set('o', 'ac', '<Plug>(coc-classobj-a)', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Прокрутка во всплывающих окнах
|
|
||||||
vim.keymap.set('n', '<C-f>', 'coc#float#has_scroll() ? coc#float#scroll(1) : \'<C-f>\'', {silent = true, nowait = true, expr = true})
|
|
||||||
vim.keymap.set('n', '<C-b>', 'coc#float#has_scroll() ? coc#float#scroll(0) : \'<C-b>\'', {silent = true, nowait = true, expr = true})
|
|
||||||
vim.keymap.set('i', '<C-f>', 'coc#float#has_scroll() ? \'<c-r>=coc#float#scroll(1)<cr>\' : \'<Right>\'', {silent = true, nowait = true, expr = true})
|
|
||||||
vim.keymap.set('i', '<C-b>', 'coc#float#has_scroll() ? \'<c-r>=coc#float#scroll(0)<cr>\' : \'<Left>\'', {silent = true, nowait = true, expr = true})
|
|
||||||
vim.keymap.set('v', '<C-f>', 'coc#float#has_scroll() ? coc#float#scroll(1) : \'<C-f>\'', {silent = true, nowait = true, expr = true})
|
|
||||||
vim.keymap.set('v', '<C-b>', 'coc#float#has_scroll() ? coc#float#scroll(0) : \'<C-b>\'', {silent = true, nowait = true, expr = true})
|
|
||||||
|
|
||||||
-- Выбрать диапазон
|
|
||||||
vim.keymap.set('n', '<C-s>', '<Plug>(coc-range-select)', {silent = true})
|
|
||||||
vim.keymap.set('x', '<C-s>', '<Plug>(coc-range-select)', {silent = true})
|
|
||||||
|
|
||||||
-- Команда ":Format" для форматирования текущего буфера
|
|
||||||
vim.api.nvim_create_user_command('Format', 'call CocAction(\'format\')', {})
|
|
||||||
|
|
||||||
-- Команда ":Fold" для сворачивания текущего буфера
|
|
||||||
vim.api.nvim_create_user_command('Fold', 'call CocAction(\'fold\', <f-args>)', {nargs = '?'})
|
|
||||||
|
|
||||||
-- Команда ":OR" для организации импорта текущего буфера
|
|
||||||
vim.api.nvim_create_user_command('OR', 'call CocActionAsync(\'runCommand\', \'editor.action.organizeImport\')', {})
|
|
||||||
|
|
||||||
-- Показать всю диагностику
|
|
||||||
vim.keymap.set('n', '<space>a', ':<C-u>CocList diagnostics<cr>', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Управление расширениями
|
|
||||||
vim.keymap.set('n', '<space>e', ':<C-u>CocList extensions<cr>', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Показать команды
|
|
||||||
vim.keymap.set('n', '<space>c', ':<C-u>CocList commands<cr>', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Поиск символа текущего документа
|
|
||||||
vim.keymap.set('n', '<space>o', ':<C-u>CocList outline<cr>', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Поиск символа рабочей области
|
|
||||||
vim.keymap.set('n', '<space>s', ':<C-u>CocList -I symbols<cr>', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Выполнить действие по умолчанию для следующего элемента
|
|
||||||
vim.keymap.set('n', '<space>j', ':<C-u>CocNext<cr>', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Выполнить действие по умолчанию для предыдущего элемента
|
|
||||||
vim.keymap.set('n', '<space>k', ':<C-u>CocPrev<cr>', {silent = true, nowait = true})
|
|
||||||
|
|
||||||
-- Восстановить последний список
|
|
||||||
vim.keymap.set('n', '<space>p', ':<C-u>CocListResume<cr>', {silent = true, nowait = true})
|
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
-- Выход из режима "ВСТАВКА" (insert)
|
-- Выход из режима "ВСТАВКА" (insert)
|
||||||
vim.api.nvim_set_keymap('i', '<C-i>', '<escape>', {noremap = true})
|
vim.keymap.set('i', '<C-i>', '<escape>', {noremap = true})
|
||||||
|
|
||||||
-- Быстрый сдвиг текста в режиме 'ВСТАВКА' (insert)
|
-- Быстрый сдвиг текста в режиме 'ВСТАВКА' (insert)
|
||||||
vim.api.nvim_set_keymap('i', '<tab>', '<cmd>><cr>', {noremap = true})
|
vim.keymap.set('i', '<tab>', '<cmd>><cr>', {noremap = true})
|
||||||
vim.api.nvim_set_keymap('i', '<s-tab>', '<cmd><<cr>', {noremap = true})
|
vim.keymap.set('i', '<s-tab>', '<cmd><<cr>', {noremap = true})
|
||||||
|
|
||||||
|
-- Отключение стрелок
|
||||||
|
vim.keymap.set('n', '<left>', '', {noremap = true})
|
||||||
|
vim.keymap.set('n', '<up>', '', {noremap = true})
|
||||||
|
vim.keymap.set('n', '<right>', '', {noremap = true})
|
||||||
|
vim.keymap.set('n', '<down>', '', {noremap = true})
|
||||||
|
|
|
@ -1,2 +1,4 @@
|
||||||
require('nvim-autopairs').setup({
|
require('nvim-autopairs').setup({
|
||||||
|
map_bs = false,
|
||||||
|
map_cr = false
|
||||||
})
|
})
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
require('bufferline').setup({
|
||||||
|
})
|
|
@ -1,2 +0,0 @@
|
||||||
require('cokeline').setup({
|
|
||||||
})
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
vim.g.coq_settings = {
|
||||||
|
auto_start = 'shut-up',
|
||||||
|
--keymap = {
|
||||||
|
-- recommended = false
|
||||||
|
--}
|
||||||
|
}
|
|
@ -38,11 +38,7 @@ require('fidget').setup({
|
||||||
)
|
)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
sources = { -- Sources to configure
|
sources = {},
|
||||||
* = { -- Name of source
|
|
||||||
ignore = false, -- Ignore notifications from this source
|
|
||||||
},
|
|
||||||
},
|
|
||||||
debug = {
|
debug = {
|
||||||
logging = false, -- whether to enable logging, for debugging
|
logging = false, -- whether to enable logging, for debugging
|
||||||
strict = false, -- whether to interpret LSP strictly
|
strict = false, -- whether to interpret LSP strictly
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
require('gitsigns').setup {
|
||||||
|
on_attach = gitsigns_on_attach,
|
||||||
|
signs = {
|
||||||
|
add = { text = '│' },
|
||||||
|
change = { text = '│' },
|
||||||
|
delete = { text = '_' },
|
||||||
|
topdelete = { text = '‾' },
|
||||||
|
changedelete = { text = '~' },
|
||||||
|
untracked = { text = '┆' },
|
||||||
|
},
|
||||||
|
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
|
||||||
|
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
|
||||||
|
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
|
||||||
|
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
|
||||||
|
watch_gitdir = {
|
||||||
|
interval = 1000,
|
||||||
|
follow_files = true
|
||||||
|
},
|
||||||
|
attach_to_untracked = true,
|
||||||
|
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
|
||||||
|
current_line_blame_opts = {
|
||||||
|
virt_text = true,
|
||||||
|
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
|
||||||
|
delay = 1000,
|
||||||
|
ignore_whitespace = false,
|
||||||
|
},
|
||||||
|
current_line_blame_formatter = '<author>, <author_time:%Y-%m-%d> - <summary>',
|
||||||
|
sign_priority = 6,
|
||||||
|
update_debounce = 100,
|
||||||
|
status_formatter = nil, -- Use default
|
||||||
|
max_file_length = 40000, -- Disable if file is longer than this (in lines)
|
||||||
|
preview_config = {
|
||||||
|
-- Options passed to nvim_open_win
|
||||||
|
border = 'single',
|
||||||
|
style = 'minimal',
|
||||||
|
relative = 'cursor',
|
||||||
|
row = 0,
|
||||||
|
col = 1
|
||||||
|
},
|
||||||
|
yadm = {
|
||||||
|
enable = false
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
vim.api.nvim_create_autocmd({ 'BufWritePost' }, {
|
||||||
|
callback = function()
|
||||||
|
require('lint').try_lint()
|
||||||
|
end,
|
||||||
|
})
|
|
@ -0,0 +1,6 @@
|
||||||
|
local coq = require('coq')
|
||||||
|
|
||||||
|
require('lspconfig').psalm.setup {
|
||||||
|
on_attach = lspconfig_on_attach,
|
||||||
|
coq.lsp_ensure_capabilities()
|
||||||
|
}
|
|
@ -1,9 +0,0 @@
|
||||||
require('mason').setup({
|
|
||||||
ui = {
|
|
||||||
icons = {
|
|
||||||
package_installed = "✓",
|
|
||||||
package_pending = "➜",
|
|
||||||
package_uninstalled = "✗"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
|
@ -1,10 +0,0 @@
|
||||||
local null_ls = require("null-ls")
|
|
||||||
|
|
||||||
null_ls.setup({
|
|
||||||
sources = {
|
|
||||||
null_ls.builtins.formatting.stylua,
|
|
||||||
null_ls.builtins.diagnostics.eslint,
|
|
||||||
null_ls.builtins.completion.spell,
|
|
||||||
null_ls.builtins.code_actions.gitsigns
|
|
||||||
},
|
|
||||||
})
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
require('nvim-web-devicons').setup {
|
||||||
|
override = {},
|
||||||
|
color_icons = true,
|
||||||
|
default = false
|
||||||
|
}
|
|
@ -6,43 +6,58 @@ return require('packer').startup(function(use)
|
||||||
use 'wbthomason/packer.nvim'
|
use 'wbthomason/packer.nvim'
|
||||||
|
|
||||||
-- Быстрая настройка LSP-серверов
|
-- Быстрая настройка LSP-серверов
|
||||||
use 'neovim/nvim-lspconfig'
|
use {
|
||||||
|
'neovim/nvim-lspconfig',
|
||||||
|
config = function() require('plugins/lspconfig') end
|
||||||
|
}
|
||||||
|
|
||||||
-- Прогресс LSP
|
-- Прогресс LSP
|
||||||
use {
|
use {
|
||||||
'j-hui/fidget.nvim',
|
'j-hui/fidget.nvim',
|
||||||
config = function() require('fidget') end
|
config = function() require('plugins/fidget') end
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Интерфейс отображающий найденные проблемы LSP-серверами
|
-- Интерфейс отображающий найденные проблемы LSP-серверами
|
||||||
use {
|
use {
|
||||||
'folke/trouble.nvim',
|
'folke/trouble.nvim',
|
||||||
requires = 'kyazdani42/nvim-web-devicons',
|
requires = 'kyazdani42/nvim-web-devicons',
|
||||||
config = function() require('trouble') end
|
config = function() require('plugins/trouble') end
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Пиктограммы которые используются плагинами
|
-- Пиктограммы для плагинов
|
||||||
use {
|
use {
|
||||||
'onsails/lspkind-nvim',
|
'onsails/lspkind-nvim',
|
||||||
config = function() require('plugins/lspkind') end
|
config = function() require('plugins/lspkind') end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Пиктограммы для плагинов
|
||||||
|
use {
|
||||||
|
'nvim-tree/nvim-web-devicons',
|
||||||
|
config = function() require('plugins/nvim-web-devicons') end
|
||||||
|
}
|
||||||
|
|
||||||
-- Интеграция с GIT
|
-- Интеграция с GIT
|
||||||
use {
|
use {
|
||||||
'lewis6991/gitsigns.nvim',
|
'lewis6991/gitsigns.nvim',
|
||||||
config = function() require('gitsigns') end
|
config = function() require('plugins/gitsigns') end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Обработчик GIT-команд
|
||||||
|
use 'tpope/vim-fugitive'
|
||||||
|
|
||||||
|
-- Отображение изменений GIT
|
||||||
|
use 'mhinz/vim-signify'
|
||||||
|
|
||||||
-- Отрисовка в реальном времени найденных ошибок LSP-серверами
|
-- Отрисовка в реальном времени найденных ошибок LSP-серверами
|
||||||
use {
|
use {
|
||||||
'onsails/diaglist.nvim',
|
'onsails/diaglist.nvim',
|
||||||
config = function() require('diaglist') end
|
config = function() require('plugins/diaglist') end
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Интерфейс строки состояния
|
-- Интерфейс строки состояния
|
||||||
use {
|
use {
|
||||||
'nvim-lualine/lualine.nvim',
|
'nvim-lualine/lualine.nvim',
|
||||||
requires = { 'kyazdani42/nvim-web-devicons', opt = true },
|
requires = 'kyazdani42/nvim-web-devicons',
|
||||||
config = function() require('plugins/lualine') end
|
config = function() require('plugins/lualine') end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,9 +69,10 @@ return require('packer').startup(function(use)
|
||||||
|
|
||||||
-- Интерфейс строки буфера файлов
|
-- Интерфейс строки буфера файлов
|
||||||
use {
|
use {
|
||||||
'noib3/nvim-cokeline',
|
'akinsho/bufferline.nvim',
|
||||||
requires = 'kyazdani42/nvim-web-devicons',
|
tag = "v3.*",
|
||||||
config = function() require('plugins/cokeline') end
|
requires = 'nvim-tree/nvim-web-devicons',
|
||||||
|
config = function() require('plugins/bufferline') end
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Интерфейс древовидной структуры файлов
|
-- Интерфейс древовидной структуры файлов
|
||||||
|
@ -77,53 +93,75 @@ return require('packer').startup(function(use)
|
||||||
config = function() require('plugins/autopairs') end
|
config = function() require('plugins/autopairs') end
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Загрузчик расширений
|
|
||||||
use {
|
|
||||||
'neoclide/coc.nvim',
|
|
||||||
branch = 'release',
|
|
||||||
config = function() require('plugins/coc') end
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Цвета для отображения найденных ошибок LSP-сервером в случае если другие цвета не найдены
|
-- Цвета для отображения найденных ошибок LSP-сервером в случае если другие цвета не найдены
|
||||||
use 'folke/lsp-colors.nvim'
|
use 'folke/lsp-colors.nvim'
|
||||||
|
|
||||||
-- Менеджер пакетов для LSP-серверов, DAP-серверов, линтеров и форматировщиков
|
|
||||||
use {
|
|
||||||
'williamboman/mason.nvim',
|
|
||||||
config = function() require('plugins/mason') end
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Быстрое обновление всех пакетов через "nwilliamboman/mason.nvim"
|
|
||||||
use 'RubixDev/mason-update-all'
|
|
||||||
|
|
||||||
-- Мост между "williamboman/mason.nvim" и "neovim/nvim-lspconfig"
|
|
||||||
use {
|
|
||||||
'williamboman/mason-lspconfig.nvim',
|
|
||||||
requires = {
|
|
||||||
'williamboman/mason.nvim',
|
|
||||||
'neovim/nvim-lspconfig'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Клиентская реализация DAP
|
-- Клиентская реализация DAP
|
||||||
use {
|
use {
|
||||||
'mfussenegger/nvim-dap',
|
'mfussenegger/nvim-dap',
|
||||||
config = function() require('plugins/dap') end
|
config = function() require('plugins/dap') end
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Мост между "nwilliamboman/mason.nvim" и "mfussenegger/nvim-dap"
|
-- Автозавершение
|
||||||
use {
|
use {
|
||||||
'jay-babu/mason-nvim-dap.nvim',
|
'ms-jpq/coq_nvim',
|
||||||
requires = {
|
branch = 'coq',
|
||||||
'williamboman/mason.nvim',
|
config = function() require('plugins/coq') end
|
||||||
'mfussenegger/nvim-dap'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Линтер, форматировщик и прочее
|
-- Готовые наброски для автозавершения "ms-jpq/coq_nvim"
|
||||||
use {
|
use {
|
||||||
'jose-elias-alvarez/null-ls.nvim',
|
'ms-jpq/coq.artifacts',
|
||||||
requires = 'nvim-lua/plenary.nvim',
|
branch = 'artifacts'
|
||||||
config = function() require('plugins/null-ls') end
|
}
|
||||||
|
|
||||||
|
-- Пользовательские готовые наброски для автозавершения "ms-jpq/coq_nvim"
|
||||||
|
use {
|
||||||
|
'ms-jpq/coq.thirdparty',
|
||||||
|
branch = '3p'
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Линтер
|
||||||
|
use {
|
||||||
|
'mfussenegger/nvim-lint',
|
||||||
|
config = function() require('plugins/lint') end
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Тестирование
|
||||||
|
use {
|
||||||
|
'vim-test/vim-test',
|
||||||
|
config = function() require('plugins/vim-test') end
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Интерфейс для поиска
|
||||||
|
use {
|
||||||
|
'nvim-telescope/telescope.nvim',
|
||||||
|
tag = '0.1.1',
|
||||||
|
config = function() require('plugins/telescope') end
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Интеграция treesitter
|
||||||
|
use {
|
||||||
|
'nvim-treesitter/nvim-treesitter',
|
||||||
|
run = ':TSUpdate',
|
||||||
|
config = function() require('plugins/treesitter') end
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Удобное комментирование
|
||||||
|
use 'b3nj5m1n/kommentary'
|
||||||
|
|
||||||
|
-- Древовидное представление символов
|
||||||
|
use {
|
||||||
|
'simrat39/symbols-outline.nvim',
|
||||||
|
config = function() require('plugins/symbols-outline') end
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Интерфейс для отображения тегов в отдельном окне
|
||||||
|
use 'preservim/tagbar'
|
||||||
|
|
||||||
|
-- PHP-теги для "preservim/tagbar" (phpctags для ctags)
|
||||||
|
use {
|
||||||
|
'vim-php/phpctags',
|
||||||
|
run = 'composer install'
|
||||||
}
|
}
|
||||||
end)
|
end)
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
require('symbols-outline').setup({
|
||||||
|
--auto_preview = true,
|
||||||
|
--show_numbers = true
|
||||||
|
})
|
|
@ -0,0 +1,18 @@
|
||||||
|
require('telescope').setup{
|
||||||
|
pickers = {
|
||||||
|
-- Default configuration for builtin pickers goes here:
|
||||||
|
-- picker_name = {
|
||||||
|
-- picker_config_key = value,
|
||||||
|
-- ...
|
||||||
|
-- }
|
||||||
|
-- Now the picker_config_key will be applied every time you call this
|
||||||
|
-- builtin picker
|
||||||
|
},
|
||||||
|
extensions = {
|
||||||
|
-- Your extension configuration goes here:
|
||||||
|
-- extension_name = {
|
||||||
|
-- extension_config_key = value,
|
||||||
|
-- }
|
||||||
|
-- please take a look at the readme of the extension you want to configure
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
require('nvim-treesitter.configs').setup {
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
additional_vim_regex_highlighting = false
|
||||||
|
},
|
||||||
|
}
|
|
@ -2,7 +2,7 @@
|
||||||
vim.opt.clipboard = 'unnamedplus'
|
vim.opt.clipboard = 'unnamedplus'
|
||||||
|
|
||||||
-- Автодополнение (встроенное в Neovim)
|
-- Автодополнение (встроенное в Neovim)
|
||||||
vim.opt.completeopt = 'menuone,noselect'
|
--vim.opt.completeopt = 'menuone,noselect'
|
||||||
|
|
||||||
-- Не автокомментировать новые линии при переходе на новую строку
|
-- Не автокомментировать новые линии при переходе на новую строку
|
||||||
vim.cmd('autocmd BufEnter * set fo-=c fo-=r fo-=o')
|
vim.cmd('autocmd BufEnter * set fo-=c fo-=r fo-=o')
|
||||||
|
@ -10,15 +10,11 @@ vim.cmd('autocmd BufEnter * set fo-=c fo-=r fo-=o')
|
||||||
-- Нумерация строк
|
-- Нумерация строк
|
||||||
vim.opt.number = true
|
vim.opt.number = true
|
||||||
|
|
||||||
-- Отключение бекапов (для плагина coc)
|
|
||||||
vim.opt.backup = false
|
|
||||||
vim.opt.writebackup = false
|
|
||||||
|
|
||||||
-- Интервал обновлений отрисовки
|
-- Интервал обновлений отрисовки
|
||||||
vim.opt.updatetime = 300
|
vim.opt.updatetime = 100
|
||||||
|
|
||||||
-- Всегда отображать signcolumn (?)
|
-- Всегда отображать signcolumn (?)
|
||||||
vim.opt.signcolumn = "yes"
|
vim.opt.signcolumn = 'yes'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- 24-битные цвета
|
||||||
|
vim.opt.termguicolors = true
|
||||||
|
|
Loading…
Reference in New Issue