Compare commits
1 Commits
master
...
eaad2e675c
| Author | SHA1 | Date | |
|---|---|---|---|
| eaad2e675c |
22
init.lua
22
init.lua
@ -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 })
|
||||||
|
|||||||
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -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
|
|
||||||
--
|
|
||||||
-- Стиль работы:
|
|
||||||
-- Отвечать на языке пользователя.
|
|
||||||
@ -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")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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
|
|
||||||
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|||||||
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
@ -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 })
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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
|
|
||||||
},
|
|
||||||
})
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
require('notify').setup({
|
|
||||||
max_width = 100, -- Максимальная ширина окна уведомления
|
|
||||||
max_height = 50, -- Максимальная высота окна уведомления
|
|
||||||
-- Другие стандартные опции nvim-notify
|
|
||||||
top_down = true, -- Размещать уведомления снизу вверх
|
|
||||||
timeout = 1500, -- Время отображения в мс
|
|
||||||
})
|
|
||||||
@ -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' },
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -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,
|
||||||
},
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
|
||||||
})
|
})
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -1,4 +0,0 @@
|
|||||||
require("onedark").setup({
|
|
||||||
style = "dark", -- Выберите стиль: 'dark', 'darker', 'cool', 'deep', 'warm', 'warmer'
|
|
||||||
})
|
|
||||||
require("onedark").load() -- Активируйте тему
|
|
||||||
@ -49,8 +49,7 @@ require('render-markdown').setup({
|
|||||||
unchecked = { icon = '✘ ' },
|
unchecked = { icon = '✘ ' },
|
||||||
checked = { icon = '✔ ' },
|
checked = { icon = '✔ ' },
|
||||||
},
|
},
|
||||||
-- bullet = { icons = { '•', '◦', '-',} },
|
bullet = { icons = { '•', '◦', '-',} },
|
||||||
bullet= {icons = { '●', '○', '◆', '◇' }},
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
367
lua/plugins.lua
367
lua/plugins.lua
@ -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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +0,0 @@
|
|||||||
|
|
||||||
.markdown-body {
|
|
||||||
font-size: 35px;
|
|
||||||
margin-bottom: 900px; /* добавление отступа внизу страницы */
|
|
||||||
font-family: "firacodenerdfont", monospace;
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -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; /* Уменьшение нижнего отступа */
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user