noice + notify

This commit is contained in:
2026-06-17 19:38:58 +03:00
parent 85459a6fd6
commit 5ec108097b
16 changed files with 757 additions and 199 deletions

View File

@ -0,0 +1,205 @@
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

@ -106,7 +106,7 @@ vim.o.laststatus = 0 -- Отключает строку состояния
--vim.cmd("colorscheme retrobox")
vim.cmd("colorscheme retrobox")
--vim.cmd("colorscheme gruvbox")
--vim.cmd("colorscheme astra") -- Применение темы
--vim.cmd("colorscheme kanagawa") -- Основная схема
@ -116,7 +116,7 @@ vim.o.laststatus = 0 -- Отключает строку состояния
--vim.cmd("colorscheme nightfly")
--vim.cmd("colorscheme randomhue")
--vim.cmd("colorscheme kanagawa")
vim.cmd("colorscheme wildcharm") -- темная тема
--vim.cmd("colorscheme wildcharm") -- темная тема
-- vim.cmd("colorscheme zellner") -- светлая тема
--vim.cmd("colorscheme tokyonight-night")

View File

@ -0,0 +1,9 @@
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

32
lua/config/model.lua Normal file
View File

@ -0,0 +1,32 @@
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

@ -5,39 +5,39 @@ vim.api.nvim_set_hl(0, "EndOfBuffer", { fg = normal_bg} ) -- overrides `~` chara
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 })
local mutton = false
local function on_buf_read()
vim.defer_fn(function()
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"
mutton = true
vim.cmd("MuttonToggle")
vim.opt.number = false
vim.opt.relativenumber = false
elseif mutton == true and buf_name:match("ui.md$") then
mutton = false
vim.cmd("wincmd l | q")
vim.cmd("wincmd h | q")
vim.cmd("MuttonToggle")
elseif buf_name:match("NvimTree_1$") then
elseif buf_name:match("%[%[Mutton%]%]$") then
elseif buf_name:match("/usr/bin/sh$") then
elseif mutton == true and not buf_name:match("%.md$") then
mutton = false
vim.cmd("MuttonToggle")
end
end, 100)
end
vim.api.nvim_create_autocmd("BufEnter", { callback = on_buf_read })
-- Для автовключения
-- local mutton = false
-- local function on_buf_read()
-- vim.defer_fn(function()
-- 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"
-- mutton = true
-- vim.cmd("MuttonToggle")
--
-- vim.opt.number = false
-- vim.opt.relativenumber = false
-- elseif mutton == true and buf_name:match("ui.md$") then
-- mutton = false
-- vim.cmd("wincmd l | q")
-- vim.cmd("wincmd h | q")
-- vim.cmd("MuttonToggle")
--
-- elseif buf_name:match("NvimTree_1$") then
--
-- elseif buf_name:match("%[%[Mutton%]%]$") then
--
-- elseif buf_name:match("/usr/bin/sh$") then
--
-- elseif mutton == true and not buf_name:match("%.md$") then
-- mutton = false
-- vim.cmd("MuttonToggle")
-- end
-- end, 100)
-- end
--
-- vim.api.nvim_create_autocmd("BufEnter", { callback = on_buf_read })

18
lua/config/noice.lua Normal file
View File

@ -0,0 +1,18 @@
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
},
})

7
lua/config/notify.lua Normal file
View File

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

View File

@ -12,6 +12,8 @@ vim.lsp.config('jdtls', {
-- C/C++
vim.lsp.config('clangd', {})
-- C/C++
vim.lsp.config('arduino-language-server', {})
-- Rust
vim.lsp.config('rust_analyzer', {

View File

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

4
lua/config/onedark.lua Normal file
View File

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