language_server-protocol 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +5 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Dockerfile-node.development +6 -0
  6. data/Dockerfile.development +14 -0
  7. data/Gemfile +6 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +43 -0
  10. data/Rakefile +10 -0
  11. data/bin/console +14 -0
  12. data/bin/generate_files +5 -0
  13. data/bin/setup +8 -0
  14. data/language_server-protocol.gemspec +27 -0
  15. data/lib/language_server/protocol/constants/completion_item_kind.rb +29 -0
  16. data/lib/language_server/protocol/constants/diagnostic_severity.rb +24 -0
  17. data/lib/language_server/protocol/constants/document_highlight_kind.rb +23 -0
  18. data/lib/language_server/protocol/constants/error_codes.rb +18 -0
  19. data/lib/language_server/protocol/constants/file_change_type.rb +23 -0
  20. data/lib/language_server/protocol/constants/initialize_error.rb +15 -0
  21. data/lib/language_server/protocol/constants/insert_text_format.rb +27 -0
  22. data/lib/language_server/protocol/constants/message_type.rb +24 -0
  23. data/lib/language_server/protocol/constants/symbol_kind.rb +29 -0
  24. data/lib/language_server/protocol/constants/text_document_save_reason.rb +24 -0
  25. data/lib/language_server/protocol/constants/text_document_sync_kind.rb +26 -0
  26. data/lib/language_server/protocol/constants.rb +11 -0
  27. data/lib/language_server/protocol/interfaces/apply_workspace_edit_params.rb +29 -0
  28. data/lib/language_server/protocol/interfaces/apply_workspace_edit_response.rb +29 -0
  29. data/lib/language_server/protocol/interfaces/cancel_params.rb +29 -0
  30. data/lib/language_server/protocol/interfaces/client_capabilities.rb +47 -0
  31. data/lib/language_server/protocol/interfaces/code_action_context.rb +33 -0
  32. data/lib/language_server/protocol/interfaces/code_action_params.rb +50 -0
  33. data/lib/language_server/protocol/interfaces/code_lens.rb +55 -0
  34. data/lib/language_server/protocol/interfaces/code_lens_options.rb +32 -0
  35. data/lib/language_server/protocol/interfaces/code_lens_params.rb +29 -0
  36. data/lib/language_server/protocol/interfaces/code_lens_registration_options.rb +29 -0
  37. data/lib/language_server/protocol/interfaces/command.rb +48 -0
  38. data/lib/language_server/protocol/interfaces/completion_item.rb +145 -0
  39. data/lib/language_server/protocol/interfaces/completion_list.rb +43 -0
  40. data/lib/language_server/protocol/interfaces/completion_options.rb +42 -0
  41. data/lib/language_server/protocol/interfaces/completion_registration_options.rb +39 -0
  42. data/lib/language_server/protocol/interfaces/diagnostic.rb +67 -0
  43. data/lib/language_server/protocol/interfaces/did_change_configuration_params.rb +29 -0
  44. data/lib/language_server/protocol/interfaces/did_change_text_document_params.rb +40 -0
  45. data/lib/language_server/protocol/interfaces/did_change_watched_files_params.rb +29 -0
  46. data/lib/language_server/protocol/interfaces/did_close_text_document_params.rb +29 -0
  47. data/lib/language_server/protocol/interfaces/did_open_text_document_params.rb +29 -0
  48. data/lib/language_server/protocol/interfaces/did_save_text_document_params.rb +39 -0
  49. data/lib/language_server/protocol/interfaces/document_filter.rb +47 -0
  50. data/lib/language_server/protocol/interfaces/document_formatting_params.rb +38 -0
  51. data/lib/language_server/protocol/interfaces/document_highlight.rb +43 -0
  52. data/lib/language_server/protocol/interfaces/document_link.rb +42 -0
  53. data/lib/language_server/protocol/interfaces/document_link_options.rb +32 -0
  54. data/lib/language_server/protocol/interfaces/document_link_params.rb +29 -0
  55. data/lib/language_server/protocol/interfaces/document_link_registration_options.rb +29 -0
  56. data/lib/language_server/protocol/interfaces/document_on_type_formatting_options.rb +41 -0
  57. data/lib/language_server/protocol/interfaces/document_on_type_formatting_params.rb +56 -0
  58. data/lib/language_server/protocol/interfaces/document_on_type_formatting_registration_options.rb +38 -0
  59. data/lib/language_server/protocol/interfaces/document_range_formatting_params.rb +47 -0
  60. data/lib/language_server/protocol/interfaces/document_symbol_params.rb +29 -0
  61. data/lib/language_server/protocol/interfaces/execute_command_options.rb +32 -0
  62. data/lib/language_server/protocol/interfaces/execute_command_params.rb +38 -0
  63. data/lib/language_server/protocol/interfaces/execute_command_registration_options.rb +32 -0
  64. data/lib/language_server/protocol/interfaces/file_event.rb +41 -0
  65. data/lib/language_server/protocol/interfaces/formatting_options.rb +41 -0
  66. data/lib/language_server/protocol/interfaces/hover.rb +42 -0
  67. data/lib/language_server/protocol/interfaces/initialize_error.rb +35 -0
  68. data/lib/language_server/protocol/interfaces/initialize_params.rb +79 -0
  69. data/lib/language_server/protocol/interfaces/initialize_result.rb +29 -0
  70. data/lib/language_server/protocol/interfaces/location.rb +32 -0
  71. data/lib/language_server/protocol/interfaces/log_message_params.rb +38 -0
  72. data/lib/language_server/protocol/interfaces/message.rb +26 -0
  73. data/lib/language_server/protocol/interfaces/message_action_item.rb +29 -0
  74. data/lib/language_server/protocol/interfaces/notification_message.rb +38 -0
  75. data/lib/language_server/protocol/interfaces/parameter_information.rb +44 -0
  76. data/lib/language_server/protocol/interfaces/position.rb +38 -0
  77. data/lib/language_server/protocol/interfaces/publish_diagnostics_params.rb +38 -0
  78. data/lib/language_server/protocol/interfaces/range.rb +38 -0
  79. data/lib/language_server/protocol/interfaces/reference_context.rb +29 -0
  80. data/lib/language_server/protocol/interfaces/reference_params.rb +26 -0
  81. data/lib/language_server/protocol/interfaces/registration.rb +51 -0
  82. data/lib/language_server/protocol/interfaces/registration_params.rb +26 -0
  83. data/lib/language_server/protocol/interfaces/rename_params.rb +49 -0
  84. data/lib/language_server/protocol/interfaces/request_message.rb +47 -0
  85. data/lib/language_server/protocol/interfaces/response_error.rb +48 -0
  86. data/lib/language_server/protocol/interfaces/response_message.rb +48 -0
  87. data/lib/language_server/protocol/interfaces/save_options.rb +32 -0
  88. data/lib/language_server/protocol/interfaces/server_capabilities.rb +183 -0
  89. data/lib/language_server/protocol/interfaces/show_message_params.rb +38 -0
  90. data/lib/language_server/protocol/interfaces/show_message_request_params.rb +47 -0
  91. data/lib/language_server/protocol/interfaces/signature_help.rb +64 -0
  92. data/lib/language_server/protocol/interfaces/signature_help_options.rb +33 -0
  93. data/lib/language_server/protocol/interfaces/signature_help_registration_options.rb +30 -0
  94. data/lib/language_server/protocol/interfaces/signature_information.rb +54 -0
  95. data/lib/language_server/protocol/interfaces/symbol_information.rb +60 -0
  96. data/lib/language_server/protocol/interfaces/text_document_change_registration_options.rb +33 -0
  97. data/lib/language_server/protocol/interfaces/text_document_client_capabilities.rb +155 -0
  98. data/lib/language_server/protocol/interfaces/text_document_content_change_event.rb +51 -0
  99. data/lib/language_server/protocol/interfaces/text_document_edit.rb +38 -0
  100. data/lib/language_server/protocol/interfaces/text_document_identifier.rb +29 -0
  101. data/lib/language_server/protocol/interfaces/text_document_item.rb +57 -0
  102. data/lib/language_server/protocol/interfaces/text_document_position_params.rb +38 -0
  103. data/lib/language_server/protocol/interfaces/text_document_registration_options.rb +30 -0
  104. data/lib/language_server/protocol/interfaces/text_document_save_registration_options.rb +29 -0
  105. data/lib/language_server/protocol/interfaces/text_document_sync_options.rb +66 -0
  106. data/lib/language_server/protocol/interfaces/text_edit.rb +40 -0
  107. data/lib/language_server/protocol/interfaces/unregistration.rb +42 -0
  108. data/lib/language_server/protocol/interfaces/unregistration_params.rb +26 -0
  109. data/lib/language_server/protocol/interfaces/versioned_text_document_identifier.rb +29 -0
  110. data/lib/language_server/protocol/interfaces/will_save_text_document_params.rb +41 -0
  111. data/lib/language_server/protocol/interfaces/workspace_client_capabilites.rb +78 -0
  112. data/lib/language_server/protocol/interfaces/workspace_edit.rb +40 -0
  113. data/lib/language_server/protocol/interfaces/workspace_symbol_params.rb +32 -0
  114. data/lib/language_server/protocol/interfaces.rb +87 -0
  115. data/lib/language_server/protocol/transport/stdio/reader.rb +39 -0
  116. data/lib/language_server/protocol/transport/stdio/writer.rb +38 -0
  117. data/lib/language_server/protocol/transport/stdio.rb +2 -0
  118. data/lib/language_server/protocol/version.rb +5 -0
  119. data/lib/language_server/protocol.rb +7 -0
  120. data/package.json +10 -0
  121. data/scripts/generateFiles.ts +224 -0
  122. data/yarn.lock +293 -0
  123. metadata +207 -0
