language_server-protocol 3.15.0.2 → 3.16.0.3

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 (218) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/lib/language_server/protocol/constant/code_action_kind.rb +6 -4
  4. data/lib/language_server/protocol/constant/completion_item_tag.rb +2 -2
  5. data/lib/language_server/protocol/constant/completion_trigger_kind.rb +2 -1
  6. data/lib/language_server/protocol/constant/diagnostic_tag.rb +2 -2
  7. data/lib/language_server/protocol/constant/error_codes.rb +26 -3
  8. data/lib/language_server/protocol/constant/failure_handling_kind.rb +6 -5
  9. data/lib/language_server/protocol/constant/file_operation_pattern_kind.rb +20 -0
  10. data/lib/language_server/protocol/constant/initialize_error.rb +2 -1
  11. data/lib/language_server/protocol/constant/insert_text_mode.rb +30 -0
  12. data/lib/language_server/protocol/constant/prepare_support_default_behavior.rb +13 -0
  13. data/lib/language_server/protocol/constant/signature_help_trigger_kind.rb +2 -1
  14. data/lib/language_server/protocol/constant/symbol_tag.rb +15 -0
  15. data/lib/language_server/protocol/constant/text_document_save_reason.rb +2 -2
  16. data/lib/language_server/protocol/constant/text_document_sync_kind.rb +2 -2
  17. data/lib/language_server/protocol/constant/token_format.rb +9 -0
  18. data/lib/language_server/protocol/constant.rb +10 -0
  19. data/lib/language_server/protocol/interface/annotated_text_edit.rb +56 -0
  20. data/lib/language_server/protocol/interface/apply_workspace_edit_response.rb +15 -4
  21. data/lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb +36 -0
  22. data/lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb +43 -0
  23. data/lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb +49 -0
  24. data/lib/language_server/protocol/interface/call_hierarchy_item.rb +100 -0
  25. data/lib/language_server/protocol/interface/call_hierarchy_options.rb +30 -0
  26. data/lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb +43 -0
  27. data/lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb +49 -0
  28. data/lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb +51 -0
  29. data/lib/language_server/protocol/interface/call_hierarchy_registration_options.rb +50 -0
  30. data/lib/language_server/protocol/interface/change_annotation.rb +57 -0
  31. data/lib/language_server/protocol/interface/client_capabilities.rb +12 -3
  32. data/lib/language_server/protocol/interface/code_action.rb +43 -8
  33. data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +44 -1
  34. data/lib/language_server/protocol/interface/code_action_context.rb +7 -6
  35. data/lib/language_server/protocol/interface/code_action_options.rb +19 -4
  36. data/lib/language_server/protocol/interface/code_action_params.rb +20 -2
  37. data/lib/language_server/protocol/interface/code_action_registration_options.rb +38 -2
  38. data/lib/language_server/protocol/interface/code_description.rb +36 -0
  39. data/lib/language_server/protocol/interface/code_lens.rb +5 -3
  40. data/lib/language_server/protocol/interface/code_lens_options.rb +6 -1
  41. data/lib/language_server/protocol/interface/code_lens_params.rb +20 -2
  42. data/lib/language_server/protocol/interface/code_lens_registration_options.rb +25 -2
  43. data/lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb +39 -0
  44. data/lib/language_server/protocol/interface/color_presentation.rb +7 -6
  45. data/lib/language_server/protocol/interface/color_presentation_params.rb +20 -2
  46. data/lib/language_server/protocol/interface/completion_client_capabilities.rb +1 -1
  47. data/lib/language_server/protocol/interface/completion_context.rb +5 -3
  48. data/lib/language_server/protocol/interface/completion_item.rb +60 -29
  49. data/lib/language_server/protocol/interface/completion_list.rb +2 -2
  50. data/lib/language_server/protocol/interface/completion_options.rb +21 -13
  51. data/lib/language_server/protocol/interface/completion_params.rb +40 -3
  52. data/lib/language_server/protocol/interface/completion_registration_options.rb +57 -2
  53. data/lib/language_server/protocol/interface/create_file.rb +10 -1
  54. data/lib/language_server/protocol/interface/create_files_params.rb +37 -0
  55. data/lib/language_server/protocol/interface/declaration_client_capabilities.rb +3 -3
  56. data/lib/language_server/protocol/interface/declaration_options.rb +6 -1
  57. data/lib/language_server/protocol/interface/declaration_params.rb +38 -2
  58. data/lib/language_server/protocol/interface/declaration_registration_options.rb +27 -2
  59. data/lib/language_server/protocol/interface/definition_options.rb +6 -1
  60. data/lib/language_server/protocol/interface/definition_params.rb +38 -2
  61. data/lib/language_server/protocol/interface/definition_registration_options.rb +17 -2
  62. data/lib/language_server/protocol/interface/delete_file.rb +10 -1
  63. data/lib/language_server/protocol/interface/delete_files_params.rb +37 -0
  64. data/lib/language_server/protocol/interface/diagnostic.rb +21 -1
  65. data/lib/language_server/protocol/interface/diagnostic_related_information.rb +3 -3
  66. data/lib/language_server/protocol/interface/did_change_text_document_params.rb +11 -9
  67. data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +3 -3
  68. data/lib/language_server/protocol/interface/document_color_options.rb +6 -1
  69. data/lib/language_server/protocol/interface/document_color_params.rb +20 -2
  70. data/lib/language_server/protocol/interface/document_color_registration_options.rb +27 -2
  71. data/lib/language_server/protocol/interface/document_filter.rb +7 -3
  72. data/lib/language_server/protocol/interface/document_formatting_options.rb +6 -1
  73. data/lib/language_server/protocol/interface/document_formatting_params.rb +9 -1
  74. data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +17 -2
  75. data/lib/language_server/protocol/interface/document_highlight.rb +1 -1
  76. data/lib/language_server/protocol/interface/document_highlight_options.rb +6 -1
  77. data/lib/language_server/protocol/interface/document_highlight_params.rb +38 -2
  78. data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +17 -2
  79. data/lib/language_server/protocol/interface/document_link.rb +6 -5
  80. data/lib/language_server/protocol/interface/document_link_options.rb +6 -1
  81. data/lib/language_server/protocol/interface/document_link_params.rb +20 -2
  82. data/lib/language_server/protocol/interface/document_link_registration_options.rb +25 -2
  83. data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +17 -1
  84. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +28 -2
  85. data/lib/language_server/protocol/interface/document_range_formatting_options.rb +6 -1
  86. data/lib/language_server/protocol/interface/document_range_formatting_params.rb +9 -1
  87. data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +17 -2
  88. data/lib/language_server/protocol/interface/document_symbol.rb +23 -11
  89. data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +24 -2
  90. data/lib/language_server/protocol/interface/document_symbol_options.rb +17 -2
  91. data/lib/language_server/protocol/interface/document_symbol_params.rb +20 -2
  92. data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +27 -2
  93. data/lib/language_server/protocol/interface/execute_command_options.rb +6 -1
  94. data/lib/language_server/protocol/interface/execute_command_params.rb +9 -1
  95. data/lib/language_server/protocol/interface/execute_command_registration_options.rb +14 -1
  96. data/lib/language_server/protocol/interface/file_create.rb +36 -0
  97. data/lib/language_server/protocol/interface/file_delete.rb +36 -0
  98. data/lib/language_server/protocol/interface/file_operation_filter.rb +46 -0
  99. data/lib/language_server/protocol/interface/file_operation_pattern.rb +67 -0
  100. data/lib/language_server/protocol/interface/file_operation_pattern_options.rb +36 -0
  101. data/lib/language_server/protocol/interface/file_operation_registration_options.rb +36 -0
  102. data/lib/language_server/protocol/interface/file_rename.rb +45 -0
  103. data/lib/language_server/protocol/interface/file_system_watcher.rb +7 -3
  104. data/lib/language_server/protocol/interface/folding_range.rb +17 -8
  105. data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +10 -7
  106. data/lib/language_server/protocol/interface/folding_range_options.rb +6 -1
  107. data/lib/language_server/protocol/interface/folding_range_params.rb +20 -2
  108. data/lib/language_server/protocol/interface/folding_range_registration_options.rb +27 -2
  109. data/lib/language_server/protocol/interface/hover.rb +1 -1
  110. data/lib/language_server/protocol/interface/hover_client_capabilities.rb +3 -2
  111. data/lib/language_server/protocol/interface/hover_options.rb +6 -1
  112. data/lib/language_server/protocol/interface/hover_params.rb +28 -2
  113. data/lib/language_server/protocol/interface/hover_registration_options.rb +17 -2
  114. data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +3 -3
  115. data/lib/language_server/protocol/interface/implementation_options.rb +6 -1
  116. data/lib/language_server/protocol/interface/implementation_params.rb +38 -2
  117. data/lib/language_server/protocol/interface/implementation_registration_options.rb +27 -2
  118. data/lib/language_server/protocol/interface/initialize_params.rb +29 -6
  119. data/lib/language_server/protocol/interface/insert_replace_edit.rb +54 -0
  120. data/lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb +36 -0
  121. data/lib/language_server/protocol/interface/linked_editing_range_options.rb +30 -0
  122. data/lib/language_server/protocol/interface/linked_editing_range_params.rb +51 -0
  123. data/lib/language_server/protocol/interface/linked_editing_range_registration_options.rb +50 -0
  124. data/lib/language_server/protocol/interface/linked_editing_ranges.rb +45 -0
  125. data/lib/language_server/protocol/interface/location_link.rb +9 -7
  126. data/lib/language_server/protocol/interface/log_message_params.rb +1 -1
  127. data/lib/language_server/protocol/interface/log_trace_params.rb +43 -0
  128. data/lib/language_server/protocol/interface/markdown_client_capabilities.rb +45 -0
  129. data/lib/language_server/protocol/interface/markup_content.rb +9 -7
  130. data/lib/language_server/protocol/interface/moniker.rb +64 -0
  131. data/lib/language_server/protocol/interface/moniker_client_capabilities.rb +36 -0
  132. data/lib/language_server/protocol/interface/moniker_options.rb +30 -0
  133. data/lib/language_server/protocol/interface/moniker_params.rb +61 -0
  134. data/lib/language_server/protocol/interface/moniker_registration_options.rb +40 -0
  135. data/lib/language_server/protocol/interface/notification_message.rb +6 -1
  136. data/lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb +50 -0
  137. data/lib/language_server/protocol/interface/parameter_information.rb +7 -5
  138. data/lib/language_server/protocol/interface/partial_result_params.rb +3 -3
  139. data/lib/language_server/protocol/interface/position.rb +5 -5
  140. data/lib/language_server/protocol/interface/prepare_rename_params.rb +17 -1
  141. data/lib/language_server/protocol/interface/progress_params.rb +1 -1
  142. data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +21 -1
  143. data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +2 -1
  144. data/lib/language_server/protocol/interface/reference_options.rb +6 -1
  145. data/lib/language_server/protocol/interface/reference_params.rb +38 -2
  146. data/lib/language_server/protocol/interface/reference_registration_options.rb +17 -2
  147. data/lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb +45 -0
  148. data/lib/language_server/protocol/interface/rename_client_capabilities.rb +27 -1
  149. data/lib/language_server/protocol/interface/rename_file.rb +10 -1
  150. data/lib/language_server/protocol/interface/rename_files_params.rb +38 -0
  151. data/lib/language_server/protocol/interface/rename_options.rb +6 -1
  152. data/lib/language_server/protocol/interface/rename_params.rb +28 -2
  153. data/lib/language_server/protocol/interface/rename_registration_options.rb +25 -2
  154. data/lib/language_server/protocol/interface/request_message.rb +6 -1
  155. data/lib/language_server/protocol/interface/response_message.rb +6 -1
  156. data/lib/language_server/protocol/interface/selection_range.rb +2 -1
  157. data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +4 -3
  158. data/lib/language_server/protocol/interface/selection_range_options.rb +6 -1
  159. data/lib/language_server/protocol/interface/selection_range_params.rb +20 -2
  160. data/lib/language_server/protocol/interface/selection_range_registration_options.rb +27 -2
  161. data/lib/language_server/protocol/interface/semantic_tokens.rb +45 -0
  162. data/lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb +97 -0
  163. data/lib/language_server/protocol/interface/semantic_tokens_delta.rb +40 -0
  164. data/lib/language_server/protocol/interface/semantic_tokens_delta_params.rb +62 -0
  165. data/lib/language_server/protocol/interface/semantic_tokens_delta_partial_result.rb +30 -0
  166. data/lib/language_server/protocol/interface/semantic_tokens_edit.rb +51 -0
  167. data/lib/language_server/protocol/interface/semantic_tokens_legend.rb +42 -0
  168. data/lib/language_server/protocol/interface/semantic_tokens_options.rb +58 -0
  169. data/lib/language_server/protocol/interface/semantic_tokens_params.rb +52 -0
  170. data/lib/language_server/protocol/interface/semantic_tokens_partial_result.rb +30 -0
  171. data/lib/language_server/protocol/interface/semantic_tokens_range_params.rb +61 -0
  172. data/lib/language_server/protocol/interface/semantic_tokens_registration_options.rb +78 -0
  173. data/lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb +39 -0
  174. data/lib/language_server/protocol/interface/server_capabilities.rb +47 -9
  175. data/lib/language_server/protocol/interface/set_trace_params.rb +33 -0
  176. data/lib/language_server/protocol/interface/show_document_client_capabilities.rb +37 -0
  177. data/lib/language_server/protocol/interface/show_document_params.rb +71 -0
  178. data/lib/language_server/protocol/interface/show_document_result.rb +36 -0
  179. data/lib/language_server/protocol/interface/show_message_params.rb +1 -1
  180. data/lib/language_server/protocol/interface/show_message_request_client_capabilities.rb +36 -0
  181. data/lib/language_server/protocol/interface/show_message_request_params.rb +1 -1
  182. data/lib/language_server/protocol/interface/signature_help.rb +3 -3
  183. data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +1 -1
  184. data/lib/language_server/protocol/interface/signature_help_context.rb +10 -7
  185. data/lib/language_server/protocol/interface/signature_help_options.rb +9 -3
  186. data/lib/language_server/protocol/interface/signature_help_params.rb +31 -4
  187. data/lib/language_server/protocol/interface/signature_help_registration_options.rb +38 -2
  188. data/lib/language_server/protocol/interface/signature_information.rb +12 -1
  189. data/lib/language_server/protocol/interface/symbol_information.rb +10 -1
  190. data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +11 -2
  191. data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +39 -2
  192. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +2 -2
  193. data/lib/language_server/protocol/interface/text_document_edit.rb +2 -2
  194. data/lib/language_server/protocol/interface/text_document_registration_options.rb +3 -3
  195. data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +10 -1
  196. data/lib/language_server/protocol/interface/text_document_sync_options.rb +13 -15
  197. data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +3 -3
  198. data/lib/language_server/protocol/interface/type_definition_options.rb +6 -1
  199. data/lib/language_server/protocol/interface/type_definition_params.rb +38 -2
  200. data/lib/language_server/protocol/interface/type_definition_registration_options.rb +27 -2
  201. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +12 -8
  202. data/lib/language_server/protocol/interface/will_save_text_document_params.rb +1 -1
  203. data/lib/language_server/protocol/interface/work_done_progress_begin.rb +3 -3
  204. data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +1 -1
  205. data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +1 -1
  206. data/lib/language_server/protocol/interface/work_done_progress_params.rb +1 -1
  207. data/lib/language_server/protocol/interface/work_done_progress_report.rb +5 -5
  208. data/lib/language_server/protocol/interface/workspace_edit.rb +24 -7
  209. data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +23 -1
  210. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +13 -2
  211. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +6 -1
  212. data/lib/language_server/protocol/interface/workspace_symbol_params.rb +20 -2
  213. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +6 -1
  214. data/lib/language_server/protocol/interface.rb +112 -0
  215. data/lib/language_server/protocol/transport/io/reader.rb +8 -24
  216. data/lib/language_server/protocol/transport/io/writer.rb +1 -0
  217. data/lib/language_server/protocol/version.rb +1 -1
  218. metadata +68 -21
