language_server-protocol 3.14.0.2 → 3.16.0.1

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 (240) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/lib/language_server/protocol/constant.rb +18 -0
  4. data/lib/language_server/protocol/constant/code_action_kind.rb +17 -11
  5. data/lib/language_server/protocol/constant/completion_item_tag.rb +16 -0
  6. data/lib/language_server/protocol/constant/completion_trigger_kind.rb +2 -1
  7. data/lib/language_server/protocol/constant/diagnostic_tag.rb +24 -0
  8. data/lib/language_server/protocol/constant/error_codes.rb +26 -3
  9. data/lib/language_server/protocol/constant/failure_handling_kind.rb +6 -5
  10. data/lib/language_server/protocol/constant/file_operation_pattern_kind.rb +20 -0
  11. data/lib/language_server/protocol/constant/initialize_error.rb +2 -1
  12. data/lib/language_server/protocol/constant/insert_text_mode.rb +30 -0
  13. data/lib/language_server/protocol/constant/prepare_support_default_behavior.rb +13 -0
  14. data/lib/language_server/protocol/constant/signature_help_trigger_kind.rb +24 -0
  15. data/lib/language_server/protocol/constant/symbol_tag.rb +15 -0
  16. data/lib/language_server/protocol/constant/text_document_save_reason.rb +2 -2
  17. data/lib/language_server/protocol/constant/text_document_sync_kind.rb +2 -1
  18. data/lib/language_server/protocol/constant/token_format.rb +9 -0
  19. data/lib/language_server/protocol/interface.rb +270 -6
  20. data/lib/language_server/protocol/interface/annotated_text_edit.rb +56 -0
  21. data/lib/language_server/protocol/interface/apply_workspace_edit_response.rb +24 -1
  22. data/lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb +36 -0
  23. data/lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb +43 -0
  24. data/lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb +49 -0
  25. data/lib/language_server/protocol/interface/call_hierarchy_item.rb +100 -0
  26. data/lib/language_server/protocol/interface/call_hierarchy_options.rb +30 -0
  27. data/lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb +43 -0
  28. data/lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb +49 -0
  29. data/lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb +51 -0
  30. data/lib/language_server/protocol/interface/call_hierarchy_registration_options.rb +50 -0
  31. data/lib/language_server/protocol/interface/change_annotation.rb +57 -0
  32. data/lib/language_server/protocol/interface/client_capabilities.rb +20 -2
  33. data/lib/language_server/protocol/interface/code_action.rb +52 -4
  34. data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +95 -0
  35. data/lib/language_server/protocol/interface/code_action_context.rb +8 -3
  36. data/lib/language_server/protocol/interface/code_action_options.rb +19 -6
  37. data/lib/language_server/protocol/interface/code_action_params.rb +20 -1
  38. data/lib/language_server/protocol/interface/code_action_registration_options.rb +39 -2
  39. data/lib/language_server/protocol/interface/code_description.rb +36 -0
  40. data/lib/language_server/protocol/interface/code_lens.rb +5 -3
  41. data/lib/language_server/protocol/interface/code_lens_client_capabilities.rb +33 -0
  42. data/lib/language_server/protocol/interface/code_lens_options.rb +7 -4
  43. data/lib/language_server/protocol/interface/code_lens_params.rb +20 -1
  44. data/lib/language_server/protocol/interface/code_lens_registration_options.rb +17 -2
  45. data/lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb +39 -0
  46. data/lib/language_server/protocol/interface/color_presentation.rb +7 -6
  47. data/lib/language_server/protocol/interface/color_presentation_params.rb +20 -1
  48. data/lib/language_server/protocol/interface/completion_client_capabilities.rb +59 -0
  49. data/lib/language_server/protocol/interface/completion_context.rb +5 -3
  50. data/lib/language_server/protocol/interface/completion_item.rb +71 -29
  51. data/lib/language_server/protocol/interface/completion_list.rb +2 -2
  52. data/lib/language_server/protocol/interface/completion_options.rb +39 -9
  53. data/lib/language_server/protocol/interface/completion_params.rb +39 -3
  54. data/lib/language_server/protocol/interface/completion_registration_options.rb +41 -9
  55. data/lib/language_server/protocol/interface/create_file.rb +10 -1
  56. data/lib/language_server/protocol/interface/create_files_params.rb +37 -0
  57. data/lib/language_server/protocol/interface/declaration_client_capabilities.rb +44 -0
  58. data/lib/language_server/protocol/interface/declaration_options.rb +30 -0
  59. data/lib/language_server/protocol/interface/declaration_params.rb +61 -0
  60. data/lib/language_server/protocol/interface/declaration_registration_options.rb +50 -0
  61. data/lib/language_server/protocol/interface/definition_client_capabilities.rb +42 -0
  62. data/lib/language_server/protocol/interface/definition_options.rb +30 -0
  63. data/lib/language_server/protocol/interface/definition_params.rb +61 -0
  64. data/lib/language_server/protocol/interface/definition_registration_options.rb +40 -0
  65. data/lib/language_server/protocol/interface/delete_file.rb +10 -1
  66. data/lib/language_server/protocol/interface/delete_files_params.rb +37 -0
  67. data/lib/language_server/protocol/interface/diagnostic.rb +31 -2
  68. data/lib/language_server/protocol/interface/diagnostic_related_information.rb +3 -3
  69. data/lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb +33 -0
  70. data/lib/language_server/protocol/interface/did_change_text_document_params.rb +13 -3
  71. data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +35 -0
  72. data/lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb +1 -1
  73. data/lib/language_server/protocol/interface/document_color_client_capabilities.rb +33 -0
  74. data/lib/language_server/protocol/interface/document_color_options.rb +30 -0
  75. data/lib/language_server/protocol/interface/document_color_params.rb +52 -0
  76. data/lib/language_server/protocol/interface/document_color_registration_options.rb +50 -0
  77. data/lib/language_server/protocol/interface/document_filter.rb +7 -3
  78. data/lib/language_server/protocol/interface/document_formatting_client_capabilities.rb +33 -0
  79. data/lib/language_server/protocol/interface/document_formatting_options.rb +30 -0
  80. data/lib/language_server/protocol/interface/document_formatting_params.rb +10 -1
  81. data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +40 -0
  82. data/lib/language_server/protocol/interface/document_highlight.rb +1 -1
  83. data/lib/language_server/protocol/interface/document_highlight_client_capabilities.rb +33 -0
  84. data/lib/language_server/protocol/interface/document_highlight_options.rb +30 -0
  85. data/lib/language_server/protocol/interface/document_highlight_params.rb +61 -0
  86. data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +40 -0
  87. data/lib/language_server/protocol/interface/document_link.rb +17 -3
  88. data/lib/language_server/protocol/interface/document_link_client_capabilities.rb +42 -0
  89. data/lib/language_server/protocol/interface/document_link_options.rb +7 -4
  90. data/lib/language_server/protocol/interface/document_link_params.rb +20 -1
  91. data/lib/language_server/protocol/interface/document_link_registration_options.rb +17 -2
  92. data/lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb +33 -0
  93. data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +0 -3
  94. data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +2 -2
  95. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +10 -1
  96. data/lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb +33 -0
  97. data/lib/language_server/protocol/interface/document_range_formatting_options.rb +30 -0
  98. data/lib/language_server/protocol/interface/document_range_formatting_params.rb +10 -1
  99. data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +40 -0
  100. data/lib/language_server/protocol/interface/document_symbol.rb +108 -0
  101. data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +73 -0
  102. data/lib/language_server/protocol/interface/document_symbol_options.rb +40 -0
  103. data/lib/language_server/protocol/interface/document_symbol_params.rb +20 -1
  104. data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +50 -0
  105. data/lib/language_server/protocol/interface/execute_command_client_capabilities.rb +33 -0
  106. data/lib/language_server/protocol/interface/execute_command_options.rb +7 -4
  107. data/lib/language_server/protocol/interface/execute_command_params.rb +10 -1
  108. data/lib/language_server/protocol/interface/execute_command_registration_options.rb +7 -1
  109. data/lib/language_server/protocol/interface/file_create.rb +36 -0
  110. data/lib/language_server/protocol/interface/file_delete.rb +36 -0
  111. data/lib/language_server/protocol/interface/file_operation_filter.rb +46 -0
  112. data/lib/language_server/protocol/interface/file_operation_pattern.rb +67 -0
  113. data/lib/language_server/protocol/interface/file_operation_pattern_options.rb +36 -0
  114. data/lib/language_server/protocol/interface/file_operation_registration_options.rb +36 -0
  115. data/lib/language_server/protocol/interface/file_rename.rb +45 -0
  116. data/lib/language_server/protocol/interface/file_system_watcher.rb +7 -3
  117. data/lib/language_server/protocol/interface/folding_range.rb +17 -8
  118. data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +58 -0
  119. data/lib/language_server/protocol/interface/folding_range_options.rb +30 -0
  120. data/lib/language_server/protocol/interface/folding_range_params.rb +20 -1
  121. data/lib/language_server/protocol/interface/folding_range_registration_options.rb +50 -0
  122. data/lib/language_server/protocol/interface/formatting_options.rb +28 -1
  123. data/lib/language_server/protocol/interface/hover.rb +1 -1
  124. data/lib/language_server/protocol/interface/hover_client_capabilities.rb +44 -0
  125. data/lib/language_server/protocol/interface/hover_options.rb +30 -0
  126. data/lib/language_server/protocol/interface/hover_params.rb +51 -0
  127. data/lib/language_server/protocol/interface/hover_registration_options.rb +40 -0
  128. data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +44 -0
  129. data/lib/language_server/protocol/interface/implementation_options.rb +30 -0
  130. data/lib/language_server/protocol/interface/implementation_params.rb +61 -0
  131. data/lib/language_server/protocol/interface/implementation_registration_options.rb +50 -0
  132. data/lib/language_server/protocol/interface/initialize_params.rb +38 -7
  133. data/lib/language_server/protocol/interface/initialize_result.rb +10 -1
  134. data/lib/language_server/protocol/interface/insert_replace_edit.rb +54 -0
  135. data/lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb +36 -0
  136. data/lib/language_server/protocol/interface/linked_editing_range_options.rb +30 -0
  137. data/lib/language_server/protocol/interface/linked_editing_range_params.rb +51 -0
  138. data/lib/language_server/protocol/interface/linked_editing_range_registration_options.rb +50 -0
  139. data/lib/language_server/protocol/interface/linked_editing_ranges.rb +45 -0
  140. data/lib/language_server/protocol/interface/location_link.rb +11 -6
  141. data/lib/language_server/protocol/interface/log_message_params.rb +1 -1
  142. data/lib/language_server/protocol/interface/log_trace_params.rb +43 -0
  143. data/lib/language_server/protocol/interface/markdown_client_capabilities.rb +45 -0
  144. data/lib/language_server/protocol/interface/markup_content.rb +9 -7
  145. data/lib/language_server/protocol/interface/moniker.rb +64 -0
  146. data/lib/language_server/protocol/interface/moniker_client_capabilities.rb +36 -0
  147. data/lib/language_server/protocol/interface/moniker_options.rb +30 -0
  148. data/lib/language_server/protocol/interface/moniker_params.rb +61 -0
  149. data/lib/language_server/protocol/interface/moniker_registration_options.rb +40 -0
  150. data/lib/language_server/protocol/interface/notification_message.rb +7 -2
  151. data/lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb +50 -0
  152. data/lib/language_server/protocol/interface/parameter_information.rb +7 -5
  153. data/lib/language_server/protocol/interface/partial_result_params.rb +34 -0
  154. data/lib/language_server/protocol/interface/position.rb +5 -5
  155. data/lib/language_server/protocol/interface/prepare_rename_params.rb +42 -0
  156. data/lib/language_server/protocol/interface/progress_params.rb +42 -0
  157. data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +73 -0
  158. data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +11 -1
  159. data/lib/language_server/protocol/interface/reference_client_capabilities.rb +33 -0
  160. data/lib/language_server/protocol/interface/reference_options.rb +30 -0
  161. data/lib/language_server/protocol/interface/reference_params.rb +37 -2
  162. data/lib/language_server/protocol/interface/reference_registration_options.rb +40 -0
  163. data/lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb +45 -0
  164. data/lib/language_server/protocol/interface/rename_client_capabilities.rb +69 -0
  165. data/lib/language_server/protocol/interface/rename_file.rb +10 -1
  166. data/lib/language_server/protocol/interface/rename_files_params.rb +38 -0
  167. data/lib/language_server/protocol/interface/rename_options.rb +7 -4
  168. data/lib/language_server/protocol/interface/rename_params.rb +12 -3
  169. data/lib/language_server/protocol/interface/rename_registration_options.rb +18 -3
  170. data/lib/language_server/protocol/interface/request_message.rb +7 -2
  171. data/lib/language_server/protocol/interface/response_error.rb +2 -2
  172. data/lib/language_server/protocol/interface/response_message.rb +10 -5
  173. data/lib/language_server/protocol/interface/save_options.rb +0 -3
  174. data/lib/language_server/protocol/interface/selection_range.rb +43 -0
  175. data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +36 -0
  176. data/lib/language_server/protocol/interface/selection_range_options.rb +30 -0
  177. data/lib/language_server/protocol/interface/selection_range_params.rb +61 -0
  178. data/lib/language_server/protocol/interface/selection_range_registration_options.rb +50 -0
  179. data/lib/language_server/protocol/interface/semantic_tokens.rb +45 -0
  180. data/lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb +97 -0
  181. data/lib/language_server/protocol/interface/semantic_tokens_delta.rb +40 -0
  182. data/lib/language_server/protocol/interface/semantic_tokens_delta_params.rb +62 -0
  183. data/lib/language_server/protocol/interface/{folding_range_provider_options.rb → semantic_tokens_delta_partial_result.rb} +8 -5
  184. data/lib/language_server/protocol/interface/semantic_tokens_edit.rb +51 -0
  185. data/lib/language_server/protocol/interface/semantic_tokens_legend.rb +42 -0
  186. data/lib/language_server/protocol/interface/semantic_tokens_options.rb +58 -0
  187. data/lib/language_server/protocol/interface/semantic_tokens_params.rb +52 -0
  188. data/lib/language_server/protocol/interface/{color_provider_options.rb → semantic_tokens_partial_result.rb} +8 -5
  189. data/lib/language_server/protocol/interface/semantic_tokens_range_params.rb +61 -0
  190. data/lib/language_server/protocol/interface/semantic_tokens_registration_options.rb +78 -0
  191. data/lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb +39 -0
  192. data/lib/language_server/protocol/interface/server_capabilities.rb +108 -60
  193. data/lib/language_server/protocol/interface/set_trace_params.rb +33 -0
  194. data/lib/language_server/protocol/interface/show_document_client_capabilities.rb +37 -0
  195. data/lib/language_server/protocol/interface/show_document_params.rb +71 -0
  196. data/lib/language_server/protocol/interface/show_document_result.rb +36 -0
  197. data/lib/language_server/protocol/interface/show_message_params.rb +1 -1
  198. data/lib/language_server/protocol/interface/show_message_request_client_capabilities.rb +36 -0
  199. data/lib/language_server/protocol/interface/show_message_request_params.rb +1 -1
  200. data/lib/language_server/protocol/interface/signature_help.rb +7 -4
  201. data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +55 -0
  202. data/lib/language_server/protocol/interface/signature_help_context.rb +74 -0
  203. data/lib/language_server/protocol/interface/signature_help_options.rb +20 -4
  204. data/lib/language_server/protocol/interface/signature_help_params.rb +62 -0
  205. data/lib/language_server/protocol/interface/signature_help_registration_options.rb +30 -2
  206. data/lib/language_server/protocol/interface/signature_information.rb +12 -1
  207. data/lib/language_server/protocol/interface/symbol_information.rb +11 -2
  208. data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +11 -2
  209. data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +123 -86
  210. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +10 -6
  211. data/lib/language_server/protocol/interface/text_document_edit.rb +2 -2
  212. data/lib/language_server/protocol/interface/text_document_registration_options.rb +6 -3
  213. data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +10 -1
  214. data/lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb +62 -0
  215. data/lib/language_server/protocol/interface/text_document_sync_options.rb +14 -8
  216. data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +44 -0
  217. data/lib/language_server/protocol/interface/type_definition_options.rb +30 -0
  218. data/lib/language_server/protocol/interface/type_definition_params.rb +61 -0
  219. data/lib/language_server/protocol/interface/type_definition_registration_options.rb +50 -0
  220. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +12 -8
  221. data/lib/language_server/protocol/interface/will_save_text_document_params.rb +1 -1
  222. data/lib/language_server/protocol/interface/work_done_progress_begin.rb +80 -0
  223. data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +33 -0
  224. data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +33 -0
  225. data/lib/language_server/protocol/interface/work_done_progress_end.rb +40 -0
  226. data/lib/language_server/protocol/interface/work_done_progress_options.rb +30 -0
  227. data/lib/language_server/protocol/interface/work_done_progress_params.rb +33 -0
  228. data/lib/language_server/protocol/interface/work_done_progress_report.rb +70 -0
  229. data/lib/language_server/protocol/interface/workspace_edit.rb +25 -8
  230. data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +75 -0
  231. data/lib/language_server/protocol/interface/workspace_folder.rb +2 -2
  232. data/lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb +48 -0
  233. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +53 -0
  234. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +30 -0
  235. data/lib/language_server/protocol/interface/workspace_symbol_params.rb +22 -2
  236. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +30 -0
  237. data/lib/language_server/protocol/transport/io/reader.rb +1 -1
  238. data/lib/language_server/protocol/version.rb +1 -1
  239. metadata +154 -15
  240. data/lib/language_server/protocol/interface/workspace_client_capabilities.rb +0 -104
