crates/texlab/src/util/client_flags.rs
/// Contains information about the client's capabilities.
/// This is used to determine which features the server can use.
#[derive(Debug, Clone)]
pub struct ClientFlags {
/// If `true`, the server can return `DocumentSymbol` instead of `SymbolInformation`.
pub hierarchical_document_symbols: bool,
/// If `true`, the server can include markdown in completion items.
/// This is used to include images via base64 encoding.
pub completion_markdown: bool,
/// If `true`, the server can include snippets like `\begin{...}` in completion items.
pub completion_snippets: bool,
/// The completion kinds supported by the client. Unsupported kinds will be replaced by `TEXT`.
pub completion_kinds: Vec<lsp_types::CompletionItemKind>,
/// If `true`, the server will always mark the completion list as incomplete.
/// This is used as a workaround for VSCode where the client-side filtering messes with `filterText`.
/// If not set, then fuzzy citation completion will not work.
pub completion_always_incomplete: bool,
/// If `true`, the server can pull the configuration from the client.
pub configuration_pull: bool,
/// If `true`, the client notifies the server when the configuration changes.
pub configuration_push: bool,
/// If `true`, the server can return custom kinds like `section`.
pub folding_custom_kinds: bool,
/// If `true`, the server can report progress using `WorkDoneProgress`.
pub progress: bool,
/// If `true`, the server can let the client open a document using `window/showDocument`.
pub show_document: bool,
}