@@ -0,0 +1,29 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class ReferenceContext
5
+ def initialize(include_declaration:)
6
+ @attributes = {}
7
+
8
+ @attributes[:includeDeclaration] = include_declaration
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # Include the declaration of the current symbol.
15
+ #
16
+ # @return [boolean]
17
+ def include_declaration
18
+ attributes.fetch(:includeDeclaration)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_json(*args)
24
+ attributes.to_json(*args)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,26 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class ReferenceParams
5
+ def initialize(context:)
6
+ @attributes = {}
7
+
8
+ @attributes[:context] = context
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ # @return [ReferenceContext]
14
+ def context
15
+ attributes.fetch(:context)
16
+ end
17
+
18
+ attr_reader :attributes
19
+
20
+ def to_json(*args)
21
+ attributes.to_json(*args)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,51 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # General paramters to to regsiter for a capability.
6
+ #
7
+ class Registration
8
+ def initialize(id:, method:, register_options: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:id] = id
12
+ @attributes[:method] = method
13
+ @attributes[:registerOptions] = register_options if register_options
14
+
15
+ @attributes.freeze
16
+ end
17
+
18
+ #
19
+ # The id used to register the request. The id can be used to deregister
20
+ # the request again.
21
+ #
22
+ # @return [string]
23
+ def id
24
+ attributes.fetch(:id)
25
+ end
26
+
27
+ #
28
+ # The method / capability to register for.
29
+ #
30
+ # @return [string]
31
+ def method
32
+ attributes.fetch(:method)
33
+ end
34
+
35
+ #
36
+ # Options necessary for the registration.
37
+ #
38
+ # @return [any]
39
+ def register_options
40
+ attributes.fetch(:registerOptions)
41
+ end
42
+
43
+ attr_reader :attributes
44
+
45
+ def to_json(*args)
46
+ attributes.to_json(*args)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,26 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class RegistrationParams
5
+ def initialize(registrations:)
6
+ @attributes = {}
7
+
8
+ @attributes[:registrations] = registrations
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ # @return [Registration[]]
14
+ def registrations
15
+ attributes.fetch(:registrations)
16
+ end
17
+
18
+ attr_reader :attributes
19
+
20
+ def to_json(*args)
21
+ attributes.to_json(*args)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,49 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class RenameParams
5
+ def initialize(text_document:, position:, new_name:)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+ @attributes[:position] = position
10
+ @attributes[:newName] = new_name
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # The document to format.
17
+ #
18
+ # @return [TextDocumentIdentifier]
19
+ def text_document
20
+ attributes.fetch(:textDocument)
21
+ end
22
+
23
+ #
24
+ # The position at which this request was sent.
25
+ #
26
+ # @return [Position]
27
+ def position
28
+ attributes.fetch(:position)
29
+ end
30
+
31
+ #
32
+ # The new name of the symbol. If the given name is not valid the
33
+ # request must return a [ResponseError](#ResponseError) with an
34
+ # appropriate message set.
35
+ #
36
+ # @return [string]
37
+ def new_name
38
+ attributes.fetch(:newName)
39
+ end
40
+
41
+ attr_reader :attributes
42
+
43
+ def to_json(*args)
44
+ attributes.to_json(*args)
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,47 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class RequestMessage
5
+ def initialize(id:, method:, params: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:id] = id
9
+ @attributes[:method] = method
10
+ @attributes[:params] = params if params
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # The request id.
17
+ #
18
+ # @return [string | number]
19
+ def id
20
+ attributes.fetch(:id)
21
+ end
22
+
23
+ #
24
+ # The method to be invoked.
25
+ #
26
+ # @return [string]
27
+ def method
28
+ attributes.fetch(:method)
29
+ end
30
+
31
+ #
32
+ # The method's params.
33
+ #
34
+ # @return [any]
35
+ def params
36
+ attributes.fetch(:params)
37
+ end
38
+
39
+ attr_reader :attributes
40
+
41
+ def to_json(*args)
42
+ attributes.to_json(*args)
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,48 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class ResponseError
5
+ def initialize(code:, message:, data: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:code] = code
9
+ @attributes[:message] = message
10
+ @attributes[:data] = data if data
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # A number indicating the error type that occurred.
17
+ #
18
+ # @return [number]
19
+ def code
20
+ attributes.fetch(:code)
21
+ end
22
+
23
+ #
24
+ # A string providing a short description of the error.
25
+ #
26
+ # @return [string]
27
+ def message
28
+ attributes.fetch(:message)
29
+ end
30
+
31
+ #
32
+ # A Primitive or Structured value that contains additional
33
+ # information about the error. Can be omitted.
34
+ #
35
+ # @return [D]
36
+ def data
37
+ attributes.fetch(:data)
38
+ end
39
+
40
+ attr_reader :attributes
41
+
42
+ def to_json(*args)
43
+ attributes.to_json(*args)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class ResponseMessage
5
+ def initialize(id:, result: nil, error: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:id] = id
9
+ @attributes[:result] = result if result
10
+ @attributes[:error] = error if error
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # The request id.
17
+ #
18
+ # @return [string | number]
19
+ def id
20
+ attributes.fetch(:id)
21
+ end
22
+
23
+ #
24
+ # The result of a request. This can be omitted in
25
+ # the case of an error.
26
+ #
27
+ # @return [any]
28
+ def result
29
+ attributes.fetch(:result)
30
+ end
31
+
32
+ #
33
+ # The error object in case a request fails.
34
+ #
35
+ # @return [ResponseError<any>]
36
+ def error
37
+ attributes.fetch(:error)
38
+ end
39
+
40
+ attr_reader :attributes
41
+
42
+ def to_json(*args)
43
+ attributes.to_json(*args)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,32 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Save options.
6
+ #
7
+ class SaveOptions
8
+ def initialize(include_text: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:includeText] = include_text if include_text
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # The client is supposed to include the content on save.
18
+ #
19
+ # @return [boolean]
20
+ def include_text
21
+ attributes.fetch(:includeText)
22
+ end
23
+
24
+ attr_reader :attributes
25
+
26
+ def to_json(*args)
27
+ attributes.to_json(*args)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,183 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class ServerCapabilities
5
+ def initialize(text_document_sync: nil, hover_provider: nil, completion_provider: nil, signature_help_provider: nil, definition_provider: nil, references_provider: nil, document_highlight_provider: nil, document_symbol_provider: nil, workspace_symbol_provider: nil, code_action_provider: nil, code_lens_provider: nil, document_formatting_provider: nil, document_range_formatting_provider: nil, document_on_type_formatting_provider: nil, rename_provider: nil, document_link_provider: nil, execute_command_provider: nil, experimental: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocumentSync] = text_document_sync if text_document_sync
9
+ @attributes[:hoverProvider] = hover_provider if hover_provider
10
+ @attributes[:completionProvider] = completion_provider if completion_provider
11
+ @attributes[:signatureHelpProvider] = signature_help_provider if signature_help_provider
12
+ @attributes[:definitionProvider] = definition_provider if definition_provider
13
+ @attributes[:referencesProvider] = references_provider if references_provider
14
+ @attributes[:documentHighlightProvider] = document_highlight_provider if document_highlight_provider
15
+ @attributes[:documentSymbolProvider] = document_symbol_provider if document_symbol_provider
16
+ @attributes[:workspaceSymbolProvider] = workspace_symbol_provider if workspace_symbol_provider
17
+ @attributes[:codeActionProvider] = code_action_provider if code_action_provider
18
+ @attributes[:codeLensProvider] = code_lens_provider if code_lens_provider
19
+ @attributes[:documentFormattingProvider] = document_formatting_provider if document_formatting_provider
20
+ @attributes[:documentRangeFormattingProvider] = document_range_formatting_provider if document_range_formatting_provider
21
+ @attributes[:documentOnTypeFormattingProvider] = document_on_type_formatting_provider if document_on_type_formatting_provider
22
+ @attributes[:renameProvider] = rename_provider if rename_provider
23
+ @attributes[:documentLinkProvider] = document_link_provider if document_link_provider
24
+ @attributes[:executeCommandProvider] = execute_command_provider if execute_command_provider
25
+ @attributes[:experimental] = experimental if experimental
26
+
27
+ @attributes.freeze
28
+ end
29
+
30
+ #
31
+ # Defines how text documents are synced. Is either a detailed structure defining each notification or
32
+ # for backwards compatibility the TextDocumentSyncKind number.
33
+ #
34
+ # @return [number | TextDocumentSyncOptions]
35
+ def text_document_sync
36
+ attributes.fetch(:textDocumentSync)
37
+ end
38
+
39
+ #
40
+ # The server provides hover support.
41
+ #
42
+ # @return [boolean]
43
+ def hover_provider
44
+ attributes.fetch(:hoverProvider)
45
+ end
46
+
47
+ #
48
+ # The server provides completion support.
49
+ #
50
+ # @return [CompletionOptions]
51
+ def completion_provider
52
+ attributes.fetch(:completionProvider)
53
+ end
54
+
55
+ #
56
+ # The server provides signature help support.
57
+ #
58
+ # @return [SignatureHelpOptions]
59
+ def signature_help_provider
60
+ attributes.fetch(:signatureHelpProvider)
61
+ end
62
+
63
+ #
64
+ # The server provides goto definition support.
65
+ #
66
+ # @return [boolean]
67
+ def definition_provider
68
+ attributes.fetch(:definitionProvider)
69
+ end
70
+
71
+ #
72
+ # The server provides find references support.
73
+ #
74
+ # @return [boolean]
75
+ def references_provider
76
+ attributes.fetch(:referencesProvider)
77
+ end
78
+
79
+ #
80
+ # The server provides document highlight support.
81
+ #
82
+ # @return [boolean]
83
+ def document_highlight_provider
84
+ attributes.fetch(:documentHighlightProvider)
85
+ end
86
+
87
+ #
88
+ # The server provides document symbol support.
89
+ #
90
+ # @return [boolean]
91
+ def document_symbol_provider
92
+ attributes.fetch(:documentSymbolProvider)
93
+ end
94
+
95
+ #
96
+ # The server provides workspace symbol support.
97
+ #
98
+ # @return [boolean]
99
+ def workspace_symbol_provider
100
+ attributes.fetch(:workspaceSymbolProvider)
101
+ end
102
+
103
+ #
104
+ # The server provides code actions.
105
+ #
106
+ # @return [boolean]
107
+ def code_action_provider
108
+ attributes.fetch(:codeActionProvider)
109
+ end
110
+
111
+ #
112
+ # The server provides code lens.
113
+ #
114
+ # @return [CodeLensOptions]
115
+ def code_lens_provider
116
+ attributes.fetch(:codeLensProvider)
117
+ end
118
+
119
+ #
120
+ # The server provides document formatting.
121
+ #
122
+ # @return [boolean]
123
+ def document_formatting_provider
124
+ attributes.fetch(:documentFormattingProvider)
125
+ end
126
+
127
+ #
128
+ # The server provides document range formatting.
129
+ #
130
+ # @return [boolean]
131
+ def document_range_formatting_provider
132
+ attributes.fetch(:documentRangeFormattingProvider)
133
+ end
134
+
135
+ #
136
+ # The server provides document formatting on typing.
137
+ #
138
+ # @return [DocumentOnTypeFormattingOptions]
139
+ def document_on_type_formatting_provider
140
+ attributes.fetch(:documentOnTypeFormattingProvider)
141
+ end
142
+
143
+ #
144
+ # The server provides rename support.
145
+ #
146
+ # @return [boolean]
147
+ def rename_provider
148
+ attributes.fetch(:renameProvider)
149
+ end
150
+
151
+ #
152
+ # The server provides document link support.
153
+ #
154
+ # @return [DocumentLinkOptions]
155
+ def document_link_provider
156
+ attributes.fetch(:documentLinkProvider)
157
+ end
158
+
159
+ #
160
+ # The server provides execute command support.
161
+ #
162
+ # @return [ExecuteCommandOptions]
163
+ def execute_command_provider
164
+ attributes.fetch(:executeCommandProvider)
165
+ end
166
+
167
+ #
168
+ # Experimental server capabilities.
169
+ #
170
+ # @return [any]
171
+ def experimental
172
+ attributes.fetch(:experimental)
173
+ end
174
+
175
+ attr_reader :attributes
176
+
177
+ def to_json(*args)
178
+ attributes.to_json(*args)
179
+ end
180
+ end
181
+ end
182
+ end
183
+ end