@@ -1,9 +1,6 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- #
5
- # Format document on type options.
6
- #
7
4
  class DocumentOnTypeFormattingOptions
8
5
  def initialize(first_trigger_character:, more_trigger_character: nil)
9
6
  @attributes = {}
@@ -14,7 +14,7 @@ module LanguageServer
14
14
  end
15
15
 
16
16
  #
17
- # The document to format.
17
+ # The text document.
18
18
  #
19
19
  # @return [TextDocumentIdentifier]
20
20
  def text_document
@@ -22,7 +22,7 @@ module LanguageServer
22
22
  end
23
23
 
24
24
  #
25
- # The position at which this request was sent.
25
+ # The position inside the text document.
26
26
  #
27
27
  # @return [Position]
28
28
  def position
@@ -1,7 +1,7 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class DocumentOnTypeFormattingRegistrationOptions < TextDocumentRegistrationOptions
4
+ class DocumentOnTypeFormattingRegistrationOptions
5
5
  def initialize(document_selector:, first_trigger_character:, more_trigger_character: nil)
6
6
  @attributes = {}
7
7
 
@@ -12,6 +12,15 @@ module LanguageServer
12
12
  @attributes.freeze
13
13
  end
14
14
 
15
+ #
16
+ # A document selector to identify the scope of the registration. If set to
17
+ # null the document selector provided on the client side will be used.
18
+ #
19
+ # @return [DocumentSelector]
20
+ def document_selector
21
+ attributes.fetch(:documentSelector)
22
+ end
23
+
15
24
  #
