From dde7d870528304adb94c230ba229cbc86d84c5b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=95=D0=9C=D0=90?= <svvivel@gmail.com> Date: Thu, 3 Apr 2025 15:18:04 +0300 Subject: [PATCH] render markdown only line render --- README.md | 6 +++-- init.lua | 6 +++++ lua/config/mutton.lua | 21 ++++++++++++++- lua/config/render-markdown.lua | 9 ++++--- lua/plugins.lua | 47 +++++++++++++++++++++++++++++++++- 5 files changed, 82 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b281204..217145e 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ Nvim как менеджер заметок! Что еще нужно для с ## Менеджер заметок #### Функционал + - [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - Обработка синтаксиса - [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - Система автодополнения - [fzf-lua](https://github.com/ibhagwan/fzf-lua) - Fuzzy finder @@ -52,6 +53,7 @@ Nvim как менеджер заметок! Что еще нужно для с - [zoxide.vim](https://github.com/nanotee/zoxide.vim) - Интеграция zoxide для быстрого перехода между директориями #### Визуал + - [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) - Визуализация отступов - [tokyonight.nvim](https://github.com/folke/tokyonight.nvim) - Цветовая схема Tokyo Night - [gruvbox](https://github.com/morhetz/gruvbox) - Цветовая схема Gruvbox @@ -97,7 +99,7 @@ Nvim как менеджер заметок! Что еще нужно для с -# Установка +# Установка ### linux ```bash @@ -109,7 +111,7 @@ nvim . -# Сочетания клавиш +# Сочетания клавиш Leader - пробел diff --git a/init.lua b/init.lua index ca6ea12..fbf2747 100644 --- a/init.lua +++ b/init.lua @@ -16,3 +16,9 @@ require("config.fzf") require("config.mkdx") require("config.mutton") +vim.api.nvim_create_autocmd("FileType", { + pattern = "mchat", + callback = function() + vim.opt_local.foldenable = false + end, +}) diff --git a/lua/config/mutton.lua b/lua/config/mutton.lua index 1904883..7c4cacc 100644 --- a/lua/config/mutton.lua +++ b/lua/config/mutton.lua @@ -5,11 +5,11 @@ 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) -- Получаем имя файла - print (buf_name) if buf_name:match("%.md$") and mutton == false then -- Проверяем, заканчивается ли имя на ".md" mutton = true vim.cmd("MuttonToggle") @@ -28,6 +28,25 @@ end vim.api.nvim_create_autocmd("BufEnter", { callback = on_buf_read }) + + +-- ~/.config/nvim/init.lua + + + + + + + + + + + + + + + + -- Создаем автокоманду для события QuitPre vim.api.nvim_create_autocmd("QuitPre", { callback = function() diff --git a/lua/config/render-markdown.lua b/lua/config/render-markdown.lua index 7a41534..2e33cdb 100644 --- a/lua/config/render-markdown.lua +++ b/lua/config/render-markdown.lua @@ -1,12 +1,15 @@ require('render-markdown').setup({ + render_modes = true, heading = { enabled = true, icons = { "", }, position = 'inline', - backgrounds = { - }, + border = { true, true, true, false, false, false}, + border_virtual = true, + width = 'block', + right_pad = 2, + left_pad = 1, }, - dash = { icon = '------ ' }, sign = { enabled = false }, quote = { repeat_linebreak = true }, link = { diff --git a/lua/plugins.lua b/lua/plugins.lua index 27cbbae..43c29a8 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -55,7 +55,15 @@ return { "rcarriga/nvim-notify", } }, - + { + "iamcco/markdown-preview.nvim", + cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, + build = "cd app && yarn install", + init = function() + vim.g.mkdp_filetypes = { "markdown" } + end, + ft = { "markdown" }, + }, -- ============================== -- Функциональные плагины -- ============================== @@ -116,4 +124,41 @@ return { 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 + } }