Home Explore Blog CI



neovim

18th chunk of `runtime/doc/lsp.txt`
b46e5f4f356eaf66913467aa3ec1ecffb8128ab1ade21bc00000000100000fca
 *vim.lsp.tagfunc()*
    Provides an interface between the built-in client and 'tagfunc'.

    When used with normal mode commands (e.g. |CTRL-]|) this will invoke the
    "textDocument/definition" LSP method to find the tag under the cursor.
    Otherwise, uses "workspace/symbol". If no results are returned from any
    LSP servers, falls back to using built-in tags.

    Parameters: ~
      • {pattern}  (`string`) Pattern used to find a workspace symbol
      • {flags}    (`string`) See |tag-function|

    Return: ~
        (`table[]`) tags A list of matching tags


==============================================================================
Lua module: vim.lsp.client                                        *lsp-client*

*vim.lsp.Client*

    Fields: ~
      • {attached_buffers}      (`table<integer,true>`)
      • {capabilities}          (`lsp.ClientCapabilities`) Capabilities
                                provided by the client (editor or tool), at
                                startup.
      • {commands}              (`table<string,fun(command: lsp.Command, ctx: table)>`)
                                Client commands. See |vim.lsp.ClientConfig|.
      • {config}                (`vim.lsp.ClientConfig`) Copy of the config
                                passed to |vim.lsp.start()|. See
                                |vim.lsp.ClientConfig|.
      • {dynamic_capabilities}  (`lsp.DynamicCapabilities`) Capabilities
                                provided at runtime (after startup).
      • {flags}                 (`table`) A table with flags for the client.
                                The current (experimental) flags are:
                                • {allow_incremental_sync}? (`boolean`,
                                  default: `true`) Allow using incremental
                                  sync for buffer edits
                                • {debounce_text_changes} (`integer`, default:
                                  `150`) Debounce `didChange` notifications to
                                  the server by the given number in
                                  milliseconds. No debounce occurs if `nil`.
                                • {exit_timeout} (`integer|false`, default:
                                  `false`) Milliseconds to wait for server to
                                  exit cleanly after sending the "shutdown"
                                  request before sending kill -15. If set to
                                  false, nvim exits immediately after sending
                                  the "shutdown" request to the server.
      • {get_language_id}       (`fun(bufnr: integer, filetype: string): string`)
                                See |vim.lsp.ClientConfig|.
      • {handlers}              (`table<string,lsp.Handler>`) See
                                |vim.lsp.ClientConfig|.
      • {id}                    (`integer`) The id allocated to the client.
      • {initialized}           (`true?`)
      • {name}                  (`string`) See |vim.lsp.ClientConfig|.
      • {offset_encoding}       (`'utf-8'|'utf-16'|'utf-32'`) See
                                |vim.lsp.ClientConfig|.
      • {progress}              (`vim.lsp.Client.Progress`) A ring buffer
                                (|vim.ringbuf()|) containing progress messages
                                sent by the server. See
                                |vim.lsp.Client.Progress|.
      • {requests}              (`table<integer,{ type: string, bufnr: integer, method: string}?>`)
                                The current pending requests in flight to the
                                server. Entries are key-value pairs with the
                                key being the request id while the value is a
                                table with `type`, `bufnr`, and `method`
                                key-value pairs. `type` is either "pending"
                                for an active request,

Title: vim.lsp.tagfunc and vim.lsp.Client: Tag Functionality and Client Object Details
Summary
This section details the `vim.lsp.tagfunc` function, which provides an interface between the built-in client and Vim's 'tagfunc', using LSP methods for tag searching. It also describes the `vim.lsp.Client` object and its fields, which include information about attached buffers, capabilities, commands, configurations, dynamic capabilities, flags, language ID, handlers, client ID, initialization status, name, offset encoding, progress messages, and pending requests.