Compare commits

..

1 Commits

Author SHA1 Message Date
eaad2e675c check rtp disable, lualine up disable duration 2025-08-16 21:28:48 +03:00
23 changed files with 286 additions and 1130 deletions

View File

@ -3,36 +3,22 @@ require("config.lazy")
require("config.common-settings") require("config.common-settings")
require("config.mason") require("config.mason")
require("config.nvim-tree") require("config.nvim-tree")
--require("config.render-markdown")
require("config.markview")
require("config.nvim-treesitter") require("config.nvim-treesitter")
require("config.lualine") require("config.lualine")
require("config.nvim-cmp") require("config.nvim-cmp")
require("config.nvim-lspconfig") require("config.nvim-lspconfig")
require("config.indent-blankline") require("config.indent-blankline")
require("config.fzf") require("config.fzf")
require("config.mkdx") require("config.mkdx")
require("config.mutton") --require("config.mutton")
require("config.noice")
require("config.notify") require('config.cigan')
require("config.markview")
require("config.codecompanion")
--require('config.cigan')
--require("config.render-markdown")
vim.api.nvim_set_keymap('n', '<leader><CR>', [[<cmd>lua require('config.cigan').run_script()<CR>]], { noremap = true, silent = true }) vim.api.nvim_set_keymap('n', '<leader><CR>', [[<cmd>lua require('config.cigan').run_script()<CR>]], { noremap = true, silent = true })

View File

@ -1,199 +0,0 @@
require('markview').setup({
markdown = {
debounce = 300, -- Задержка обновления
headings = {
enable = true,
org_shift_char = " ",
shift_width = 0,
org_indent = false,
org_indent_wrap = false,
heading_1 = {
style = "label",
sign = "",
},
heading_2 = {
style = "label",
sign = "",
},
heading_3 = {
style = "label",
},
heading_4 = {
style = "label",
},
heading_5 = {
style = "label",
},
heading_6 = {
style = "label",
},
setext_1 = {
style = "decorated",
sign = "", sign_hl = "MarkviewHeading1Sign",
icon = "", hl = "MarkviewHeading1",
border = ""
},
setext_2 = {
style = "decorated",
sign = "", sign_hl = "MarkviewHeading2Sign",
icon = "", hl = "MarkviewHeading2",
border = ""
}
};
horizontal_rules = {
enable = true, -- Оставляем предпросмотр горизонтальных линий включенным
parts = {
{
type = "repeating",
repeat_amount = function (buffer)
local utils = require("markview.utils");
local window = utils.buf_getwin(buffer)
local width = vim.api.nvim_win_get_width(window)
local textoff = vim.fn.getwininfo(window)[1].textoff;
return math.floor((width - textoff - 3) / 2);
end,
text = "", -- Символ для повторения
hl = "MarkviewBlockQuoteDefault" -- Упрощенная подсветка без градиента
},
{
-- type = "text",
---- text = " $ ", -- Центральный символ изменен на "$"
hl = "MarkviewBlockQuoteDefault" -- Упрощенная подсветка без градиента
},
{
type = "repeating",
repeat_amount = function (buffer)
local utils = require("markview.utils");
local window = utils.buf_getwin(buffer)
local width = vim.api.nvim_win_get_width(window)
local textoff = vim.fn.getwininfo(window)[1].textoff;
return math.ceil((width - textoff - 3) / 2);
end,
direction = "right",
text = "", -- Символ для повторения
hl = "MarkviewBlockQuoteDefault" -- Упрощенная подсветка без градиента
}
}
};
list_items = {
enable = true,
wrap = false,
indent_size = 2,
shift_width = 4,
marker_minus = {
add_padding = false,
conceal_on_checkboxes = true,
text = "",
hl = "MarkviewListItemMinus"
},
marker_plus = {
add_padding = false,
conceal_on_checkboxes = true,
text = "",
hl = "MarkviewListItemPlus"
},
marker_star = {
add_padding = false,
conceal_on_checkboxes = true,
text = "",
hl = "MarkviewListItemStar"
},
marker_dot = {
add_padding = false,
conceal_on_checkboxes = true,
},
marker_parenthesis = {
add_padding = false,
conceal_on_checkboxes = true,
}
},
},
markdown_inline = {
checkboxes = {
enable = true,
checked = { text = "󰗠 ", hl = "MarkviewCheckboxPending", scope_hl = "MarkviewCheckboxStriked" },
unchecked = { text = "󰄰 ", hl = "MarkviewCheckboxPending", scope_hl = "" },
["-"] = { text = "󰍶 ", hl = "MarkviewCheckboxCancelled", scope_hl = "MarkviewCheckboxStriked" },
}
},
preview = {
enable = true,
enable_hybrid_mode = true,
modes = { "n", "i", "v", "c" }, -- Работает во всех основных режимах
hybrid_modes = { "n", "v", "c" }, -- Hybrid mode во всех режимах
linewise_hybrid_mode = true, -- Линейный режим hybrid
edit_range = { 0, 0 }, -- Диапазон для input mode (-1, 1)
draw_range = { vim.o.lines, vim.o.lines }, -- Рендерить весь остальной текст
filetypes = { "markdown", "rmd", "quarto", "typst" }, -- Поддерживаемые форматы
ignore_buftypes = { "nofile" },
callbacks = {
on_attach = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 3
end
end,
on_detach = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 0
end
end,
on_enable = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 3
end
end,
on_disable = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 0
end
end,
on_hybrid_enable = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 3
end
end,
on_hybrid_disable = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 0
end
end,
on_mode_change = function(_, wins, current_mode)
local preview_modes = { "n", "i", "v", "c" }
for _, win in ipairs(wins) do
if vim.tbl_contains(preview_modes, current_mode) then
vim.wo[win].conceallevel = 3
else
vim.wo[win].conceallevel = 0
end
end
end
}
}
})

View File

@ -1,205 +0,0 @@
return {
-- ==============================
-- Визуальные плагины
-- ==============================
-- Темы оформления
{
"bluz71/vim-nightfly-colors", -- Nightfly тема
},
{
"folke/tokyonight.nvim", -- TokyoNight тема
},
{
"morhetz/gruvbox", -- Gruvbox тема
},
{
"rebelot/kanagawa.nvim", -- Kanagawa тема
},
{
"navarasu/onedark.nvim",
config = function()
require("onedark").setup({
style = "dark", -- Выберите стиль: 'dark', 'darker', 'cool', 'deep', 'warm', 'warmer'
})
require("onedark").load() -- Активируйте тему
end,
},
-- Иконки
{
"nvim-tree/nvim-web-devicons", -- Провайдер иконок для других плагинов
},
-- Интерфейс и UI
-- {
-- "MeanderingProgrammer/render-markdown.nvim", -- Рендеринг Markdown
-- dependencies = { "echasnovski/mini.nvim", opt = true },
-- config = function()
-- require("config.render-markdown")
-- end,
-- },
{
"nvim-lualine/lualine.nvim", -- Статусная строка
dependencies = { "kyazdani42/nvim-web-devicons", optional = true },
},
{
"lukas-reineke/indent-blankline.nvim", -- Визуализация отступов
config = function()
require("config.indent-blankline")
end,
},
{
"folke/noice.nvim",
event = "VeryLazy",
opts = {
-- add any options here
},
dependencies = {
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
"MunifTanjim/nui.nvim",
-- OPTIONAL:
-- `nvim-notify` is only needed, if you want to use the notification view.
-- If not available, we use `mini` as the fallback
"rcarriga/nvim-notify",
}
},
{
"iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
build = "cd app && yarn install",
init = function()
vim.g.mkdp_filetypes = { "markdown" }
vim.g.mkdp_markdown_css = vim.fn.expand("~/.config/nvim/markdowm.css.css")
--vim.g.mkdp_markdown_css = vim.fn.expand("~/.config/nvim/markdown_black_writer.css")
end,
ft = { "markdown" },
},
-- ==============================
-- Функциональные плагины
-- ==============================
-- LSP и автодополнение
{
"hrsh7th/cmp-nvim-lsp", -- Интеграция nvim-cmp с LSP
},
{
"hrsh7th/cmp-nvim-lsp-signature-help", -- Поддержка сигнатур LSP в автодополнении
},
{
"hrsh7th/cmp-path", -- Автодополнение путей
},
{
"hrsh7th/nvim-cmp", -- Основной плагин автодополнения
},
{
"neovim/nvim-lspconfig", -- Конфигурация LSP
},
{
"williamboman/mason.nvim", -- Управление LSP серверами
},
-- Поиск и навигация
{
"ibhagwan/fzf-lua", -- FZF для быстрого поиска
dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {},
},
{
"nvim-lua/plenary.nvim", -- Библиотека для других плагинов
},
-- Другие функциональные плагины
{
"antoinemadec/FixCursorHold.nvim", -- Исправление CursorHold событий
},
{
"gabenespoli/vim-mutton", -- Дополнительные возможности для работы с текстом
},
{
"kyazdani42/nvim-tree.lua", -- Файловый менеджер
dependencies = { "nvim-tree/nvim-web-devicons" },
},
{
"nanotee/zoxide.vim", -- Интеграция с zoxide для быстрой навигации
},
{
"SidOfc/mkdx", -- Улучшения для работы с Markdown
},
{
"L3MON4D3/LuaSnip",
dependencies = { "rafamadriz/friendly-snippets" },
},
{
"MeanderingProgrammer/render-markdown.nvim",
dependencies = { "nvim-treesitter/nvim-treesitter" },
config = function()
require("render-markdown").setup({
-- Принудительно включаем рендеринг во всех режимах, включая терминал
render_modes = true, -- или перечислить явно: { 'n', 'c', 't', 'i' }
})
-- Автокоманда, срабатывающая при открытии терминала
vim.api.nvim_create_autocmd("TermOpen", {
callback = function()
-- Сообщаем Treesitter, что содержимое буфера терминала — Markdown
vim.treesitter.language.register('markdown', vim.bo.filetype)
-- Перезапускаем Treesitter-парсер для текущего буфера
vim.cmd("edit")
end,
})
end,
}
-- Treesitter для синтаксического анализа
{
"nvim-treesitter/nvim-treesitter",
lazy = true,
build = ":TSUpdate",
dependencies = { "MeanderingProgrammer/render-markdown.nvim" },
config = function()
require("config.nvim-treesitter")
end,
},
{
'gsuuon/model.nvim',
config = function()
local bash_provider = {
request_completion = function(handlers, params, options)
local input = params.input
local command = "~/test '" .. input .. "'"
local handle = io.popen(command)
local result = handle:read("*a")
handle:close()
local response = vim.json.decode(result)
handlers.on_partial(response.message.content)
handlers.on_finish()
end
}
require('model').setup({
chats = {
mybash = {
provider = bash_provider,
create = function(input, context)
return {
messages = {
{ role = 'user', content = input }
}
}
end,
run = function(messages, config)
local last_message = messages[#messages]
return { input = last_message.content }
end
}
}
})
end
}
}

View File

@ -1,76 +0,0 @@
require("codecompanion").setup({
interactions = {
chat = {
adapter = "ollama",
opts = {
completion_provider = "cmp",
system_prompt = [[]],
show_model_choices = false,
show_presets = false,
},
},
inline = {
adapter = "ollama",
},
cmd = {
adapter = "ollama",
},
},
adapters = {
http = { -- Добавлена таблица http, так как ollama является HTTP адаптером
ollama = function()
return require("codecompanion.adapters").extend("ollama", {
env = {
url = "http://localhost:11434",
},
schema = {
model = {
default = "qwen3.5:35b",
},
think = {
default = false,
},
temperature = {
default = 1,
},
num_ctx = {
default = 262144,
},
repeat_penalty = {
default = 1.5,
},
top_k = {
default = 20,
},
top_p = {
default = 0.95,
},
keep_alive = {
default = -1,
},
},
})
end,
},
},
display = {
chat = {
intro_message = "🧠 Connected to Ollama via SSH (qwen3.5:14b)",
},
},
})
-- Роль: Краткий и профессиональный ИИ-ассистент.
--
-- Ключевые правила форматирования:
-- Запреты: Никаких заголовков H1/H2
--
-- Стиль работы:
-- Отвечать на языке пользователя.

View File

@ -28,13 +28,6 @@ vim.keymap.set("n", "<C-w>l", "<C-w>k", { noremap = true, silent = true })
vim.keymap.set("n", "<C-w>;", "<C-w>l", { noremap = true, silent = true }) vim.keymap.set("n", "<C-w>;", "<C-w>l", { noremap = true, silent = true })
-- Копирование в буфер пути файла
vim.api.nvim_create_user_command('CopyPath', function()
vim.fn.setreg('+', vim.fn.expand('%:p'))
end, {})
-- Настройка выхода из режима ввода через Atl+i -- Настройка выхода из режима ввода через Atl+i
vim.api.nvim_set_keymap('i', '<A-i>', '<Esc>', { noremap = true, silent = true }) vim.api.nvim_set_keymap('i', '<A-i>', '<Esc>', { noremap = true, silent = true })
-- Настройка терминала -- Настройка терминала
@ -44,7 +37,7 @@ vim.api.nvim_set_keymap('t', '<A-i>', '<C-\\><C-n>', { noremap = true, silent =
-- установить время ожидания в 200 миллисекунд -- установить время ожидания в 200 миллисекунд
vim.o.timeoutlen = 300 vim.o.timeoutlen = 1000
@ -106,8 +99,6 @@ vim.o.laststatus = 0 -- Отключает строку состояния
vim.cmd("colorscheme tokyonight-night")
--vim.cmd("colorscheme wildcharm") -- темная тема
--vim.cmd("colorscheme retrobox") --vim.cmd("colorscheme retrobox")
--vim.cmd("colorscheme gruvbox") --vim.cmd("colorscheme gruvbox")
--vim.cmd("colorscheme astra") -- Применение темы --vim.cmd("colorscheme astra") -- Применение темы
@ -118,7 +109,8 @@ vim.cmd("colorscheme tokyonight-night")
--vim.cmd("colorscheme nightfly") --vim.cmd("colorscheme nightfly")
--vim.cmd("colorscheme randomhue") --vim.cmd("colorscheme randomhue")
--vim.cmd("colorscheme kanagawa") --vim.cmd("colorscheme kanagawa")
-- vim.cmd("colorscheme zellner") -- светлая тема --vim.cmd("colorscheme wildcharm")
vim.cmd("colorscheme retrobox")

View File

@ -29,9 +29,12 @@ require("lazy").setup({
}, },
-- Configure any other settings here. See the documentation for more details. -- Configure any other settings here. See the documentation for more details.
-- colorscheme that will be used when installing plugins. -- colorscheme that will be used when installing plugins.
install = { colorscheme = { "habamax" } }, install = { colorscheme = { "habamax" } },
-- automatically check for plugin updates -- automatically check for plugin updates
checker = { enabled = true }, checker = { enabled = true },
experimental = {
check_rtp = false,
},
}) })
local function augroup(name) local function augroup(name)