@@ -11,9 +11,10 @@ module LanguageServer
11
11
  end
12
12
 
13
13
  #
14
- # Whether implementation supports dynamic registration for selection range providers. If this is set to `true`
15
- # the client supports the new `SelectionRangeRegistrationOptions` return value for the corresponding server
16
- # capability as well.
14
+ # Whether implementation supports dynamic registration for selection range
15
+ # providers. If this is set to `true` the client supports the new
16
+ # `SelectionRangeRegistrationOptions` return value for the corresponding
17
+ # server capability as well.
17
18
  #
18
19
  # @return [boolean]
19
20
  def dynamic_registration
@@ -1,7 +1,7 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class SelectionRangeOptions < WorkDoneProgressOptions
4
+ class SelectionRangeOptions
5
5
  def initialize(work_done_progress: nil)
6
6
  @attributes = {}
7
7
 
@@ -10,6 +10,11 @@ module LanguageServer
10
10
  @attributes.freeze
11
11
  end
12
12
 
13
+ # @return [boolean]
14
+ def work_done_progress
15
+ attributes.fetch(:workDoneProgress)
16
+ end
17
+
13
18
  attr_reader :attributes
14
19
 
15
20
  def to_hash
@@ -1,10 +1,11 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class SelectionRangeParams < PartialResultParams
5
- def initialize(partial_result_token: nil, text_document:, positions:)
4
+ class SelectionRangeParams
5
+ def initialize(work_done_token: nil, partial_result_token: nil, text_document:, positions:)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:workDoneToken] = work_done_token if work_done_token
8
9
  @attributes[:partialResultToken] = partial_result_token if partial_result_token
