diff --git a/lua/plugins/fidget.lua b/lua/plugins/fidget.lua index 7f2dc22..427f3ce 100644 --- a/lua/plugins/fidget.lua +++ b/lua/plugins/fidget.lua @@ -1,46 +1,95 @@ require('fidget').setup({ - text = { - spinner = "pipe", -- animation shown when tasks are ongoing - done = "✔", -- character shown when all tasks are complete - commenced = "Started", -- message shown when task starts - completed = "Completed", -- message shown when task completes - }, - align = { - bottom = true, -- align fidgets along bottom edge of buffer - right = true, -- align fidgets along right edge of buffer - }, - timer = { - spinner_rate = 125, -- frame rate of spinner animation, in ms - fidget_decay = 2000, -- how long to keep around empty fidget, in ms - task_decay = 1000, -- how long to keep around completed task, in ms - }, - window = { - relative = "win", -- where to anchor, either "win" or "editor" - blend = 100, -- &winblend for the window - zindex = nil, -- the zindex value for the window - border = "none", -- style of border for the fidget window - }, - fmt = { - leftpad = true, -- right-justify text in fidget box - stack_upwards = true, -- list of tasks grows upwards - max_width = 0, -- maximum width of the fidget box - fidget = -- function to format fidget title - function(fidget_name, spinner) - return string.format("%s %s", spinner, fidget_name) - end, - task = -- function to format each task line - function(task_name, message, percentage) - return string.format( - "%s%s [%s]", - message, - percentage and string.format(" (%s%%)", percentage) or "", - task_name - ) - end, - }, - sources = {}, - debug = { - logging = false, -- whether to enable logging, for debugging - strict = false, -- whether to interpret LSP strictly - } + -- Options related to LSP progress subsystem + progress = { + poll_rate = 0, -- How and when to poll for progress messages + suppress_on_insert = false, -- Suppress new messages while in insert mode + ignore_done_already = false, -- Ignore new tasks that are already complete + ignore_empty_message = false, -- Ignore new tasks that don't contain a message + clear_on_detach = -- Clear notification group when LSP server detaches + function(client_id) + local client = vim.lsp.get_client_by_id(client_id) + return client and client.name or nil + end, + notification_group = -- How to get a progress message's notification group key + function(msg) return msg.lsp_client.name end, + ignore = {}, -- List of LSP servers to ignore + -- Options related to how LSP progress messages are displayed as notifications + display = { + render_limit = 16, -- How many LSP messages to show at once + done_ttl = 3, -- How long a message should persist after completion + done_icon = "✔", -- Icon shown when all LSP progress tasks are complete + done_style = "Constant", -- Highlight group for completed LSP tasks + progress_ttl = math.huge, -- How long a message should persist when in progress + progress_icon = -- Icon shown when LSP progress tasks are in progress + { pattern = "dots", period = 1 }, + progress_style = -- Highlight group for in-progress LSP tasks + "WarningMsg", + group_style = "Title", -- Highlight group for group name (LSP server name) + icon_style = "Question", -- Highlight group for group icons + priority = 30, -- Ordering priority for LSP notification group + skip_history = true, -- Whether progress notifications should be omitted from history + format_message = -- How to format a progress message + require("fidget.progress.display").default_format_message, + format_annote = -- How to format a progress annotation + function(msg) return msg.title end, + format_group_name = -- How to format a progress notification group's name + function(group) return tostring(group) end, + overrides = { -- Override options from the default notification config + rust_analyzer = { name = "rust-analyzer" }, + }, + }, + -- Options related to Neovim's built-in LSP client + lsp = { + progress_ringbuf_size = 0, -- Configure the nvim's LSP progress ring buffer size + }, + }, + -- Options related to notification subsystem + notification = { + poll_rate = 10, -- How frequently to update and render notifications + filter = vim.log.levels.INFO, -- Minimum notifications level + history_size = 128, -- Number of removed messages to retain in history + override_vim_notify = false, -- Automatically override vim.notify() with Fidget + configs = -- How to configure notification groups when instantiated + { default = require("fidget.notification").default_config }, + redirect = -- Conditionally redirect notifications to another backend + function(msg, level, opts) + if opts and opts.on_open then + return require("fidget.integration.nvim-notify").delegate(msg, level, opts) + end + end, + -- Options related to how notifications are rendered as text + view = { + stack_upwards = true, -- Display notification items from bottom to top + icon_separator = " ", -- Separator between group name and icon + group_separator = "---", -- Separator between notification groups + group_separator_hl = -- Highlight group used for group separator + "Comment", + }, + -- Options related to the notification window and buffer + window = { + normal_hl = "Comment", -- Base highlight group in the notification window + winblend = 100, -- Background color opacity in the notification window + border = "none", -- Border around the notification window + zindex = 45, -- Stacking priority of the notification window + max_width = 0, -- Maximum width of the notification window + max_height = 0, -- Maximum height of the notification window + x_padding = 1, -- Padding from right edge of window boundary + y_padding = 0, -- Padding from bottom edge of window boundary + align = "bottom", -- How to align the notification window + relative = "editor", -- What the notification window position is relative to + }, + }, + -- Options related to integrating with other plugins + integration = { + ["nvim-tree"] = { + enable = true, -- Integrate with nvim-tree/nvim-tree.lua (if installed) + }, + }, + -- Options related to logging + logger = { + level = vim.log.levels.WARN, -- Minimum logging level + float_precision = 0.01, -- Limit the number of decimals displayed for floats + path = -- Where Fidget writes its logs to + string.format("%s/fidget.nvim.log", vim.fn.stdpath("cache")), + } }) diff --git a/lua/plugins/packer.lua b/lua/plugins/packer.lua index e65c1c5..0ef79c5 100644 --- a/lua/plugins/packer.lua +++ b/lua/plugins/packer.lua @@ -166,7 +166,7 @@ return require('packer').startup(function(use) run = 'composer install' } - -- Аналог LSP-сервера для поддержки оболочки fish + -- LSP-сервер для Fish Shell use 'dag/vim-fish' -- Цветовая тема @@ -181,6 +181,6 @@ return require('packer').startup(function(use) -- Форматировщик Prettier use { 'prettier/vim-prettier', - run = 'npm i', + run = 'yarn install --frozen-lockfile --production' } end) diff --git a/plugin/.gitignore b/plugin/.gitignore index 95c4489..6419902 100644 --- a/plugin/.gitignore +++ b/plugin/.gitignore @@ -1,2 +1,2 @@ -packer_compiled.lua !.gitignore +packer_compiled.lua