16
25
  # A character on which formatting should be triggered, like `}`.
17
26
  #
@@ -0,0 +1,33 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class DocumentRangeFormattingClientCapabilities
5
+ def initialize(dynamic_registration: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # Whether formatting supports dynamic registration.
15
+ #
16
+ # @return [boolean]
17
+ def dynamic_registration
18
+ attributes.fetch(:dynamicRegistration)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_hash
24
+ attributes
25
+ end
26
+
27
+ def to_json(*args)
28
+ to_hash.to_json(*args)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,30 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class DocumentRangeFormattingOptions
5
+ def initialize(work_done_progress: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ # @return [boolean]
14
+ def work_done_progress
15
+ attributes.fetch(:workDoneProgress)
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
@@ -2,9 +2,10 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  class DocumentRangeFormattingParams
5
- def initialize(text_document:, range:, options:)
5
+ def initialize(work_done_token: nil, text_document:, range:, options:)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:workDoneToken] = work_done_token if work_done_token
8
9
  @attributes[:textDocument] = text_document
9
10
  @attributes[:range] = range
10
11
  @attributes[:options] = options
@@ -12,6 +13,14 @@ 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
+
15
24
  #
16
25
  # The document to format.
17
26
  #
@@ -0,0 +1,40 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class DocumentRangeFormattingRegistrationOptions
5
+ def initialize(document_selector:, work_done_progress: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:documentSelector] = document_selector
9
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # A document selector to identify the scope of the registration. If set to
16
+ # null the document selector provided on the client side will be used.
17
+ #
18
+ # @return [DocumentSelector]
19
+ def document_selector
20
+ attributes.fetch(:documentSelector)
21
+ end
22
+
23
+ # @return [boolean]
24
+ def work_done_progress
25
+ attributes.fetch(:workDoneProgress)
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,108 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Represents programming constructs like variables, classes, interfaces etc.
6
+ # that appear in a document. Document symbols can be hierarchical and they
7
+ # have two ranges: one that encloses its definition and one that points to its
8
+ # most interesting range, e.g. the range of an identifier.
9
+ #
10
+ class DocumentSymbol
11
+ def initialize(name:, detail: nil, kind:, tags: nil, deprecated: nil, range:, selection_range:, children: nil)
12
+ @attributes = {}
13
+
14
+ @attributes[:name] = name
15
+ @attributes[:detail] = detail if detail
16
+ @attributes[:kind] = kind
17
+ @attributes[:tags] = tags if tags
18
+ @attributes[:deprecated] = deprecated if deprecated
19
+ @attributes[:range] = range
20
+ @attributes[:selectionRange] = selection_range
21
+ @attributes[:children] = children if children
22
+
23
+ @attributes.freeze
24
+ end
25
+
26
+ #
27
+ # The name of this symbol. Will be displayed in the user interface and
28
+ # therefore must not be an empty string or a string only consisting of
29
+ # white spaces.
30
+ #
31
+ # @return [string]
32
+ def name
33
+ attributes.fetch(:name)
34
+ end
35
+
36
+ #
37
+ # More detail for this symbol, e.g the signature of a function.
38
+ #
39
+ # @return [string]
40
+ def detail
41
+ attributes.fetch(:detail)
42
+ end
43
+
44
+ #
45
+ # The kind of this symbol.
46
+ #
47
+ # @return [any]
48
+ def kind
49
+ attributes.fetch(:kind)
50
+ end
51
+
52
+ #
53
+ # Tags for this document symbol.
54
+ #
55
+ # @return [1[]]
56
+ def tags
57
+ attributes.fetch(:tags)
58
+ end
59
+
60
+ #
61
+ # Indicates if this symbol is deprecated.
62
+ #
63
+ # @return [boolean]
64
+ def deprecated
65
+ attributes.fetch(:deprecated)
66
+ end
67
+
68
+ #
69
+ # The range enclosing this symbol not including leading/trailing whitespace
70
+ # but everything else like comments. This information is typically used to
71
+ # determine if the clients cursor is inside the symbol to reveal in the
72
+ # symbol in the UI.
73
+ #
74
+ # @return [Range]
75
+ def range
76
+ attributes.fetch(:range)
77
+ end
78
+
79
+ #
80
+ # The range that should be selected and revealed when this symbol is being
81
+ # picked, e.g. the name of a function. Must be contained by the `range`.
82
+ #
83
+ # @return [Range]
84
+ def selection_range
85
+ attributes.fetch(:selectionRange)
86
+ end
87
+
88
+ #
89
+ # Children of this symbol, e.g. properties of a class.
90
+ #
91
+ # @return [DocumentSymbol[]]
92
+ def children
93
+ attributes.fetch(:children)
94
+ end
95
+
96
+ attr_reader :attributes
97
+
98
+ def to_hash
99
+ attributes
100
+ end
101
+
102
+ def to_json(*args)
103
+ to_hash.to_json(*args)
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,73 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class DocumentSymbolClientCapabilities
5
+ def initialize(dynamic_registration: nil, symbol_kind: nil, hierarchical_document_symbol_support: nil, tag_support: nil, label_support: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+ @attributes[:symbolKind] = symbol_kind if symbol_kind
10
+ @attributes[:hierarchicalDocumentSymbolSupport] = hierarchical_document_symbol_support if hierarchical_document_symbol_support
11
+ @attributes[:tagSupport] = tag_support if tag_support
12
+ @attributes[:labelSupport] = label_support if label_support
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # Whether document symbol supports dynamic registration.
19
+ #
20
+ # @return [boolean]
21
+ def dynamic_registration
22
+ attributes.fetch(:dynamicRegistration)
23
+ end
24
+
25
+ #
26
+ # Specific capabilities for the `SymbolKind` in the
27
+ # `textDocument/documentSymbol` request.
28
+ #
29
+ # @return [{ valueSet?: any[]; }]
30
+ def symbol_kind
31
+ attributes.fetch(:symbolKind)
32
+ end
33
+
34
+ #
35
+ # The client supports hierarchical document symbols.
36
+ #
37
+ # @return [boolean]
38
+ def hierarchical_document_symbol_support
39
+ attributes.fetch(:hierarchicalDocumentSymbolSupport)
40
+ end
41
+
42
+ #
43
+ # The client supports tags on `SymbolInformation`. Tags are supported on
44
+ # `DocumentSymbol` if `hierarchicalDocumentSymbolSupport` is set to true.
45
+ # Clients supporting tags have to handle unknown tags gracefully.
46
+ #
47
+ # @return [{ valueSet: 1[]; }]
48
+ def tag_support
49
+ attributes.fetch(:tagSupport)
50
+ end
51
+
52
+ #
53
+ # The client supports an additional label presented in the UI when
54
+ # registering a document symbol provider.
55
+ #
56
+ # @return [boolean]
57
+ def label_support
58
+ attributes.fetch(:labelSupport)
59
+ end
60
+
61
+ attr_reader :attributes
62
+
63
+ def to_hash
64
+ attributes
65
+ end
66
+
67
+ def to_json(*args)
68
+ to_hash.to_json(*args)
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,40 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class DocumentSymbolOptions
5
+ def initialize(work_done_progress: nil, label: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
9
+ @attributes[:label] = label if label
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ # @return [boolean]
15
+ def work_done_progress
16
+ attributes.fetch(:workDoneProgress)
17
+ end
18
+
19
+ #
20
+ # A human-readable string that is shown when multiple outlines trees
21
+ # are shown for the same document.
22
+ #
23
+ # @return [string]
24
+ def label
25
+ attributes.fetch(:label)
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
@@ -2,14 +2,33 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  class DocumentSymbolParams
5
- def initialize(text_document:)
5
+ def initialize(work_done_token: nil, partial_result_token: nil, text_document:)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:workDoneToken] = work_done_token if work_done_token
9
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
8
10
  @attributes[:textDocument] = text_document
9
11
 
10
12
  @attributes.freeze
11
13
  end
12
14
 
15
+ #
16
+ # An optional token that a server can use to report work done progress.
17
+ #
18
+ # @return [ProgressToken]
19
+ def work_done_token
20
+ attributes.fetch(:workDoneToken)
21
+ end
22
+
23
+ #
24
+ # An optional token that a server can use to report partial results (e.g.
25
+ # streaming) to the client.
26
+ #
27
+ # @return [ProgressToken]
28
+ def partial_result_token
29
+ attributes.fetch(:partialResultToken)
30
+ end
31
+
13
32
  #
14
33
  # The text document.
15
34
  #