View File

@ -1,9 +0,0 @@
local M = {}
function M.init()
vim.g.mkdp_filetypes = { "markdown" }
vim.g.mkdp_markdown_css = vim.fn.expand("~/.config/nvim/markdowm.css.css")
-- vim.g.mkdp_markdown_css = vim.fn.expand("~/.config/nvim/markdown_black_writer.css")
end
return M

View File

@ -1,6 +1,7 @@
require('markview').setup({ require('markview').setup({
markdown = { markdown = {
debounce = 300, -- Задержка обновления debounce = 300, -- Задержка обновления
headings = { headings = {
enable = true, enable = true,
org_shift_char = " ", org_shift_char = " ",
@ -41,7 +42,8 @@ require('markview').setup({
border = "" border = ""
} }
}; };
horizontal_rules = {
horizontal_rules = {
enable = true, -- Оставляем предпросмотр горизонтальных линий включенным enable = true, -- Оставляем предпросмотр горизонтальных линий включенным
parts = { parts = {
@ -83,7 +85,7 @@ require('markview').setup({
} }
} }
}; };
list_items = { list_items = {
enable = true, enable = true,
wrap = false, wrap = false,
@ -126,19 +128,58 @@ require('markview').setup({
}, },
}, },
markdown_inline = {
checkboxes = {
enable = true,
checked = { text = "󰗠 ", hl = "MarkviewCheckboxPending", scope_hl = "MarkviewCheckboxStriked" },
unchecked = { text = "󰄰 ", hl = "MarkviewCheckboxPending", scope_hl = "" },
["-"] = { text = "󰍶 ", hl = "MarkviewCheckboxCancelled", scope_hl = "MarkviewCheckboxStriked" },
}
},
preview = { preview = {
filetypes = { "markdown", "codecompanion" }, enable = true,
ignore_buftypes = {}, enable_hybrid_mode = true,
}, modes = { "n", "i", "v", "c" }, -- Работает во всех основных режимах
}) hybrid_modes = { "n", "v", "c" }, -- Hybrid mode во всех режимах
linewise_hybrid_mode = true, -- Линейный режим hybrid
edit_range = { 0, 0 }, -- Диапазон для input mode (-1, 1)
draw_range = { vim.o.lines, vim.o.lines }, -- Рендерить весь остальной текст
filetypes = { "markdown", "rmd", "quarto", "typst" }, -- Поддерживаемые форматы
ignore_buftypes = { "nofile" },
callbacks = {
on_attach = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 3
end
end,
on_detach = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 0
end
end,
on_enable = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 3
end
end,
on_disable = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 0
end
end,
on_hybrid_enable = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 3
end
end,
on_hybrid_disable = function(_, wins)
for _, win in ipairs(wins) do
vim.wo[win].conceallevel = 0
end
end,
on_mode_change = function(_, wins, current_mode)
local preview_modes = { "n", "i", "v", "c" }
for _, win in ipairs(wins) do
if vim.tbl_contains(preview_modes, current_mode) then
vim.wo[win].conceallevel = 3
else
vim.wo[win].conceallevel = 0
end
end
end
}
}
})

View File

@ -1,32 +0,0 @@
local bash_provider = {
request_completion = function(handlers, params, options)
local input = params.input
local command = "~/test '" .. input .. "'"
local handle = io.popen(command)
local result = handle:read("*a")
handle:close()
local response = vim.json.decode(result)
handlers.on_partial(response.message.content)
handlers.on_finish()
end
}
require('model').setup({
chats = {
mybash = {
provider = bash_provider,
create = function(input, context)
return {
messages = {
{ role = 'user', content = input }
}
}
end,
run = function(messages, config)
local last_message = messages[#messages]
return { input = last_message.content }
end
}
}
})

View File

@ -1,43 +1,40 @@
vim.g.mutton_min_center_width = 100 vim.g.mutton_min_center_width = 110
-- Для Mutton -- Для Mutton
local normal_bg = vim.fn.synIDattr(vim.fn.hlID("Normal"), "bg") local normal_bg = vim.fn.synIDattr(vim.fn.hlID("Normal"), "bg")
vim.api.nvim_set_hl(0, "EndOfBuffer", { fg = normal_bg} ) -- overrides `~` character at the end of buffer vim.api.nvim_set_hl(0, "EndOfBuffer", { fg = normal_bg} ) -- overrides `~` character at the end of buffer
vim.api.nvim_set_hl(0, "VertSplit", { fg = normal_bg} ) -- overrides `~` character at the end of buffer vim.api.nvim_set_hl(0, "VertSplit", { fg = normal_bg} ) -- overrides `~` character at the end of buffer
vim.api.nvim_set_hl(0, "WinSeparator", { fg = normal_bg }) vim.api.nvim_set_hl(0, "WinSeparator", { fg = normal_bg })
-- Для автовключения
-- local mutton = false local mutton = false
-- local function on_buf_read() local function on_buf_read()
-- vim.defer_fn(function() vim.defer_fn(function()
-- local buf_name = vim.api.nvim_buf_get_name(0) -- Получаем имя файла local buf_name = vim.api.nvim_buf_get_name(0) -- Получаем имя файла
--
--
-- if buf_name:match("%.md$") and mutton == false and not buf_name:match("ui.md$") then -- Проверяем, заканчивается ли имя на ".md" if buf_name:match("%.md$") and mutton == false and not buf_name:match("ui.md$") then -- Проверяем, заканчивается ли имя на ".md"
-- mutton = true mutton = true
-- vim.cmd("MuttonToggle") vim.cmd("MuttonToggle")
-- elseif mutton == true and buf_name:match("ui.md$") then
-- vim.opt.number = false mutton = false
-- vim.opt.relativenumber = false vim.cmd("wincmd l | q")
-- elseif mutton == true and buf_name:match("ui.md$") then vim.cmd("wincmd h | q")
-- mutton = false vim.cmd("MuttonToggle")
-- vim.cmd("wincmd l | q")
-- vim.cmd("wincmd h | q") elseif buf_name:match("NvimTree_1$") then
-- vim.cmd("MuttonToggle")
-- elseif buf_name:match("%[%[Mutton%]%]$") then
-- elseif buf_name:match("NvimTree_1$") then
-- elseif buf_name:match("/usr/bin/sh$") then
-- elseif buf_name:match("%[%[Mutton%]%]$") then
-- elseif mutton == true and not buf_name:match("%.md$") then
-- elseif buf_name:match("/usr/bin/sh$") then mutton = false
-- vim.cmd("MuttonToggle")
-- elseif mutton == true and not buf_name:match("%.md$") then end
-- mutton = false end, 100)
-- vim.cmd("MuttonToggle") end
-- end
-- end, 100) vim.api.nvim_create_autocmd("BufEnter", { callback = on_buf_read })
-- end
--
-- vim.api.nvim_create_autocmd("BufEnter", { callback = on_buf_read })

View File

@ -1,18 +0,0 @@
require("noice").setup({
lsp = {
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true,
["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp
},
},
-- you can enable a preset for easier configuration
presets = {
bottom_search = false, -- use a classic bottom cmdline for search
command_palette = true, -- position the cmdline and popupmenu together
long_message_to_split = true, -- long messages will be sent to a split
inc_rename = false, -- enables an input dialog for inc-rename.nvim
lsp_doc_border = false, -- add a border to hover docs and signature help
},
})

View File

@ -1,7 +0,0 @@
require('notify').setup({
max_width = 100, -- Максимальная ширина окна уведомления
max_height = 50, -- Максимальная высота окна уведомления
-- Другие стандартные опции nvim-notify
top_down = true, -- Размещать уведомления снизу вверх
timeout = 1500, -- Время отображения в мс
})

View File

@ -15,27 +15,12 @@ cmp.setup({
['<C-j>'] = cmp.mapping.close(), ['<C-j>'] = cmp.mapping.close(),
['<C-e>'] = cmp.mapping.close(), ['<C-e>'] = cmp.mapping.close(),
}, },
sources = cmp.config.sources({ sources = {
{ name = 'nvim_lsp' }, { name = 'nvim_lsp' },
{ name = 'buffer' }, { name = 'buffer' },
{ name = 'nvim_lsp_signature_help' },
{ name = 'render-markdown' },
{ name = 'path' }, { name = 'path' },
-- Уберите render-markdown и nvim_lsp_signature_help если они не работают
}, {
{ name = 'codecompanion_slash_commands' },
{ name = 'codecompanion_tools' },
{ name = 'codecompanion_editor_context' },
{ name = 'codecompanion_models' },
{ name = 'codecompanion_acp_commands' },
}),
-- Настройка источников специально для буферов CodeCompanion
filetype = {
codecompanion = {
sources = {
{ name = 'codecompanion' },
{ name = 'buffer' },
{ name = 'path' },
}
}
}, },
}) })

