class LanguageServer::Protocol::Interface::SemanticTokensClientCapabilities
Attributes
Public Class Methods
# File lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb, line 5 def initialize(dynamic_registration: nil, requests:, token_types:, token_modifiers:, formats:, overlapping_token_support: nil, multiline_token_support: nil) @attributes = {} @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration @attributes[:requests] = requests @attributes[:tokenTypes] = token_types @attributes[:tokenModifiers] = token_modifiers @attributes[:formats] = formats @attributes[:overlappingTokenSupport] = overlapping_token_support if overlapping_token_support @attributes[:multilineTokenSupport] = multiline_token_support if multiline_token_support @attributes.freeze end
Public Instance Methods
Whether implementation supports dynamic registration. If this is set to `true` the client supports the new `(TextDocumentRegistrationOptions
& StaticRegistrationOptions
)` return value for the corresponding server capability as well.
@return [boolean]
# File lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb, line 26 def dynamic_registration attributes.fetch(:dynamicRegistration) end
The formats the clients supports.
@return [“relative”
# File lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb, line 65 def formats attributes.fetch(:formats) end
Whether the client supports tokens that can span multiple lines.
@return [boolean]
# File lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb, line 81 def multiline_token_support attributes.fetch(:multilineTokenSupport) end
Whether the client supports tokens that can overlap each other.
@return [boolean]
# File lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb, line 73 def overlapping_token_support attributes.fetch(:overlappingTokenSupport) end
Which requests the client supports and might send to the server depending on the server's capability. Please note that clients might not show semantic tokens or degrade some of the user experience if a range or full request is advertised by the client but not provided by the server. If for example the client capability `requests.full` and `request.range` are both set to true but the server only provides a range provider the client might not render a minimap correctly or might even decide to not show any semantic tokens at all.
@return [{ range?: boolean | {}; full?: boolean | { delta?: boolean; }; }]
# File lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb, line 41 def requests attributes.fetch(:requests) end
# File lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb, line 87 def to_hash attributes end
# File lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb, line 91 def to_json(*args) to_hash.to_json(*args) end
The token modifiers that the client supports.
@return [string
# File lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb, line 57 def token_modifiers attributes.fetch(:tokenModifiers) end
The token types that the client supports.
@return [string
# File lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb, line 49 def token_types attributes.fetch(:tokenTypes) end