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,18 @@
require("bufferline").setup{
options = {
tab_size = 30
}
}
-- Настройка биндов узнать что действительно нажимается - перейти в режим вставки нажать <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 })

View File

@ -0,0 +1,31 @@
local M = {}
function M.run_script()
-- Проверяем, что открыт именно файл ~/desktop/govno/ui.md
local current_file = vim.fn.expand('%:p') -- Полный путь к текущему файлу
local target_file = vim.fn.expand('~/desktop/govno/ui.md')
if current_file ~= target_file then
print("Ошибка: Открыт не тот файл. Должен быть открыт " .. target_file)
return
end
-- Сохраняем файл
vim.cmd('w')
-- Запускаем скрипт
print("Ожидайте ответа")
local script_path = vim.fn.expand('~/dev/python/interface.py')
vim.fn.jobstart({'python3', script_path}, {
on_exit = function()
vim.cmd('e') -- Перезагружаем файл после завершения скрипта
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<S-g>", true, false, true), 'n', false)
print("Отвечено!")
end
})
end
return M

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

@ -0,0 +1,74 @@
require('render-markdown').setup({
debounce = 100,
-- render_modes = true,
heading = {
enabled = true,
icons = { "", },
position = 'inline',
border = { true, true, true, false, false, false},
border_virtual = true,
width = 'block',
right_pad = 1,
left_pad = 1,
},
sign = { enabled = false },
quote = { repeat_linebreak = true },
link = {
enabled = true,
render_modes = false,
footnote = {
superscript = false,
prefix = '',
suffix = '',
},
image = '󰥶 ',
email = '󰀓 ',
hyperlink = '',
highlight = 'RenderMarkdownLink',
wiki = {
icon = '󱗖 ',
body = function()
return nil
end,
highlight = 'RenderMarkdownWikiLink',
},
custom = {
web = { pattern = '^http', icon = '󰖟 ' },
discord = { pattern = 'discord%.com', icon = '󰙯 ' },
github = { pattern = 'github%.com', icon = '󰊤 ' },
gitlab = { pattern = 'gitlab%.com', icon = '󰮠 ' },
google = { pattern = 'google%.com', icon = '󰊭 ' },
neovim = { pattern = 'neovim%.io', icon = '' },
reddit = { pattern = 'reddit%.com', icon = '󰑍 ' },
stackoverflow = { pattern = 'stackoverflow%.com', icon = '󰓌 ' },
wikipedia = { pattern = 'wikipedia%.org', icon = '󰖬 ' },
youtube = { pattern = 'youtube%.com', icon = '󰗃 ' },
},
},
checkbox = {
unchecked = { icon = '' },
checked = { icon = '' },
},
-- bullet = { icons = { '•', '◦', '-',} },
bullet= {icons = { '', '', '', '' }},
})
-- переход по ссылкам
vim.keymap.set('n', 'gl', function() FindHttpOrWwwInLine() end, { silent = true })
function FindHttpOrWwwInLine()
local line = vim.api.nvim_get_current_line()
local start_pos, end_pos = line:find("http")
if start_pos then
local col = start_pos - 1
vim.api.nvim_win_set_cursor(0, {vim.fn.line('.'), col})
vim.cmd("normal! vE")
vim.fn.feedkeys("gx")
vim.api.nvim_input("<Esc>")
end
end