View File

@ -1,41 +1,47 @@
local capabilities = require('cmp_nvim_lsp').default_capabilities() local capabilities = require('cmp_nvim_lsp').default_capabilities()
local lspconfig = require('lspconfig')
-- Java -- Java
vim.lsp.config('jdtls', { lspconfig.jdtls.setup {
cmd = { "jdtls" }, cmd = { "jdtls" },
settings = { settings = {
java = { java = {
signatureHelp = { enabled = true }, signatureHelp = {
enabled = true,
},
},
}, },
}, }
})
-- C/C++ -- C/C++
vim.lsp.config('clangd', {}) lspconfig.clangd.setup {}
-- C/C++
vim.lsp.config('arduino-language-server', {})
-- Rust -- Rust
vim.lsp.config('rust_analyzer', { lspconfig.rust_analyzer.setup({
capabilities = capabilities, capabilities = capabilities,
settings = { settings = {
['rust-analyzer'] = { ["rust-analyzer"] = {
cargo = { allFeatures = true }, cargo = {
procMacro = { enable = true }, allFeatures = true,
},
procMacro = {
enable = true,
},
},
}, },
},
}) })
-- Python -- Python
vim.lsp.config('pyright', { lspconfig.pyright.setup({
capabilities = capabilities, capabilities = capabilities,
settings = { settings = {
python = { python = {
analysis = { analysis = {
autoSearchPaths = true, autoSearchPaths = true,
diagnosticMode = "workspace", diagnosticMode = "workspace", -- Включить диагностику для всего проекта
useLibraryCodeForTypes = true, useLibraryCodeForTypes = true,
}, },
},
}, },
},
}) })

