plugins.fidget.progress.clearOnDetach

Clear notification group when LSP server detaches

This option should be set to a function that, given a client ID number, returns the notification group to clear. No group will be cleared if the function returns nil.

The default setting looks up and returns the LSP client name, which is also used by notificationGroup.

Set this option to false to disable this feature entirely (no |LspDetach| callback will be installed).

Type: null or lua function string or value false (singular enum)

Default: null

Plugin default:

function(client_id)
  local client = vim.lsp.get_client_by_id(client_id)
  return client and client.name or nil
end

Declared by:

plugins.fidget.progress.ignore

List of LSP servers to ignore.

Type: null or (list of string)

Default: null

Plugin default: []

Declared by:

plugins.fidget.progress.ignoreDoneAlready

Ignore new tasks that are already complete.

This is useful if you want to avoid excessively bouncy behavior, and only seeing notifications for long-running tasks. Works best when combined with a low pollRate.

Type: null or boolean or raw lua code

Default: null

Plugin default: false

Declared by:

plugins.fidget.progress.ignoreEmptyMessage

Ignore new tasks that don’t contain a message.

Some servers may send empty messages for tasks that don’t actually exist. And if those tasks are never completed, they will become stale in Fidget. This option tells Fidget to ignore such messages unless the LSP server has anything meaningful to say.

Note that progress messages for new empty tasks will be dropped, but existing tasks will be processed to completion.

Type: null or boolean or raw lua code

Default: null

Plugin default: true

Declared by:

plugins.fidget.progress.notificationGroup

How to get a progress message’s notification group key

Set this to return a constant to group all LSP progress messages together.

Example:

  notification_group = function(msg)
    -- N.B. you may also want to configure this group key ("lsp_progress")
    -- using progress.display.overrides or notification.configs
    return "lsp_progress"
  end

Type: null or lua function string

Default: null

Plugin default: function(msg) return msg.lsp_name end

Declared by:

plugins.fidget.progress.pollRate

How and when to poll for progress messages.

Set to 0 to immediately poll on each |LspProgress| event.

Set to a positive number to poll for progress messages at the specified frequency (Hz, i.e., polls per second). Combining a slow poll_rate (e.g., 0.5) with the ignoreDoneAlready setting can be used to filter out short-lived progress tasks, de-cluttering notifications.

Note that if too many LSP progress messages are sent between polls, Neovim’s progress ring buffer will overflow and messages will be overwritten (dropped), possibly causing stale progress notifications. Workarounds include using the |fidget.option.progress.lsp.progress_ringbuf_size| option, or manually calling |fidget.notification.reset|.

Set to false to disable polling altogether; you can still manually poll progress messages by calling |fidget.progress.poll|.

Type: null or value false (singular enum) or signed integer or floating point number

Default: null

Plugin default: 0

Declared by:

plugins.fidget.progress.suppressOnInsert

Suppress new messages while in insert mode.

Note that progress messages for new tasks will be dropped, but existing tasks will be processed to completion.

Type: null or boolean or raw lua code

Default: null

Plugin default: false

Declared by: