PISKA1
This commit is contained in:
commit
9b2d3b3b2c
16
init.lua
Normal file
16
init.lua
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
require("config.lazy")
|
||||||
|
require("config.common-settings")
|
||||||
|
|
||||||
|
require("config.mason")
|
||||||
|
require("config.nvim-tree")
|
||||||
|
require("config.nvim-treesitter")
|
||||||
|
require("config.lualine")
|
||||||
|
require("config.nvim-cmp")
|
||||||
|
require("config.nvim-lspconfig")
|
||||||
|
require("config.bufferline")
|
||||||
|
require("config.vimtex")
|
||||||
|
require("config.render-markdown")
|
||||||
|
require("config.gitsigns")
|
||||||
|
require("config.which-key")
|
||||||
|
require("config.indent-blankline")
|
||||||
|
require("config.fzf")
|
25
lazy-lock.json
Normal file
25
lazy-lock.json
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" },
|
||||||
|
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||||
|
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
|
||||||
|
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" },
|
||||||
|
"fzf-lua": { "branch": "main", "commit": "9b84b53f3297d4912d7eb95b979e9b27e2e61281" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "4c40357994f386e72be92a46f41fc1664c84c87d" },
|
||||||
|
"gruvbox": { "branch": "master", "commit": "f1ecde848f0cdba877acb0c740320568252cc482" },
|
||||||
|
"indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" },
|
||||||
|
"kanagawa.nvim": { "branch": "master", "commit": "cfd67b0e1eeaa04302b8c7eb072253d24bf22d84" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||||
|
"lualine.nvim": { "branch": "master", "commit": "f4f791f67e70d378a754d02da068231d2352e5bc" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
|
||||||
|
"mini.nvim": { "branch": "main", "commit": "e554890210cd29d017d6a0c1b1a46f995dcf9e64" },
|
||||||
|
"nvim-cmp": { "branch": "main", "commit": "5a11682453ac6b13dbf32cd403da4ee9c07ef1c3" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "d793c5cb0206d976a38e70e62479a60ba87722ca" },
|
||||||
|
"nvim-tree.lua": { "branch": "master", "commit": "6709463b2d18e77f7a946027917aa00d4aaed6f4" },
|
||||||
|
"nvim-treesitter": { "branch": "master", "commit": "8bc635a25f581d42b0a0e5ba8870bd73244dcdea" },
|
||||||
|
"nvim-web-devicons": { "branch": "master", "commit": "1020869742ecb191f260818234517f4a1515cfe8" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
|
||||||
|
"render-markdown.nvim": { "branch": "main", "commit": "1cd546e96cb8520a148610ca86596ed238eeb936" },
|
||||||
|
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
|
||||||
|
"vim-nightfly-colors": { "branch": "master", "commit": "c27e76b1adc562b60415ec3688f610206020d64e" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
|
||||||
|
}
|
13
lua/config/bufferline.lua
Normal file
13
lua/config/bufferline.lua
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
require("bufferline").setup{}
|
||||||
|
|
||||||
|
-- Настройка биндов узнать что действительно нажимается - перейти в режим вставки нажать <c-v> и потом необходимое сочетание
|
||||||
|
vim.keymap.set('n', '<A-;>', ':BufferLineCycleNext<CR>', { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('n', '<A-j>', ':BufferLineCyclePrev<CR>', { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('n', '<A-w>', ':bd!<CR>', { noremap = true, silent = true })
|
||||||
|
-- Настройка сочетаний клавиш для терминала
|
||||||
|
vim.keymap.set('t', '<A-;>', '<C-\\><C-N>:BufferLineCycleNext<CR>', { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('t', '<A-j>', '<C-\\><C-N>:BufferLineCyclePrev<CR>', { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('t', '<A-w>', '<C-\\><C-N>:bd!<CR>', { noremap = true, silent = true })
|
||||||
|
-- Добавление выхода из режима вставки в терминале
|
||||||
|
vim.keymap.set('t', '<A-i>', '<C-\\><C-N>', { noremap = true, silent = true })
|
||||||
|
|
2
lua/config/cmp-nvim-lsp.lua
Normal file
2
lua/config/cmp-nvim-lsp.lua
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
-- Настройка lsp серверов в nvim-lsp config
|
||||||
|
-- Этот плагин необходим для совместной работы nvim с cmp и lsp сервера
|
192
lua/config/common-settings.lua
Normal file
192
lua/config/common-settings.lua
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
|
||||||
|
--------------------------------------------------------------------------[[ФУНКЦИОНАЛ]]--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-- Установка клавиши Leader на пробел
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
|
||||||
|
|
||||||
|
-- CUSTOM MOVE
|
||||||
|
-- NORMAL
|
||||||
|
vim.keymap.set('n', 'h', '<nop>', { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('n', 'j', 'h', { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('n', 'k', 'j', { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('n', 'l', 'k', { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('n', ';', 'l', { noremap = true, silent = true })
|
||||||
|
-- VISUAL
|
||||||
|
vim.keymap.set('v', 'h', '<nop>', { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('v', 'j', 'h', { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('v', 'k', 'j', { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('v', 'l', 'k', { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('v', ';', 'l', { noremap = true, silent = true })
|
||||||
|
|
||||||
|
|
||||||
|
-- Настройка сохранения на Ctrl+S
|
||||||
|
vim.api.nvim_set_keymap('n', '<C-s>', ':w<CR>', { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('i', '<C-s>', '<Esc>:w<CR>a', { noremap = true, silent = true })
|
||||||
|
|
||||||
|
-- Выход из сессии
|
||||||
|
vim.api.nvim_set_keymap('n', '<C-q>', ':q!<CR>', { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('i', '<C-q>', '<Esc>:q!<CR>', { noremap = true, silent = true })
|
||||||
|
|
||||||
|
-- Настройка выхода из режима ввода через Atl+i
|
||||||
|
vim.api.nvim_set_keymap('i', '<A-i>', '<Esc>', { noremap = true, silent = true })
|
||||||
|
|
||||||
|
-- Настройка терминала
|
||||||
|
vim.api.nvim_set_keymap('n', '<Space>t', ':terminal<CR>', { noremap = true, silent = true })
|
||||||
|
|
||||||
|
-- установить время ожидания в 200 миллисекунд
|
||||||
|
vim.o.timeoutlen = 300
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- СИСТЕМНЫЙ БУФЕР
|
||||||
|
-- Копирование в системный буфер
|
||||||
|
vim.api.nvim_set_keymap('v', 'y', '"+y', { noremap = true, silent = true })
|
||||||
|
-- Вставка из системного буфера
|
||||||
|
vim.api.nvim_set_keymap('n', 'p', '"+p', { noremap = true, silent = true })
|
||||||
|
-- Вырезание в системный буфер
|
||||||
|
vim.api.nvim_set_keymap('v', 'x', '"+x', { noremap = true, silent = true })
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Включаем поддержку undo
|
||||||
|
vim.opt.undofile = true
|
||||||
|
-- Указываем директорию для хранения файлов undo
|
||||||
|
vim.opt.undodir = "/tmp/nvim-changes/"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Функции для табуляции выделенной области
|
||||||
|
local function tab_selected()
|
||||||
|
vim.cmd('normal! >gv') -- Сдвиг вправо и возврат к выделению
|
||||||
|
end
|
||||||
|
|
||||||
|
local function shift_tab_selected()
|
||||||
|
vim.cmd('normal! <gv') -- Сдвиг влево и возврат к выделению
|
||||||
|
end
|
||||||
|
vim.opt.tabstop = 4
|
||||||
|
vim.opt.softtabstop = 4
|
||||||
|
vim.opt.shiftwidth = 4
|
||||||
|
|
||||||
|
-- Привязка клавиш
|
||||||
|
vim.keymap.set('v', '<Tab>', tab_selected, { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('v', '<S-Tab>', shift_tab_selected, { noremap = true, silent = true })
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--[[ Поиск ]]--
|
||||||
|
-- Игнорировать регистр при поиске
|
||||||
|
vim.opt.ignorecase = true
|
||||||
|
|
||||||
|
-- Не игнорировать регистр, если есть символы в верхнем регистре
|
||||||
|
vim.opt.smartcase = true
|
||||||
|
|
||||||
|
-- Подсвечивать найденные текстовые объекты
|
||||||
|
vim.opt.showmatch = true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Бинд для headings
|
||||||
|
vim.api.nvim_set_keymap('n', '<Leader>1', "0i# <Esc>$", { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<Leader>2', "0i## <Esc>$", { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<Leader>3', "0i### <Esc>$", { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<Leader>4', "0i#### <Esc>$", { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<Leader>5', "0i##### <Esc>$", { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<Leader>6', "0i###### <Esc>$", { noremap = true, silent = true })
|
||||||
|
|
||||||
|
-- Бинд для VISUAL MODE: Добавление * в начало и конец выделенного текста
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('v', '<Leader>i', "<Esc>`<i*<Esc>`>a*<Esc>", { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('v', '<Leader>b', "<Esc>`<i**<Esc>`>a**<Esc>", { noremap = true, silent = true })
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('v', '<Leader>`', "<Esc>`<i<CR><Up>```bash<Esc>`>a<CR>```<Esc>", { noremap = true, silent = true })
|
||||||
|
|
||||||
|
|
||||||
|
function Table(mode, n)
|
||||||
|
if mode == "r" then
|
||||||
|
-- Режим строки (row)
|
||||||
|
vim.cmd("normal! `<") -- Переход в начало выделения
|
||||||
|
local k = vim.fn.strlen(vim.fn.getline(".")) -- Считаем количество символов в строке
|
||||||
|
vim.cmd("normal! `>") -- Переход в конец выделения
|
||||||
|
vim.cmd("startinsert") -- Вход в режим вставки
|
||||||
|
|
||||||
|
for _ = 1, n do
|
||||||
|
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<CR>", true, false, true), "n", false) -- Нажимаем Enter
|
||||||
|
vim.api.nvim_put({ string.rep("| ", k) }, "c", false, true) -- Вставляем "| " k раз
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.cmd("stopinsert") -- Выход из режима вставки
|
||||||
|
|
||||||
|
elseif mode == "c" then
|
||||||
|
-- Режим столбца (column)
|
||||||
|
local start_row, _ = unpack(vim.fn.getpos "'<") -- Получаем начальную позицию выделения
|
||||||
|
local end_row, _ = unpack(vim.fn.getpos "'>") -- Получаем конечную позицию выделения
|
||||||
|
local k = end_row - start_row + 1 -- Считаем количество строк в выделенной области
|
||||||
|
|
||||||
|
for _ = 1, n do
|
||||||
|
vim.cmd("normal! `<") -- Переход в начало выделения
|
||||||
|
vim.cmd("normal! $") -- Переход в конец строки
|
||||||
|
vim.cmd("startinsert") -- Вход в режим вставки
|
||||||
|
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(" |", true, false, true), "n", false) -- Пишем " |"
|
||||||
|
vim.cmd("stopinsert") -- Выход из режима вставки
|
||||||
|
|
||||||
|
for _ = 1, k - 2 do
|
||||||
|
vim.cmd("normal! k") -- Перемещение на строку выше
|
||||||
|
vim.cmd("startinsert") -- Вход в режим вставки
|
||||||
|
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(" |", true, false, true), "n", false) -- Пишем " |"
|
||||||
|
vim.cmd("stopinsert") -- Выход из режима вставки
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.cmd("normal! k") -- Перемещение на строку выше
|
||||||
|
vim.cmd("startinsert") -- Вход в режим вставки
|
||||||
|
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("-|", true, false, true), "n", false) -- Пишем "-|"
|
||||||
|
vim.cmd("stopinsert") -- Выход из режима вставки
|
||||||
|
end
|
||||||
|
else
|
||||||
|
print("Invalid mode. Use 'r' for row or 'c' for column.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------[[ВИЗУАЛ]]--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
--vim.cmd("colorscheme tokyonight")
|
||||||
|
--vim.cmd("colorscheme "gruvbox")
|
||||||
|
--vim.cmd("colorscheme astra") -- Применение темы
|
||||||
|
--vim.cmd("colorscheme kanagawa") -- Основная схема
|
||||||
|
--vim.cmd("colorscheme kanagawa-wave") -- Более светлая версия
|
||||||
|
--vim.cmd("colorscheme kanagawa-dragon")-- Более тёмная версия
|
||||||
|
--vim.cmd("colorscheme kanagawa-lotus") -- Альтернативная палитра
|
||||||
|
vim.cmd("colorscheme nightfly")
|
||||||
|
|
||||||
|
|
||||||
|
-- Включение относительной нумерации строк
|
||||||
|
vim.opt.number = true -- Включить абсолютную нумерацию строк
|
||||||
|
vim.opt.relativenumber = true -- Включить относительную нумерацию строк
|
||||||
|
|
||||||
|
vim.cmd [[
|
||||||
|
autocmd TermOpen * setlocal nonumber norelativenumber
|
||||||
|
]]
|
||||||
|
|
||||||
|
|
||||||
|
vim.opt.cmdheight = 0
|
||||||
|
|
||||||
|
-- disable netrw at the very start of your init.lua
|
||||||
|
vim.g.loaded_netrw = 1
|
||||||
|
vim.g.loaded_netrwPlugin = 1
|
||||||
|
|
||||||
|
-- Включаем поддержку цветовой схемы
|
||||||
|
vim.opt.termguicolors = true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
vim.opt.textwidth = 100
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
31
lua/config/fzf.lua
Normal file
31
lua/config/fzf.lua
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
require("fzf-lua").setup({
|
||||||
|
keymap = {
|
||||||
|
fzf = {
|
||||||
|
["alt-k"] = "down", -- Ctrl + k теперь движется вниз
|
||||||
|
["alt-l"] = "up", -- Ctrl + l теперь движется вверх
|
||||||
|
["ctrl-j"] = false, -- Отключаем Ctrl + J <button class="citation-flag" data-index="8">
|
||||||
|
}
|
||||||
|
},
|
||||||
|
previewers = {
|
||||||
|
builtin = {
|
||||||
|
extensions = {
|
||||||
|
-- Настройка для изображений
|
||||||
|
["png"] = "chafa",
|
||||||
|
["jpg"] = "chafa",
|
||||||
|
["jpeg"] = "chafa",
|
||||||
|
["gif"] = "chafa",
|
||||||
|
["bmp"] = "chafa",
|
||||||
|
["webp"] = "chafa",
|
||||||
|
["tiff"] = "chafa",
|
||||||
|
-- Добавьте другие форматы по необходимости
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>o', ':FzfLua files<CR>', { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>f', ':FzfLua live_grep<CR>', { noremap = true, silent = true })
|
||||||
|
|
||||||
|
|
1
lua/config/gitsigns.lua
Normal file
1
lua/config/gitsigns.lua
Normal file
@ -0,0 +1 @@
|
|||||||
|
require("gitsigns").setup()
|
18
lua/config/indent-blankline.lua
Normal file
18
lua/config/indent-blankline.lua
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
local ibl = require("ibl")
|
||||||
|
|
||||||
|
ibl.setup({
|
||||||
|
enabled = true,
|
||||||
|
indent = {
|
||||||
|
char = "│", -- Символ для отображения отступов
|
||||||
|
tab_char = "│", -- Символ для табуляций
|
||||||
|
},
|
||||||
|
scope = {
|
||||||
|
enabled = false, -- Отключено по умолчанию
|
||||||
|
},
|
||||||
|
exclude = {
|
||||||
|
filetypes = { "help", "alpha", "dashboard", "neo-tree", "Trouble", "lazy" }, -- Исключить определенные типы файлов
|
||||||
|
},
|
||||||
|
whitespace = {
|
||||||
|
remove_blankline_trail = false, -- Не удалять пробелы в конце строк
|
||||||
|
},
|
||||||
|
})
|
48
lua/config/lazy.lua
Normal file
48
lua/config/lazy.lua
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
-- Bootstrap lazy.nvim
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||||
|
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||||
|
if vim.v.shell_error ~= 0 then
|
||||||
|
vim.api.nvim_echo({
|
||||||
|
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||||
|
{ out, "WarningMsg" },
|
||||||
|
{ "\nPress any key to exit..." },
|
||||||
|
}, true, {})
|
||||||
|
vim.fn.getchar()
|
||||||
|
os.exit(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
-- Make sure to setup `mapleader` and `maplocalleader` before
|
||||||
|
-- loading lazy.nvim so that mappings are correct.
|
||||||
|
-- This is also a good place to setup other settings (vim.opt)
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
vim.g.maplocalleader = "\\"
|
||||||
|
|
||||||
|
-- Setup lazy.nvim
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
-- import your plugins
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
-- Configure any other settings here. See the documentation for more details.
|
||||||
|
-- colorscheme that will be used when installing plugins.
|
||||||
|
install = { colorscheme = { "habamax" } },
|
||||||
|
-- automatically check for plugin updates
|
||||||
|
checker = { enabled = true },
|
||||||
|
})
|
||||||
|
|
||||||
|
local function augroup(name)
|
||||||
|
return vim.api.nvim_create_augroup("lazyvim_" .. name, { clear = true })
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("VimEnter", {
|
||||||
|
group = augroup("autoupdate"),
|
||||||
|
callback = function()
|
||||||
|
if require("lazy.status").has_updates then
|
||||||
|
require("lazy").update({ show = false, })
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
7
lua/config/lualine.lua
Normal file
7
lua/config/lualine.lua
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
require('lualine').setup {
|
||||||
|
options = {
|
||||||
|
theme = 'gruvbox',
|
||||||
|
section_separators = '',
|
||||||
|
component_separators = '',
|
||||||
|
},
|
||||||
|
}
|
1
lua/config/mason.lua
Normal file
1
lua/config/mason.lua
Normal file
@ -0,0 +1 @@
|
|||||||
|
require('mason').setup()
|
44
lua/config/nvim-cmp.lua
Normal file
44
lua/config/nvim-cmp.lua
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
local cmp = require'cmp'
|
||||||
|
|
||||||
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
require('luasnip').lsp_expand(args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
mapping = {
|
||||||
|
['<A-l>'] = cmp.mapping.select_prev_item(),
|
||||||
|
['<A-k>'] = cmp.mapping.select_next_item(),
|
||||||
|
['<C-;>'] = cmp.mapping.confirm({ select = true }),
|
||||||
|
['<CR>'] = cmp.mapping.confirm({ select = true }),
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<C-j>'] = cmp.mapping.close(),
|
||||||
|
['<C-e>'] = cmp.mapping.close(),
|
||||||
|
},
|
||||||
|
sources = {
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'buffer' },
|
||||||
|
{ name = 'nvim_lsp_signature_help' },
|
||||||
|
{ name = 'render-markdown' },
|
||||||
|
},
|
||||||
|
-- другие настройки
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Diagnostic
|
||||||
|
vim.keymap.set('n', '<Space>k', '<cmd>lua vim.diagnostic.open_float()<CR>', { noremap = true, silent = true })
|
||||||
|
vim.keymap.set('n', '<space>l', [[:lua YankDiagnosticError()<CR>]], { noremap = true, silent = true, desc = "Copy error" })
|
||||||
|
|
||||||
|
function YankDiagnosticError()
|
||||||
|
vim.diagnostic.open_float()
|
||||||
|
vim.diagnostic.open_float()
|
||||||
|
local win_id = vim.fn.win_getid() -- get the window ID of the floating window
|
||||||
|
vim.cmd("normal! j") -- move down one row
|
||||||
|
vim.cmd("normal! VG") -- select everything from that row down
|
||||||
|
vim.cmd("normal! \"+y") -- yank selected text
|
||||||
|
vim.api.nvim_win_close(win_id, true) -- close the floating window by its ID
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
vim.diagnostic.config({
|
||||||
|
signs = false, -- Отключает отображение знаков (иконок ошибок) слева
|
||||||
|
})
|
30
lua/config/nvim-lspconfig.lua
Normal file
30
lua/config/nvim-lspconfig.lua
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||||
|
|
||||||
|
local lspconfig = require('lspconfig')
|
||||||
|
|
||||||
|
lspconfig.jdtls.setup{
|
||||||
|
cmd = { "jdtls" },
|
||||||
|
settings = {
|
||||||
|
java = {
|
||||||
|
signatureHelp = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
lspconfig.clangd.setup{}
|
||||||
|
|
||||||
|
lspconfig.rust_analyzer.setup({
|
||||||
|
capabilities = capabilities,
|
||||||
|
settings = {
|
||||||
|
["rust-analyzer"] = {
|
||||||
|
cargo = {
|
||||||
|
allFeatures = true,
|
||||||
|
},
|
||||||
|
procMacro = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
22
lua/config/nvim-tree.lua
Normal file
22
lua/config/nvim-tree.lua
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
-- Настройка nvim-tree
|
||||||
|
require("nvim-tree").setup({
|
||||||
|
sort = {
|
||||||
|
sorter = "case_sensitive",
|
||||||
|
},
|
||||||
|
view = {
|
||||||
|
width = 30,
|
||||||
|
},
|
||||||
|
renderer = {
|
||||||
|
group_empty = true,
|
||||||
|
},
|
||||||
|
filters = {
|
||||||
|
dotfiles = true,
|
||||||
|
},
|
||||||
|
actions = {
|
||||||
|
open_file = {
|
||||||
|
quit_on_open = true, -- закрывать дерево при открытии файла
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
vim.keymap.set("n", "<Leader>e", ":NvimTreeToggle<CR>", { noremap = true, silent = true })
|
||||||
|
vim.keymap.set("n", "<Leader>q", ":NvimTreeFindFile<CR>", { noremap = true, silent = true })
|
5
lua/config/nvim-treesitter.lua
Normal file
5
lua/config/nvim-treesitter.lua
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
require'nvim-treesitter.configs'.setup {
|
||||||
|
ensure_installed = { "markdown", "markdown_inline","lua", "python", "javascript", "html", "css" },
|
||||||
|
highlight = { enable = true }, -- Включение подсветки синтаксиса
|
||||||
|
indent = { enable = true }, -- Включение автоматической настройки отступов
|
||||||
|
}
|
9
lua/config/render-markdown.lua
Normal file
9
lua/config/render-markdown.lua
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
require('render-markdown').setup({
|
||||||
|
heading = {
|
||||||
|
width = 'block',
|
||||||
|
left_pad = 2,
|
||||||
|
right_pad = 4,
|
||||||
|
border = true,
|
||||||
|
border_virtual = true,
|
||||||
|
},
|
||||||
|
})
|
43
lua/config/telescope.lua
Normal file
43
lua/config/telescope.lua
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
require('telescope').setup({
|
||||||
|
--дополнения
|
||||||
|
extensions = {
|
||||||
|
fzf = {
|
||||||
|
fuzzy = true, -- false will only do exact matching
|
||||||
|
override_generic_sorter = true, -- override the generic sorter
|
||||||
|
override_file_sorter = true, -- override the file sorter
|
||||||
|
case_mode = "ignore_case", -- or "ignore_case" or "respect_case"
|
||||||
|
-- the default case_mode is "smart_case"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
--настройки
|
||||||
|
defaults = {
|
||||||
|
debug = true,
|
||||||
|
mappings = {
|
||||||
|
i = {
|
||||||
|
-- Замена j на l для перемещения вниз
|
||||||
|
["k"] = "move_selection_next",
|
||||||
|
-- Замена k на h для перемещения вверх
|
||||||
|
["l"] = "move_selection_previous",
|
||||||
|
-- Отключение оригинальных j и k, если нужно
|
||||||
|
["j"] = false,
|
||||||
|
},
|
||||||
|
n = {
|
||||||
|
-- Аналогично для режима normal
|
||||||
|
["k"] = "move_selection_next",
|
||||||
|
["l"] = "move_selection_previous",
|
||||||
|
["j"] = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- To get fzf loaded and working with telescope, you need to call
|
||||||
|
-- load_extension, somewhere after setup function:
|
||||||
|
require('telescope').load_extension('fzf')
|
||||||
|
|
||||||
|
local builtin = require('telescope.builtin')
|
||||||
|
vim.keymap.set('n', '<Leader>o', builtin.find_files, { desc = 'Telescope find files' })
|
||||||
|
vim.keymap.set('n', '<Leader>f', builtin.live_grep, { desc = 'Telescope live grep' })
|
||||||
|
|
1
lua/config/vimtex.lua
Normal file
1
lua/config/vimtex.lua
Normal file
@ -0,0 +1 @@
|
|||||||
|
vim.g.vimtex_view_method = "zathura" -- Настройте просмотрщик PDF (например, Zathura)
|
1
lua/config/which-key.lua
Normal file
1
lua/config/which-key.lua
Normal file
@ -0,0 +1 @@
|
|||||||
|
require("which-key").setup()
|
104
lua/plugins.lua
Normal file
104
lua/plugins.lua
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
return {
|
||||||
|
-- Список плагинов
|
||||||
|
|
||||||
|
-- Treesitter для синтаксического анализа
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
build = ":TSUpdate",
|
||||||
|
config = function()
|
||||||
|
require("config.nvim-treesitter")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Icon provider plugins
|
||||||
|
{ "antoinemadec/FixCursorHold.nvim" },
|
||||||
|
{ "nvim-tree/nvim-web-devicons" },
|
||||||
|
|
||||||
|
-- Render Markdown
|
||||||
|
{
|
||||||
|
"MeanderingProgrammer/render-markdown.nvim",
|
||||||
|
dependencies = { "echasnovski/mini.nvim", opt = true },
|
||||||
|
config = function()
|
||||||
|
require("config.render-markdown")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Git интеграция
|
||||||
|
{
|
||||||
|
"lewis6991/gitsigns.nvim",
|
||||||
|
config = function()
|
||||||
|
require("config.gitsigns")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Показывает доступные комбинации клавиш
|
||||||
|
{
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
config = function()
|
||||||
|
require("config.which-key")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Визуализация отступов
|
||||||
|
{
|
||||||
|
"lukas-reineke/indent-blankline.nvim",
|
||||||
|
config = function()
|
||||||
|
require("config.indent-blankline")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Канагава theme
|
||||||
|
{
|
||||||
|
"rebelot/kanagawa.nvim",
|
||||||
|
lazy = false, -- Убедитесь, что плагин загружается при запуске
|
||||||
|
priority = 1000, -- Высокий приоритет для применения цветовой схемы
|
||||||
|
config = function()
|
||||||
|
vim.cmd("colorscheme kanagawa")
|
||||||
|
end
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
--nigthfly theme
|
||||||
|
{
|
||||||
|
"bluz71/vim-nightfly-colors",
|
||||||
|
lazy = false,
|
||||||
|
priority = 1000,
|
||||||
|
config = function()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"hrsh7th/nvim-cmp"
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"hrsh7th/cmp-nvim-lsp"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"ibhagwan/fzf-lua",
|
||||||
|
-- optional for icon support
|
||||||
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
|
-- or if using mini.icons/mini.nvim
|
||||||
|
-- dependencies = { "echasnovski/mini.icons" },
|
||||||
|
opts = {}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{"nvim-lualine/lualine.nvim", dependencies = { "kyazdani42/nvim-web-devicons", optional = true } },
|
||||||
|
{ "morhetz/gruvbox" },
|
||||||
|
{ "folke/tokyonight.nvim" },
|
||||||
|
{ "neovim/nvim-lspconfig" },
|
||||||
|
{ "kyazdani42/nvim-tree.lua", dependencies = { "nvim-tree/nvim-web-devicons" } },
|
||||||
|
{ "akinsho/bufferline.nvim", version = "*", dependencies = "nvim-tree/nvim-web-devicons" },
|
||||||
|
{ "williamboman/mason.nvim" },
|
||||||
|
{ "hrsh7th/cmp-nvim-lsp-signature-help" },
|
||||||
|
{ "nvim-lua/plenary.nvim", lazy = true },
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user