View File

@ -1,4 +1,4 @@
require'nvim-treesitter'.setup { require'nvim-treesitter.configs'.setup {
highlight = { highlight = {
enable = true, enable = true,
disable = function(lang, buf) disable = function(lang, buf)

View File

@ -1,4 +0,0 @@
require("onedark").setup({
style = "dark", -- Выберите стиль: 'dark', 'darker', 'cool', 'deep', 'warm', 'warmer'
})
require("onedark").load() -- Активируйте тему

View File

@ -49,8 +49,7 @@ require('render-markdown').setup({
unchecked = { icon = '' }, unchecked = { icon = '' },
checked = { icon = '' }, checked = { icon = '' },
}, },
-- bullet = { icons = { '•', '◦', '-',} }, bullet = { icons = { '', '', '-',} },
bullet= {icons = { '', '', '', '' }},
}) })

View File

@ -1,211 +0,0 @@
return {
-- ==============================
-- Визуальные плагины
-- ==============================
-- Темы оформления
{ "nuvic/flexoki-nvim", name = "flexoki" },
{
"bluz71/vim-nightfly-colors", -- Nightfly тема
},
{
"folke/tokyonight.nvim", -- TokyoNight тема
},
{
"morhetz/gruvbox", -- Gruvbox тема
},
{
"rebelot/kanagawa.nvim", -- Kanagawa тема
},
{
"navarasu/onedark.nvim",
config = function()
require("onedark").setup({
style = "dark", -- Выберите стиль: 'dark', 'darker', 'cool', 'deep', 'warm', 'warmer'
})
require("onedark").load() -- Активируйте тему
end,
},
-- Иконки
{
"nvim-tree/nvim-web-devicons", -- Провайдер иконок для других плагинов
},
-- Интерфейс и UI
-- {
-- "MeanderingProgrammer/render-markdown.nvim", -- Рендеринг Markdown
-- dependencies = { "echasnovski/mini.nvim", opt = true },
-- config = function()
-- require("config.render-markdown")
-- end,
-- },
{
"nvim-lualine/lualine.nvim", -- Статусная строка
dependencies = { "kyazdani42/nvim-web-devicons", optional = true },
},
{
"lukas-reineke/indent-blankline.nvim", -- Визуализация отступов
config = function()
require("config.indent-blankline")
end,
},
{
"folke/noice.nvim",
event = "VeryLazy",
dependencies = {
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
"MunifTanjim/nui.nvim",
-- OPTIONAL:
-- `nvim-notify` is only needed, if you want to use the notification view.
-- If not available, we use `mini` as the fallback
"rcarriga/nvim-notify",
}
},
{
"iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
build = "cd app && yarn install",
init = function()
vim.g.mkdp_filetypes = { "markdown" }
vim.g.mkdp_markdown_css = vim.fn.expand("~/.config/nvim/markdowm.css.css")
--vim.g.mkdp_markdown_css = vim.fn.expand("~/.config/nvim/markdown_black_writer.css")
end,
ft = { "markdown" },
},
-- ==============================
-- Функциональные плагины
-- ==============================
-- LSP и автодополнение
{
"hrsh7th/cmp-nvim-lsp", -- Интеграция nvim-cmp с LSP
},
{
"hrsh7th/cmp-nvim-lsp-signature-help", -- Поддержка сигнатур LSP в автодополнении
},
{
"hrsh7th/cmp-path", -- Автодополнение путей
},
{
"hrsh7th/nvim-cmp", -- Основной плагин автодополнения
},
{
"neovim/nvim-lspconfig", -- Конфигурация LSP
},
{ "mason-org/mason-lspconfig.nvim" },
{
"williamboman/mason.nvim", -- Управление LSP серверами
},
-- Поиск и навигация
{
"ibhagwan/fzf-lua", -- FZF для быстрого поиска
dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {},
},
{
"nvim-lua/plenary.nvim", -- Библиотека для других плагинов
},
-- Другие функциональные плагины
{
"antoinemadec/FixCursorHold.nvim", -- Исправление CursorHold событий
},
{
"gabenespoli/vim-mutton", -- Дополнительные возможности для работы с текстом
},
{
"kyazdani42/nvim-tree.lua", -- Файловый менеджер
dependencies = { "nvim-tree/nvim-web-devicons" },
},
{
"nanotee/zoxide.vim", -- Интеграция с zoxide для быстрой навигации
},
{
"SidOfc/mkdx", -- Улучшения для работы с Markdown
},
{
"L3MON4D3/LuaSnip",
dependencies = { "rafamadriz/friendly-snippets" },
},
{
"saghen/blink.cmp",
dependencies = {
"saghen/blink.lib",
},
},
{
"OXY2DEV/markview.nvim",
lazy = false,
config = function()
require("config.markview")
end,
dependencies = {"saghen/blink.cmp"},
},
-- Treesitter для синтаксического анализа
{
"nvim-treesitter/nvim-treesitter",
branch = 'main',
lazy = true,
main = 'config.nvim-treesitter',
build = ":TSUpdate",
dependencies = { "OXY2DEV/markview.nvim" },
config = function()
require("config.nvim-treesitter")
end,
},
{
"mks-h/treesitter-autoinstall.nvim",
config = function()
require("treesitter-autoinstall").setup()
end,
},
{
'gsuuon/model.nvim',
config = function()
local bash_provider = {
request_completion = function(handlers, params, options)
local input = params.input
local command = "~/test '" .. input .. "'"
local handle = io.popen(command)
local result = handle:read("*a")
handle:close()
local response = vim.json.decode(result)
handlers.on_partial(response.message.content)
handlers.on_finish()
end
}
require('model').setup({
chats = {
mybash = {
provider = bash_provider,
create = function(input, context)
return {
messages = {
{ role = 'user', content = input }
}
}
end,
run = function(messages, config)
local last_message = messages[#messages]
return { input = last_message.content }
end
}
}
})
end
}
}

View File

@ -1,261 +1,180 @@
return { return {
-- ============================== -- ==============================
--# Темы оформления -- Визуальные плагины
-- ============================== -- ==============================
-- Flexoki тема -- Темы оформления
{ "nuvic/flexoki-nvim", name = "flexoki" },
-- Nightfly тема
{ "bluz71/vim-nightfly-colors" },
-- TokyoNight тема
{ "folke/tokyonight.nvim" },
-- Gruvbox тема
{ "morhetz/gruvbox" },
-- Kanagawa тема
{ "rebelot/kanagawa.nvim" },
-- OneDark тема
{ {
"navarasu/onedark.nvim", "bluz71/vim-nightfly-colors", -- Nightfly тема
config = function() },
require("config.onedark") {
end, "folke/tokyonight.nvim", -- TokyoNight тема
},
{
"morhetz/gruvbox", -- Gruvbox тема
},
{
"rebelot/kanagawa.nvim", -- Kanagawa тема
},
{
"navarasu/onedark.nvim",
config = function()
require("onedark").setup({
style = "dark", -- Выберите стиль: 'dark', 'darker', 'cool', 'deep', 'warm', 'warmer'
})
require("onedark").load() -- Активируйте тему
end,
},
-- Иконки
{
"nvim-tree/nvim-web-devicons", -- Провайдер иконок для других плагинов
}, },
-- Интерфейс и UI
-- {
-- "MeanderingProgrammer/render-markdown.nvim", -- Рендеринг Markdown
-- dependencies = { "echasnovski/mini.nvim", opt = true },
-- config = function()
-- require("config.render-markdown")
-- end,
-- },
-- ==============================
--# Иконки и UI
-- ==============================
-- Провайдер иконок для других плагинов
{ "nvim-tree/nvim-web-devicons" },
-- Статусная строка
{ {
"nvim-lualine/lualine.nvim", "nvim-lualine/lualine.nvim", -- Статусная строка
dependencies = { "kyazdani42/nvim-web-devicons", optional = true }, dependencies = { "kyazdani42/nvim-web-devicons", optional = true },
}, },
-- Визуализация отступов
{ {
"lukas-reineke/indent-blankline.nvim", "lukas-reineke/indent-blankline.nvim", -- Визуализация отступов
config = function() config = function()
require("config.indent-blankline") require("config.indent-blankline")
end, end,
}, },
-- Улучшенные уведомления и командная строка
{
"folke/noice.nvim",
event = "VeryLazy",
dependencies = {
"MunifTanjim/nui.nvim",
"rcarriga/nvim-notify",
},
},
-- Превью Markdown в браузере
{
"iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
build = "cd app && yarn install",
init = function()
require("config.markdown-preview").init()
end,
ft = { "markdown" },
},
-- Рендеринг Markdown в Neovim
{
"OXY2DEV/markview.nvim",
lazy = false,
config = function()
require("config.markview")
end,
dependencies = { "hrsh7th/cmp-path" },
},
-- Рендеринг mermaid - блоксхемы
{ {
"kevalin/mermaid.nvim", "folke/noice.nvim",
dependencies = { "nvim-treesitter/nvim-treesitter" }, event = "VeryLazy",
config = function() opts = {
require("mermaid").setup() -- add any options here
},
-- Install the Tree-sitter parser: dependencies = {
-- :TSInstall mermaid -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
end, "MunifTanjim/nui.nvim",
-- OPTIONAL:
-- `nvim-notify` is only needed, if you want to use the notification view.
-- If not available, we use `mini` as the fallback
"rcarriga/nvim-notify",
}
},
{
"iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
build = "cd app && yarn install",
init = function()
vim.g.mkdp_filetypes = { "markdown" }
vim.g.mkdp_markdown_css = vim.fn.expand("~/.config/nvim/markdown.css")
end,
ft = { "markdown" },
}, },
-- ============================== -- ==============================
--# LSP и автодополнение -- Функциональные плагины
-- ============================== -- ==============================
-- Интеграция nvim-cmp с LSP -- LSP и автодополнение
{ "hrsh7th/cmp-nvim-lsp" },
-- Поддержка сигнатур LSP в автодополнении
{ "hrsh7th/cmp-nvim-lsp-signature-help" },
-- Автодополнение путей
{ "hrsh7th/cmp-path" },
-- Основной плагин автодополнения
{ "hrsh7th/nvim-cmp" },
-- Конфигурация LSP
{ "neovim/nvim-lspconfig" },
-- Интеграция Mason с LSPConfig
{ "mason-org/mason-lspconfig.nvim" },
-- Управление LSP серверами
{ "williamboman/mason.nvim" },
-- Сниппеты
{ {
"L3MON4D3/LuaSnip", "hrsh7th/cmp-nvim-lsp", -- Интеграция nvim-cmp с LSP
dependencies = { "rafamadriz/friendly-snippets" }, },
{
"hrsh7th/cmp-nvim-lsp-signature-help", -- Поддержка сигнатур LSP в автодополнении
},
{
"hrsh7th/cmp-path", -- Автодополнение путей
},
{
"hrsh7th/nvim-cmp", -- Основной плагин автодополнения
},
{
"neovim/nvim-lspconfig", -- Конфигурация LSP
},
{
"williamboman/mason.nvim", -- Управление LSP серверами
}, },
-- Поиск и навигация
-- ==============================
--# Поиск и навигация
-- ==============================
-- FZF для быстрого поиска
{ {
"ibhagwan/fzf-lua", "ibhagwan/fzf-lua", -- FZF для быстрого поиска
dependencies = { "nvim-tree/nvim-web-devicons" }, dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {}, opts = {},
}, },
-- Библиотека для других плагинов
{ "nvim-lua/plenary.nvim" },
-- Файловый менеджер
{ {
"kyazdani42/nvim-tree.lua", "nvim-lua/plenary.nvim", -- Библиотека для других плагинов
},
-- Другие функциональные плагины
{
"antoinemadec/FixCursorHold.nvim", -- Исправление CursorHold событий
},
{
"gabenespoli/vim-mutton", -- Дополнительные возможности для работы с текстом
},
{
"kyazdani42/nvim-tree.lua", -- Файловый менеджер
dependencies = { "nvim-tree/nvim-web-devicons" }, dependencies = { "nvim-tree/nvim-web-devicons" },
}, },
-- Интеграция с zoxide для быстрой навигации
{ "nanotee/zoxide.vim" },
-- ==============================
--# Синтаксис и Treesitter
-- ==============================
-- Синтаксический анализатор
{ {
"nvim-treesitter/nvim-treesitter", "nanotee/zoxide.vim", -- Интеграция с zoxide для быстрой навигации
branch = 'main',
lazy = true,
main = 'config.nvim-treesitter',
build = ":TSUpdate",
dependencies = { "OXY2DEV/markview.nvim" },
config = function()
require("config.nvim-treesitter")
end,
}, },
-- Автоустановка парсеров Treesitter
{ {
"mks-h/treesitter-autoinstall.nvim", "SidOfc/mkdx", -- Улучшения для работы с Markdown
config = function()
require("treesitter-autoinstall").setup()
end,
}, },
-- ==============================
--# Дополнительные утилиты
-- ==============================
-- Исправление CursorHold событий
{ "antoinemadec/FixCursorHold.nvim" },
-- Дополнительные возможности для работы с текстом
{ "gabenespoli/vim-mutton" },
-- Улучшения для работы с Markdown
{ "SidOfc/mkdx" },
-- AI плагин для интеграции Агентов и LLMs
{ {
"olimorris/codecompanion.nvim", "OXY2DEV/markview.nvim",
version = "^19.0.0", lazy = false,
opts = {}, config = function()
dependencies = { require("config.markview")
"nvim-lua/plenary.nvim", end,
"nvim-treesitter/nvim-treesitter", dependencies = { "nvim-treesitter/nvim-treesitter" },
}, },
}, {
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
config = function()
require("config.nvim-treesitter")
end,
},
{
'gsuuon/model.nvim',
config = function()
local bash_provider = {
request_completion = function(handlers, params, options)
local input = params.input
local command = "~/test '" .. input .. "'"
local handle = io.popen(command)
local result = handle:read("*a")
handle:close()
local response = vim.json.decode(result)
handlers.on_partial(response.message.content)
handlers.on_finish()
end
}
require('model').setup({
chats = {
mybash = {
provider = bash_provider,
create = function(input, context)
return {
messages = {
{ role = 'user', content = input }
}
}
end,
run = function(messages, config)
local last_message = messages[#messages]
return { input = last_message.content }
end
}
}
})
end
}
} }

View File

@ -1,7 +0,0 @@
.markdown-body {
font-size: 35px;
margin-bottom: 900px; /* добавление отступа внизу страницы */
font-family: "firacodenerdfont", monospace;
}

View File

@ -1,7 +1,3 @@
/* НАСТРОЙКА ДЛЯ BLACK WRITER
* чтобы ее использовать необходио переименовать этот файл в markdown.css */
/* Увеличение размера шрифта для блочных формул */ /* Увеличение размера шрифта для блочных формул */
.katex-display { .katex-display {
font-size: 1.5em; /* Увеличение размера шрифта */ font-size: 1.5em; /* Увеличение размера шрифта */
@ -17,8 +13,7 @@
/* Установка глобального размера шрифта */ /* Установка глобального размера шрифта */
.markdown-body { .markdown-body {
font-size: 35px; font-size: 35px;
margin-bottom: 900px; /* добавление отступа внизу страницы */ margin-bottom: 900px; /* Добавление отступа внизу страницы */
} }
/* Уменьшение отступов для списков */ /* Уменьшение отступов для списков */
@ -34,6 +29,7 @@ li {
/* Уменьшение отступов для параграфов */ /* Уменьшение отступов для параграфов */
p { p {
font-size: 1.45em; /* Увеличиваем размер шрифта (например, до 1.2em) */
margin-top: 0.5em; /* Уменьшение верхнего отступа */ margin-top: 0.5em; /* Уменьшение верхнего отступа */
margin-bottom: 0.5em; /* Уменьшение нижнего отступа */ margin-bottom: 0.5em; /* Уменьшение нижнего отступа */
} }