Class: LanguageServer::Protocol::Interface::ServerCapabilities

Inherits:
Object
  • Object
show all
Defined in:
lib/language_server/protocol/interface/server_capabilities.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(position_encoding: nil, text_document_sync: nil, notebook_document_sync: nil, completion_provider: nil, hover_provider: nil, signature_help_provider: nil, declaration_provider: nil, definition_provider: nil, type_definition_provider: nil, implementation_provider: nil, references_provider: nil, document_highlight_provider: nil, document_symbol_provider: nil, code_action_provider: nil, code_lens_provider: nil, document_link_provider: nil, color_provider: nil, document_formatting_provider: nil, document_range_formatting_provider: nil, document_on_type_formatting_provider: nil, rename_provider: nil, folding_range_provider: nil, execute_command_provider: nil, selection_range_provider: nil, linked_editing_range_provider: nil, call_hierarchy_provider: nil, semantic_tokens_provider: nil, moniker_provider: nil, type_hierarchy_provider: nil, inline_value_provider: nil, inlay_hint_provider: nil, diagnostic_provider: nil, workspace_symbol_provider: nil, workspace: nil, experimental: nil) ⇒ ServerCapabilities

Returns a new instance of ServerCapabilities.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 5

def initialize(position_encoding: nil, text_document_sync: nil, notebook_document_sync: nil, completion_provider: nil, hover_provider: nil, signature_help_provider: nil, declaration_provider: nil, definition_provider: nil, type_definition_provider: nil, implementation_provider: nil, references_provider: nil, document_highlight_provider: nil, document_symbol_provider: nil, code_action_provider: nil, code_lens_provider: nil, document_link_provider: nil, color_provider: nil, document_formatting_provider: nil, document_range_formatting_provider: nil, document_on_type_formatting_provider: nil, rename_provider: nil, folding_range_provider: nil, execute_command_provider: nil, selection_range_provider: nil, linked_editing_range_provider: nil, call_hierarchy_provider: nil, semantic_tokens_provider: nil, moniker_provider: nil, type_hierarchy_provider: nil, inline_value_provider: nil, inlay_hint_provider: nil, diagnostic_provider: nil, workspace_symbol_provider: nil, workspace: nil, experimental: nil)
  @attributes = {}

  @attributes[:positionEncoding] = position_encoding if position_encoding
  @attributes[:textDocumentSync] = text_document_sync if text_document_sync
  @attributes[:notebookDocumentSync] = notebook_document_sync if notebook_document_sync
  @attributes[:completionProvider] = completion_provider if completion_provider
  @attributes[:hoverProvider] = hover_provider if hover_provider
  @attributes[:signatureHelpProvider] = signature_help_provider if signature_help_provider
  @attributes[:declarationProvider] = declaration_provider if declaration_provider
  @attributes[:definitionProvider] = definition_provider if definition_provider
  @attributes[:typeDefinitionProvider] = type_definition_provider if type_definition_provider
  @attributes[:implementationProvider] = implementation_provider if implementation_provider
  @attributes[:referencesProvider] = references_provider if references_provider
  @attributes[:documentHighlightProvider] = document_highlight_provider if document_highlight_provider
  @attributes[:documentSymbolProvider] = document_symbol_provider if document_symbol_provider
  @attributes[:codeActionProvider] = code_action_provider if code_action_provider
  @attributes[:codeLensProvider] = code_lens_provider if code_lens_provider
  @attributes[:documentLinkProvider] = document_link_provider if document_link_provider
  @attributes[:colorProvider] = color_provider if color_provider
  @attributes[:documentFormattingProvider] = document_formatting_provider if document_formatting_provider
  @attributes[:documentRangeFormattingProvider] = document_range_formatting_provider if document_range_formatting_provider
  @attributes[:documentOnTypeFormattingProvider] = document_on_type_formatting_provider if document_on_type_formatting_provider
  @attributes[:renameProvider] = rename_provider if rename_provider
  @attributes[:foldingRangeProvider] = folding_range_provider if folding_range_provider
  @attributes[:executeCommandProvider] = execute_command_provider if execute_command_provider
  @attributes[:selectionRangeProvider] = selection_range_provider if selection_range_provider
  @attributes[:linkedEditingRangeProvider] = linked_editing_range_provider if linked_editing_range_provider
  @attributes[:callHierarchyProvider] = call_hierarchy_provider if call_hierarchy_provider
  @attributes[:semanticTokensProvider] = semantic_tokens_provider if semantic_tokens_provider
  @attributes[:monikerProvider] = moniker_provider if moniker_provider
  @attributes[:typeHierarchyProvider] = type_hierarchy_provider if type_hierarchy_provider
  @attributes[:inlineValueProvider] = inline_value_provider if inline_value_provider
  @attributes[:inlayHintProvider] = inlay_hint_provider if inlay_hint_provider
  @attributes[:diagnosticProvider] = diagnostic_provider if diagnostic_provider
  @attributes[:workspaceSymbolProvider] = workspace_symbol_provider if workspace_symbol_provider
  @attributes[:workspace] = workspace if workspace
  @attributes[:experimental] = experimental if experimental

  @attributes.freeze
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