9
10
  @attributes[:textDocument] = text_document
10
11
  @attributes[:positions] = positions
@@ -12,6 +13,23 @@ module LanguageServer
12
13
  @attributes.freeze
13
14
  end
14
15
 
16
+ #
17
+ # An optional token that a server can use to report work done progress.
18
+ #
19
+ # @return [ProgressToken]
20
+ def work_done_token
21
+ attributes.fetch(:workDoneToken)
22
+ end
23
+
24
+ #
25
+ # An optional token that a server can use to report partial results (e.g.
26
+ # streaming) to the client.
27
+ #
28
+ # @return [ProgressToken]
29
+ def partial_result_token
30
+ attributes.fetch(:partialResultToken)
31
+ end
32
+
15
33
  #
16
34
  # The text document.
17
35
  #
@@ -1,15 +1,40 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class SelectionRangeRegistrationOptions < StaticRegistrationOptions
5
- def initialize(id: nil)
4
+ class SelectionRangeRegistrationOptions
5
+ def initialize(work_done_progress: nil, document_selector:, id: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
9
+ @attributes[:documentSelector] = document_selector
8
10
  @attributes[:id] = id if id
9
11
 
10
12
  @attributes.freeze
11
13
  end
12
14
 
15
+ # @return [boolean]
16
+ def work_done_progress
17
+ attributes.fetch(:workDoneProgress)
18
+ end
19
+
20
+ #
21
+ # A document selector to identify the scope of the registration. If set to
22
+ # null the document selector provided on the client side will be used.
23
+ #
24
+ # @return [DocumentSelector]
25
+ def document_selector
26
+ attributes.fetch(:documentSelector)
27
+ end
28
+
29
+ #
30
+ # The id used to register the request. The id can be used to deregister
31
+ # the request again. See also Registration#id.
32
+ #
33
+ # @return [string]
34
+ def id
35
+ attributes.fetch(:id)
36
+ end
37
+
13
38
  attr_reader :attributes
14
39
 
15
40
  def to_hash
@@ -0,0 +1,45 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SemanticTokens
5
+ def initialize(result_id: nil, data:)
6
+ @attributes = {}
7
+
8
+ @attributes[:resultId] = result_id if result_id
9
+ @attributes[:data] = data
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # An optional result id. If provided and clients support delta updating
16
+ # the client will include the result id in the next semantic token request.
17
+ # A server can then instead of computing all semantic tokens again simply
18
+ # send a delta.
19
+ #
20
+ # @return [string]
21
+ def result_id
22
+ attributes.fetch(:resultId)
23
+ end
24
+
25
+ #
26
+ # The actual tokens.
27
+ #
28
+ # @return [number[]]
29
+ def data
30
+ attributes.fetch(:data)
31
+ end
32
+
33
+ attr_reader :attributes
34
+
35
+ def to_hash
36
+ attributes
37
+ end
38
+
39
+ def to_json(*args)
40
+ to_hash.to_json(*args)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,97 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SemanticTokensClientCapabilities
5
+ def initialize(dynamic_registration: nil, requests:, token_types:, token_modifiers:, formats:, overlapping_token_support: nil, multiline_token_support: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+ @attributes[:requests] = requests
10
+ @attributes[:tokenTypes] = token_types
11
+ @attributes[:tokenModifiers] = token_modifiers
12
+ @attributes[:formats] = formats
13
+ @attributes[:overlappingTokenSupport] = overlapping_token_support if overlapping_token_support
14
+ @attributes[:multilineTokenSupport] = multiline_token_support if multiline_token_support
15
+
16
+ @attributes.freeze
17
+ end
18
+
19
+ #
20
+ # Whether implementation supports dynamic registration. If this is set to
21
+ # `true` the client supports the new `(TextDocumentRegistrationOptions &
22
+ # StaticRegistrationOptions)` return value for the corresponding server
23
+ # capability as well.
24
+ #
25
+ # @return [boolean]
26
+ def dynamic_registration
27
+ attributes.fetch(:dynamicRegistration)
28
+ end
29
+
30
+ #
31
+ # Which requests the client supports and might send to the server
32
+ # depending on the server's capability. Please note that clients might not
33
+ # show semantic tokens or degrade some of the user experience if a range
34
+ # or full request is advertised by the client but not provided by the
35
+ # server. If for example the client capability `requests.full` and
36
+ # `request.range` are both set to true but the server only provides a
37
+ # range provider the client might not render a minimap correctly or might
38
+ # even decide to not show any semantic tokens at all.
39
+ #
40
+ # @return [{ range?: boolean | {}; full?: boolean | { delta?: boolean; }; }]
41
+ def requests
42
+ attributes.fetch(:requests)
43
+ end
44
+
45
+ #
46
+ # The token types that the client supports.
47
+ #
48
+ # @return [string[]]
49
+ def token_types
50
+ attributes.fetch(:tokenTypes)
51
+ end
52
+
53
+ #
54
+ # The token modifiers that the client supports.
55
+ #
56
+ # @return [string[]]
57
+ def token_modifiers
58
+ attributes.fetch(:tokenModifiers)
59
+ end
60
+
61
+ #
62
+ # The formats the clients supports.
63
+ #
64
+ # @return ["relative"[]]
65
+ def formats
66
+ attributes.fetch(:formats)
67
+ end
68
+
69
+ #
70
+ # Whether the client supports tokens that can overlap each other.
71
+ #
72
+ # @return [boolean]
73
+ def overlapping_token_support
74
+ attributes.fetch(:overlappingTokenSupport)
75
+ end
76
+
77
+ #
78
+ # Whether the client supports tokens that can span multiple lines.
79
+ #
80
+ # @return [boolean]
81
+ def multiline_token_support
82
+ attributes.fetch(:multilineTokenSupport)
83
+ end
84
+
85
+ attr_reader :attributes
86
+
87
+ def to_hash
88
+ attributes
89
+ end
90
+
91
+ def to_json(*args)
92
+ to_hash.to_json(*args)
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,40 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SemanticTokensDelta
5
+ def initialize(result_id: nil, edits:)
6
+ @attributes = {}
7
+
8
+ @attributes[:resultId] = result_id if result_id
9
+ @attributes[:edits] = edits
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ # @return [string]
15
+ def result_id
16
+ attributes.fetch(:resultId)
17
+ end
18
+
19
+ #
20
+ # The semantic token edits to transform a previous result into a new
21
+ # result.
22
+ #
23
+ # @return [SemanticTokensEdit[]]
24
+ def edits
25
+ attributes.fetch(:edits)
26
+ end
27
+
28
+ attr_reader :attributes
29
+
30
+ def to_hash
31
+ attributes
32
+ end
33
+
34
+ def to_json(*args)
35
+ to_hash.to_json(*args)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,62 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SemanticTokensDeltaParams
5
+ def initialize(work_done_token: nil, partial_result_token: nil, text_document:, previous_result_id:)
6
+ @attributes = {}
7
+
8
+ @attributes[:workDoneToken] = work_done_token if work_done_token
9
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
10
+ @attributes[:textDocument] = text_document
11
+ @attributes[:previousResultId] = previous_result_id
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # An optional token that a server can use to report work done progress.
18
+ #
19
+ # @return [ProgressToken]
20
+ def work_done_token
21
+ attributes.fetch(:workDoneToken)
22
+ end
23
+
24
+ #
25
+ # An optional token that a server can use to report partial results (e.g.
26
+ # streaming) to the client.
27
+ #
28
+ # @return [ProgressToken]
29
+ def partial_result_token
30
+ attributes.fetch(:partialResultToken)
31
+ end
32
+
33
+ #
34
+ # The text document.
35
+ #
36
+ # @return [TextDocumentIdentifier]
37
+ def text_document
38
+ attributes.fetch(:textDocument)
39
+ end
40
+
41
+ #
42
+ # The result id of a previous response. The result Id can either point to
43
+ # a full response or a delta response depending on what was received last.
44
+ #
45
+ # @return [string]
46
+ def previous_result_id
47
+ attributes.fetch(:previousResultId)
48
+ end
49
+
50
+ attr_reader :attributes
51
+
52
+ def to_hash
53
+ attributes
54
+ end
55
+
56
+ def to_json(*args)
57
+ to_hash.to_json(*args)
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,30 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SemanticTokensDeltaPartialResult
5
+ def initialize(edits:)
6
+ @attributes = {}
7
+
8
+ @attributes[:edits] = edits
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ # @return [SemanticTokensEdit[]]
14
+ def edits
15
+ attributes.fetch(:edits)
16
+ end
17
+
18
+ attr_reader :attributes
19
+
20
+ def to_hash
21
+ attributes
22
+ end
23
+
24
+ def to_json(*args)
25
+ to_hash.to_json(*args)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,51 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SemanticTokensEdit
5
+ def initialize(start:, delete_count:, data: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:start] = start
9
+ @attributes[:deleteCount] = delete_count
10
+ @attributes[:data] = data if data
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # The start offset of the edit.
17
+ #
18
+ # @return [number]
19
+ def start
20
+ attributes.fetch(:start)
21
+ end
22
+
23
+ #
24
+ # The count of elements to remove.
25
+ #
26
+ # @return [number]
27
+ def delete_count
28
+ attributes.fetch(:deleteCount)
29
+ end
30
+
31
+ #
32
+ # The elements to insert.
33
+ #
34
+ # @return [number[]]
35
+ def data
36
+ attributes.fetch(:data)
37
+ end
38
+
39
+ attr_reader :attributes
40
+
41
+ def to_hash
42
+ attributes
43
+ end
44
+
45
+ def to_json(*args)
46
+ to_hash.to_json(*args)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end