// selectionRange defines the textDocument/selectionRange feature, // which, given a list of positions within a file, // reports a linked list of enclosing syntactic blocks, innermost first. // // See https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_selectionRange. // // This feature can be used by a client to implement "expand selection" in a // language-aware fashion. Multiple input positions are supported to allow // for multiple cursors, and the entire path up to the whole document is // returned for each cursor to avoid multiple round-trips when the user is // likely to issue this command multiple times in quick succession. func (s *server) SelectionRange(ctx context.Context, params *protocol.SelectionRangeParams) ([]protocol.SelectionRange, error) { … }