340
341
342
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 340

def attributes
  @attributes
end

Instance Method Details

#call_hierarchy_providerboolean | CallHierarchyOptions | CallHierarchyRegistrationOptions

The server provides call hierarchy support.



264
265
266
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 264

def call_hierarchy_provider
  attributes.fetch(:callHierarchyProvider)
end

#code_action_providerboolean | CodeActionOptions

The server provides code actions. The CodeActionOptions return type is only valid if the client signals code action literal support via the property textDocument.codeAction.codeActionLiteralSupport.

Returns:



166
167
168
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 166

def code_action_provider
  attributes.fetch(:codeActionProvider)
end

#code_lens_providerCodeLensOptions

The server provides code lens.

Returns:



174
175
176
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 174

def code_lens_provider
  attributes.fetch(:codeLensProvider)
end

#color_providerboolean | DocumentColorOptions | DocumentColorRegistrationOptions

The server provides color provider support.



190
191
192
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 190

def color_provider
  attributes.fetch(:colorProvider)
end

#completion_providerCompletionOptions

The server provides completion support.

Returns:



84
85
86
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 84

def completion_provider
  attributes.fetch(:completionProvider)
end

#declaration_providerboolean | DeclarationOptions | DeclarationRegistrationOptions

The server provides go to declaration support.



108
109
110
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 108

def declaration_provider
  attributes.fetch(:declarationProvider)
end

#definition_providerboolean | DefinitionOptions

The server provides goto definition support.

Returns:



116
117
118
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 116

def definition_provider
  attributes.fetch(:definitionProvider)
end

#diagnostic_providerDiagnosticOptions | DiagnosticRegistrationOptions

The server has support for pull model diagnostics.



312
313
314
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 312

def diagnostic_provider
  attributes.fetch(:diagnosticProvider)
end

#document_formatting_providerboolean | DocumentFormattingOptions

The server provides document formatting.

Returns:



198
199
200
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 198

def document_formatting_provider
  attributes.fetch(:documentFormattingProvider)
end

#document_highlight_providerboolean | DocumentHighlightOptions

The server provides document highlight support.

Returns:



148
149
150
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 148

def document_highlight_provider
  attributes.fetch(:documentHighlightProvider)
end

The server provides document link support.

Returns:



182
183
184
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 182

def document_link_provider
  attributes.fetch(:documentLinkProvider)
end

#document_on_type_formatting_providerDocumentOnTypeFormattingOptions

The server provides document formatting on typing.



214
215
216
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 214

def document_on_type_formatting_provider
  attributes.fetch(:documentOnTypeFormattingProvider)
end

#document_range_formatting_providerboolean | DocumentRangeFormattingOptions

The server provides document range formatting.

Returns:



206
207
208
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 206

def document_range_formatting_provider
  attributes.fetch(:documentRangeFormattingProvider)
end

#document_symbol_providerboolean | DocumentSymbolOptions

The server provides document symbol support.

Returns:



156
157
158
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 156

def document_symbol_provider
  attributes.fetch(:documentSymbolProvider)
end

#execute_command_providerExecuteCommandOptions

The server provides execute command support.



240
241
242
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 240

def execute_command_provider
  attributes.fetch(:executeCommandProvider)
end

#experimentalLSPAny

Experimental server capabilities.

Returns:

  • (LSPAny)


336
337
338
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 336

def experimental
  attributes.fetch(:experimental)
end

#folding_range_providerboolean | FoldingRangeOptions | FoldingRangeRegistrationOptions

The server provides folding provider support.



232
233
234
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 232

def folding_range_provider
  attributes.fetch(:foldingRangeProvider)
end

#hover_providerboolean | HoverOptions

The server provides hover support.

Returns:



92
93
94
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 92

def hover_provider
  attributes.fetch(:hoverProvider)
end

#implementation_providerboolean | ImplementationOptions | ImplementationRegistrationOptions

The server provides goto implementation support.



132
133
134
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 132

def implementation_provider
  attributes.fetch(:implementationProvider)
end

#inlay_hint_providerboolean | InlayHintOptions | InlayHintRegistrationOptions

The server provides inlay hints.



304
305
306
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 304

def inlay_hint_provider
  attributes.fetch(:inlayHintProvider)
end

#inline_value_providerboolean | InlineValueOptions | InlineValueRegistrationOptions

The server provides inline values.



296
297
298
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 296

def inline_value_provider
  attributes.fetch(:inlineValueProvider)
end

#linked_editing_range_providerboolean | LinkedEditingRangeOptions | LinkedEditingRangeRegistrationOptions

The server provides linked editing range support.



256
257
258
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 256

def linked_editing_range_provider
  attributes.fetch(:linkedEditingRangeProvider)
end

#moniker_providerboolean | MonikerOptions | MonikerRegistrationOptions

Whether server provides moniker support.



280
281
282
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 280

def moniker_provider
  attributes.fetch(:monikerProvider)
end

#notebook_document_syncNotebookDocumentSyncOptions | NotebookDocumentSyncRegistrationOptions

Defines how notebook documents are synced.



76
77
78
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 76

def notebook_document_sync
  attributes.fetch(:notebookDocumentSync)
end

#position_encodingstring

The position encoding the server picked from the encodings offered by the client via the client capability general.positionEncodings.

If the client didn’t provide any position encodings the only valid value that a server can return is ‘utf-16’.

If omitted it defaults to ‘utf-16’.

Returns:

  • (string)


57
58
59
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 57

def position_encoding
  attributes.fetch(:positionEncoding)
end

#references_providerboolean | ReferenceOptions

The server provides find references support.

Returns:



140
141
142
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 140

def references_provider
  attributes.fetch(:referencesProvider)
end

#rename_providerboolean | RenameOptions

The server provides rename support. RenameOptions may only be specified if the client states that it supports prepareSupport in its initial initialize request.

Returns:



224
225
226
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 224

def rename_provider
  attributes.fetch(:renameProvider)
end

#selection_range_providerboolean | SelectionRangeOptions | SelectionRangeRegistrationOptions

The server provides selection range support.



248
249
250
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 248

def selection_range_provider
  attributes.fetch(:selectionRangeProvider)
end

#semantic_tokens_providerSemanticTokensOptions | SemanticTokensRegistrationOptions

The server provides semantic tokens support.



272
273
274
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 272

def semantic_tokens_provider
  attributes.fetch(:semanticTokensProvider)
end

#signature_help_providerSignatureHelpOptions

The server provides signature help support.



100
101
102
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 100

def signature_help_provider
  attributes.fetch(:signatureHelpProvider)
end

#text_document_syncTextDocumentSyncOptions | TextDocumentSyncKind

Defines how text documents are synced. Is either a detailed structure defining each notification or for backwards compatibility the TextDocumentSyncKind number. If omitted it defaults to TextDocumentSyncKind.None.

Returns:



68
69
70
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 68

def text_document_sync
  attributes.fetch(:textDocumentSync)
end

#to_hashObject



342
343
344
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 342

def to_hash
  attributes
end

#to_json(*args) ⇒ Object



346
347
348
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 346

def to_json(*args)
  to_hash.to_json(*args)
end

#type_definition_providerboolean | TypeDefinitionOptions | TypeDefinitionRegistrationOptions

The server provides goto type definition support.



124
125
126
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 124

def type_definition_provider
  attributes.fetch(:typeDefinitionProvider)
end

#type_hierarchy_providerboolean | TypeHierarchyOptions | TypeHierarchyRegistrationOptions

The server provides type hierarchy support.



288
289
290
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 288

def type_hierarchy_provider
  attributes.fetch(:typeHierarchyProvider)
end

#workspace{ workspaceFolders?: WorkspaceFoldersServerCapabilities; fileOperations?: { didCreate?: FileOperationRegistrationOptions; ... 4 more ...; willDelete?: FileOperationRegistrationOptions; }; }

Workspace specific server capabilities

Returns:



328
329
330
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 328

def workspace
  attributes.fetch(:workspace)
end

#workspace_symbol_providerboolean | WorkspaceSymbolOptions

The server provides workspace symbol support.

Returns:



320
321
322
# File 'lib/language_server/protocol/interface/server_capabilities.rb', line 320

def workspace_symbol_provider
  attributes.fetch(:workspaceSymbolProvider)
end