language_server-protocol 3.16.0.1 → 3.17.0.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 (358) hide show
  1. checksums.yaml +4 -4
  2. data/lib/language_server/protocol/constant/code_action_kind.rb +25 -24
  3. data/lib/language_server/protocol/constant/code_action_trigger_kind.rb +24 -0
  4. data/lib/language_server/protocol/constant/completion_item_tag.rb +4 -2
  5. data/lib/language_server/protocol/constant/completion_trigger_kind.rb +2 -3
  6. data/lib/language_server/protocol/constant/diagnostic_severity.rb +3 -0
  7. data/lib/language_server/protocol/constant/diagnostic_tag.rb +4 -2
  8. data/lib/language_server/protocol/constant/error_codes.rb +19 -14
  9. data/lib/language_server/protocol/constant/failure_handling_kind.rb +9 -10
  10. data/lib/language_server/protocol/constant/file_change_type.rb +1 -1
  11. data/lib/language_server/protocol/constant/file_operation_pattern_kind.rb +4 -2
  12. data/lib/language_server/protocol/constant/folding_range_kind.rb +23 -0
  13. data/lib/language_server/protocol/constant/inlay_hint_kind.rb +21 -0
  14. data/lib/language_server/protocol/constant/insert_text_format.rb +2 -0
  15. data/lib/language_server/protocol/constant/insert_text_mode.rb +2 -0
  16. data/lib/language_server/protocol/constant/lsp_error_codes.rb +55 -0
  17. data/lib/language_server/protocol/constant/markup_kind.rb +2 -2
  18. data/lib/language_server/protocol/constant/message_type.rb +3 -0
  19. data/lib/language_server/protocol/constant/moniker_kind.rb +26 -0
  20. data/lib/language_server/protocol/constant/notebook_cell_kind.rb +21 -0
  21. data/lib/language_server/protocol/constant/position_encoding_kind.rb +32 -0
  22. data/lib/language_server/protocol/constant/resource_operation_kind.rb +3 -6
  23. data/lib/language_server/protocol/constant/semantic_token_modifiers.rb +25 -0
  24. data/lib/language_server/protocol/constant/semantic_token_types.rb +45 -0
  25. data/lib/language_server/protocol/constant/signature_help_trigger_kind.rb +3 -2
  26. data/lib/language_server/protocol/constant/symbol_tag.rb +2 -0
  27. data/lib/language_server/protocol/constant/text_document_save_reason.rb +2 -2
  28. data/lib/language_server/protocol/constant/text_document_sync_kind.rb +3 -3
  29. data/lib/language_server/protocol/constant/token_format.rb +1 -1
  30. data/lib/language_server/protocol/constant/trace_values.rb +20 -0
  31. data/lib/language_server/protocol/constant/uniqueness_level.rb +33 -0
  32. data/lib/language_server/protocol/constant.rb +22 -4
  33. data/lib/language_server/protocol/interface/annotated_text_edit.rb +12 -10
  34. data/lib/language_server/protocol/interface/apply_workspace_edit_params.rb +4 -1
  35. data/lib/language_server/protocol/interface/{apply_workspace_edit_response.rb → apply_workspace_edit_result.rb} +11 -7
  36. data/lib/language_server/protocol/interface/base_symbol_information.rb +68 -0
  37. data/lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb +7 -5
  38. data/lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb +5 -0
  39. data/lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb +16 -11
  40. data/lib/language_server/protocol/interface/call_hierarchy_item.rb +14 -10
  41. data/lib/language_server/protocol/interface/call_hierarchy_options.rb +6 -1
  42. data/lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb +8 -2
  43. data/lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb +16 -11
  44. data/lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb +6 -1
  45. data/lib/language_server/protocol/interface/call_hierarchy_registration_options.rb +10 -5
  46. data/lib/language_server/protocol/interface/cancel_params.rb +1 -1
  47. data/lib/language_server/protocol/interface/change_annotation.rb +4 -2
  48. data/lib/language_server/protocol/interface/client_capabilities.rb +22 -6
  49. data/lib/language_server/protocol/interface/code_action.rb +28 -26
  50. data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +25 -9
  51. data/lib/language_server/protocol/interface/code_action_context.rb +20 -10
  52. data/lib/language_server/protocol/interface/code_action_options.rb +16 -11
  53. data/lib/language_server/protocol/interface/code_action_params.rb +21 -21
  54. data/lib/language_server/protocol/interface/code_action_registration_options.rb +19 -14
  55. data/lib/language_server/protocol/interface/code_description.rb +3 -1
  56. data/lib/language_server/protocol/interface/code_lens.rb +8 -9
  57. data/lib/language_server/protocol/interface/code_lens_client_capabilities.rb +4 -1
  58. data/lib/language_server/protocol/interface/code_lens_options.rb +11 -8
  59. data/lib/language_server/protocol/interface/code_lens_params.rb +17 -14
  60. data/lib/language_server/protocol/interface/code_lens_registration_options.rb +14 -11
  61. data/lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb +4 -1
  62. data/lib/language_server/protocol/interface/color.rb +4 -4
  63. data/lib/language_server/protocol/interface/color_information.rb +3 -0
  64. data/lib/language_server/protocol/interface/color_presentation.rb +8 -9
  65. data/lib/language_server/protocol/interface/color_presentation_params.rb +24 -21
  66. data/lib/language_server/protocol/interface/command.rb +7 -1
  67. data/lib/language_server/protocol/interface/completion_client_capabilities.rb +33 -5
  68. data/lib/language_server/protocol/interface/completion_context.rb +4 -6
  69. data/lib/language_server/protocol/interface/completion_item.rb +92 -49
  70. data/lib/language_server/protocol/interface/completion_item_label_details.rb +49 -0
  71. data/lib/language_server/protocol/interface/completion_list.rb +28 -5
  72. data/lib/language_server/protocol/interface/completion_options.rb +36 -25
  73. data/lib/language_server/protocol/interface/completion_params.rb +18 -16
  74. data/lib/language_server/protocol/interface/completion_registration_options.rb +42 -28
  75. data/lib/language_server/protocol/interface/configuration_item.rb +2 -2
  76. data/lib/language_server/protocol/interface/configuration_params.rb +3 -0
  77. data/lib/language_server/protocol/interface/create_file.rb +7 -5
  78. data/lib/language_server/protocol/interface/create_file_options.rb +2 -2
  79. data/lib/language_server/protocol/interface/create_files_params.rb +4 -2
  80. data/lib/language_server/protocol/interface/declaration_client_capabilities.rb +8 -5
  81. data/lib/language_server/protocol/interface/declaration_options.rb +1 -1
  82. data/lib/language_server/protocol/interface/declaration_params.rb +4 -4
  83. data/lib/language_server/protocol/interface/declaration_registration_options.rb +5 -5
  84. data/lib/language_server/protocol/interface/definition_client_capabilities.rb +7 -2
  85. data/lib/language_server/protocol/interface/definition_options.rb +4 -1
  86. data/lib/language_server/protocol/interface/definition_params.rb +7 -4
  87. data/lib/language_server/protocol/interface/definition_registration_options.rb +7 -4
  88. data/lib/language_server/protocol/interface/delete_file.rb +6 -4
  89. data/lib/language_server/protocol/interface/delete_file_options.rb +2 -2
  90. data/lib/language_server/protocol/interface/delete_files_params.rb +4 -2
  91. data/lib/language_server/protocol/interface/diagnostic.rb +25 -14
  92. data/lib/language_server/protocol/interface/diagnostic_client_capabilities.rb +49 -0
  93. data/lib/language_server/protocol/interface/diagnostic_options.rb +66 -0
  94. data/lib/language_server/protocol/interface/diagnostic_registration_options.rb +86 -0
  95. data/lib/language_server/protocol/interface/diagnostic_related_information.rb +3 -3
  96. data/lib/language_server/protocol/interface/diagnostic_server_cancellation_data.rb +35 -0
  97. data/lib/language_server/protocol/interface/diagnostic_workspace_client_capabilities.rb +44 -0
  98. data/lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb +1 -1
  99. data/lib/language_server/protocol/interface/did_change_configuration_params.rb +4 -1
  100. data/lib/language_server/protocol/interface/did_change_configuration_registration_options.rb +30 -0
  101. data/lib/language_server/protocol/interface/did_change_notebook_document_params.rb +62 -0
  102. data/lib/language_server/protocol/interface/did_change_text_document_params.rb +12 -11
  103. data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +17 -5
  104. data/lib/language_server/protocol/interface/did_change_watched_files_params.rb +3 -0
  105. data/lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb +1 -1
  106. data/lib/language_server/protocol/interface/did_change_workspace_folders_params.rb +3 -0
  107. data/lib/language_server/protocol/interface/did_close_notebook_document_params.rb +48 -0
  108. data/lib/language_server/protocol/interface/did_close_text_document_params.rb +3 -0
  109. data/lib/language_server/protocol/interface/did_open_notebook_document_params.rb +48 -0
  110. data/lib/language_server/protocol/interface/did_open_text_document_params.rb +3 -0
  111. data/lib/language_server/protocol/interface/did_save_notebook_document_params.rb +38 -0
  112. data/lib/language_server/protocol/interface/did_save_text_document_params.rb +4 -1
  113. data/lib/language_server/protocol/interface/document_color_client_capabilities.rb +4 -2
  114. data/lib/language_server/protocol/interface/document_color_options.rb +1 -1
  115. data/lib/language_server/protocol/interface/document_color_params.rb +17 -14
  116. data/lib/language_server/protocol/interface/document_color_registration_options.rb +11 -11
  117. data/lib/language_server/protocol/interface/document_diagnostic_params.rb +75 -0
  118. data/lib/language_server/protocol/interface/document_diagnostic_report.rb +77 -0
  119. data/lib/language_server/protocol/interface/document_diagnostic_report_partial_result.rb +35 -0
  120. data/lib/language_server/protocol/interface/document_filter.rb +25 -19
  121. data/lib/language_server/protocol/interface/document_formatting_client_capabilities.rb +4 -1
  122. data/lib/language_server/protocol/interface/document_formatting_options.rb +4 -1
  123. data/lib/language_server/protocol/interface/document_formatting_params.rb +13 -10
  124. data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +7 -4
  125. data/lib/language_server/protocol/interface/document_highlight.rb +2 -2
  126. data/lib/language_server/protocol/interface/document_highlight_client_capabilities.rb +4 -1
  127. data/lib/language_server/protocol/interface/document_highlight_options.rb +4 -1
  128. data/lib/language_server/protocol/interface/document_highlight_params.rb +7 -4
  129. data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +7 -4
  130. data/lib/language_server/protocol/interface/document_link.rb +10 -9
  131. data/lib/language_server/protocol/interface/document_link_client_capabilities.rb +7 -2
  132. data/lib/language_server/protocol/interface/document_link_options.rb +11 -8
  133. data/lib/language_server/protocol/interface/document_link_params.rb +17 -14
  134. data/lib/language_server/protocol/interface/document_link_registration_options.rb +14 -11
  135. data/lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb +4 -1
  136. data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +5 -2
  137. data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +12 -4
  138. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +8 -5
  139. data/lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb +5 -2
  140. data/lib/language_server/protocol/interface/document_range_formatting_options.rb +4 -1
  141. data/lib/language_server/protocol/interface/document_range_formatting_params.rb +13 -10
  142. data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +7 -4
  143. data/lib/language_server/protocol/interface/document_symbol.rb +18 -16
  144. data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +12 -5
  145. data/lib/language_server/protocol/interface/document_symbol_options.rb +13 -8
  146. data/lib/language_server/protocol/interface/document_symbol_params.rb +17 -14
  147. data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +16 -11
  148. data/lib/language_server/protocol/interface/execute_command_client_capabilities.rb +4 -1
  149. data/lib/language_server/protocol/interface/execute_command_options.rb +10 -7
  150. data/lib/language_server/protocol/interface/execute_command_params.rb +14 -11
  151. data/lib/language_server/protocol/interface/execute_command_registration_options.rb +8 -8
  152. data/lib/language_server/protocol/interface/execution_summary.rb +45 -0
  153. data/lib/language_server/protocol/interface/file_create.rb +2 -0
  154. data/lib/language_server/protocol/interface/file_delete.rb +2 -0
  155. data/lib/language_server/protocol/interface/file_event.rb +3 -3
  156. data/lib/language_server/protocol/interface/file_operation_client_capabilities.rb +95 -0
  157. data/lib/language_server/protocol/interface/file_operation_filter.rb +5 -3
  158. data/lib/language_server/protocol/interface/file_operation_options.rb +83 -0
  159. data/lib/language_server/protocol/interface/file_operation_pattern.rb +8 -10
  160. data/lib/language_server/protocol/interface/file_operation_pattern_options.rb +3 -1
  161. data/lib/language_server/protocol/interface/file_operation_registration_options.rb +2 -0
  162. data/lib/language_server/protocol/interface/file_rename.rb +2 -0
  163. data/lib/language_server/protocol/interface/file_system_watcher.rb +4 -14
  164. data/lib/language_server/protocol/interface/folding_range.rb +30 -23
  165. data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +26 -4
  166. data/lib/language_server/protocol/interface/folding_range_options.rb +1 -1
  167. data/lib/language_server/protocol/interface/folding_range_params.rb +17 -14
  168. data/lib/language_server/protocol/interface/folding_range_registration_options.rb +5 -5
  169. data/lib/language_server/protocol/interface/formatting_options.rb +10 -4
  170. data/lib/language_server/protocol/interface/full_document_diagnostic_report.rb +58 -0
  171. data/lib/language_server/protocol/interface/general_client_capabilities.rb +91 -0
  172. data/lib/language_server/protocol/interface/glob_pattern.rb +48 -0
  173. data/lib/language_server/protocol/interface/hover.rb +3 -3
  174. data/lib/language_server/protocol/interface/hover_client_capabilities.rb +4 -5
  175. data/lib/language_server/protocol/interface/hover_options.rb +4 -1
  176. data/lib/language_server/protocol/interface/hover_params.rb +4 -1
  177. data/lib/language_server/protocol/interface/hover_registration_options.rb +7 -4
  178. data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +10 -5
  179. data/lib/language_server/protocol/interface/implementation_options.rb +1 -1
  180. data/lib/language_server/protocol/interface/implementation_params.rb +4 -4
  181. data/lib/language_server/protocol/interface/implementation_registration_options.rb +5 -5
  182. data/lib/language_server/protocol/interface/initialize_error.rb +2 -1
  183. data/lib/language_server/protocol/interface/initialize_params.rb +41 -29
  184. data/lib/language_server/protocol/interface/initialize_result.rb +6 -1
  185. data/lib/language_server/protocol/interface/inlay_hint.rb +118 -0
  186. data/lib/language_server/protocol/interface/inlay_hint_client_capabilities.rb +48 -0
  187. data/lib/language_server/protocol/interface/inlay_hint_label_part.rb +81 -0
  188. data/lib/language_server/protocol/interface/inlay_hint_options.rb +45 -0
  189. data/lib/language_server/protocol/interface/inlay_hint_params.rb +56 -0
  190. data/lib/language_server/protocol/interface/inlay_hint_registration_options.rb +65 -0
  191. data/lib/language_server/protocol/interface/inlay_hint_workspace_client_capabilities.rb +44 -0
  192. data/lib/language_server/protocol/interface/inline_value.rb +78 -0
  193. data/lib/language_server/protocol/interface/inline_value_client_capabilities.rb +38 -0
  194. data/lib/language_server/protocol/interface/inline_value_context.rb +46 -0
  195. data/lib/language_server/protocol/interface/inline_value_evaluatable_expression.rb +50 -0
  196. data/lib/language_server/protocol/interface/inline_value_options.rb +35 -0
  197. data/lib/language_server/protocol/interface/inline_value_params.rb +66 -0
  198. data/lib/language_server/protocol/interface/inline_value_registration_options.rb +55 -0
  199. data/lib/language_server/protocol/interface/inline_value_text.rb +47 -0
  200. data/lib/language_server/protocol/interface/inline_value_variable_lookup.rb +59 -0
  201. data/lib/language_server/protocol/interface/inline_value_workspace_client_capabilities.rb +44 -0
  202. data/lib/language_server/protocol/interface/insert_replace_edit.rb +2 -0
  203. data/lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb +8 -4
  204. data/lib/language_server/protocol/interface/linked_editing_range_options.rb +1 -1
  205. data/lib/language_server/protocol/interface/linked_editing_range_params.rb +1 -1
  206. data/lib/language_server/protocol/interface/linked_editing_range_registration_options.rb +5 -5
  207. data/lib/language_server/protocol/interface/linked_editing_ranges.rb +7 -2
  208. data/lib/language_server/protocol/interface/location.rb +5 -1
  209. data/lib/language_server/protocol/interface/location_link.rb +13 -11
  210. data/lib/language_server/protocol/interface/log_message_params.rb +4 -1
  211. data/lib/language_server/protocol/interface/log_trace_params.rb +1 -8
  212. data/lib/language_server/protocol/interface/{message.rb → lsp_object.rb} +6 -8
  213. data/lib/language_server/protocol/interface/markdown_client_capabilities.rb +16 -2
  214. data/lib/language_server/protocol/interface/markup_content.rb +16 -18
  215. data/lib/language_server/protocol/interface/moniker.rb +3 -1
  216. data/lib/language_server/protocol/interface/moniker_client_capabilities.rb +9 -5
  217. data/lib/language_server/protocol/interface/moniker_options.rb +1 -1
  218. data/lib/language_server/protocol/interface/moniker_params.rb +4 -4
  219. data/lib/language_server/protocol/interface/moniker_registration_options.rb +4 -4
  220. data/lib/language_server/protocol/interface/notebook_cell.rb +73 -0
  221. data/lib/language_server/protocol/interface/notebook_cell_array_change.rb +57 -0
  222. data/lib/language_server/protocol/interface/notebook_cell_text_document_filter.rb +54 -0
  223. data/lib/language_server/protocol/interface/notebook_document.rb +78 -0
  224. data/lib/language_server/protocol/interface/notebook_document_change_event.rb +49 -0
  225. data/lib/language_server/protocol/interface/notebook_document_client_capabilities.rb +40 -0
  226. data/lib/language_server/protocol/interface/notebook_document_filter.rb +58 -0
  227. data/lib/language_server/protocol/interface/notebook_document_identifier.rb +38 -0
  228. data/lib/language_server/protocol/interface/notebook_document_sync_client_capabilities.rb +50 -0
  229. data/lib/language_server/protocol/interface/notebook_document_sync_options.rb +58 -0
  230. data/lib/language_server/protocol/interface/notebook_document_sync_registration_options.rb +58 -0
  231. data/lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb +17 -18
  232. data/lib/language_server/protocol/interface/parameter_information.rb +7 -9
  233. data/lib/language_server/protocol/interface/partial_result_params.rb +3 -3
  234. data/lib/language_server/protocol/interface/position.rb +40 -7
  235. data/lib/language_server/protocol/interface/prepare_rename_params.rb +10 -1
  236. data/lib/language_server/protocol/interface/prepare_rename_result.rb +60 -0
  237. data/lib/language_server/protocol/interface/previous_result_id.rb +48 -0
  238. data/lib/language_server/protocol/interface/progress_params.rb +1 -1
  239. data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +16 -5
  240. data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +8 -4
  241. data/lib/language_server/protocol/interface/range.rb +13 -0
  242. data/lib/language_server/protocol/interface/reference_client_capabilities.rb +4 -1
  243. data/lib/language_server/protocol/interface/reference_context.rb +4 -0
  244. data/lib/language_server/protocol/interface/reference_options.rb +4 -1
  245. data/lib/language_server/protocol/interface/reference_params.rb +14 -11
  246. data/lib/language_server/protocol/interface/reference_registration_options.rb +7 -4
  247. data/lib/language_server/protocol/interface/registration.rb +2 -2
  248. data/lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb +3 -1
  249. data/lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb +73 -0
  250. data/lib/language_server/protocol/interface/related_unchanged_document_diagnostic_report.rb +66 -0
  251. data/lib/language_server/protocol/interface/relative_pattern.rb +50 -0
  252. data/lib/language_server/protocol/interface/rename_client_capabilities.rb +12 -7
  253. data/lib/language_server/protocol/interface/rename_file.rb +7 -5
  254. data/lib/language_server/protocol/interface/rename_file_options.rb +2 -2
  255. data/lib/language_server/protocol/interface/rename_files_params.rb +6 -4
  256. data/lib/language_server/protocol/interface/rename_options.rb +13 -8
  257. data/lib/language_server/protocol/interface/rename_params.rb +15 -12
  258. data/lib/language_server/protocol/interface/rename_registration_options.rb +16 -11
  259. data/lib/language_server/protocol/interface/resource_operation.rb +47 -0
  260. data/lib/language_server/protocol/interface/save_options.rb +4 -1
  261. data/lib/language_server/protocol/interface/selection_range.rb +6 -3
  262. data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +4 -5
  263. data/lib/language_server/protocol/interface/selection_range_options.rb +1 -1
  264. data/lib/language_server/protocol/interface/selection_range_params.rb +23 -20
  265. data/lib/language_server/protocol/interface/selection_range_registration_options.rb +5 -5
  266. data/lib/language_server/protocol/interface/semantic_tokens.rb +5 -2
  267. data/lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb +45 -11
  268. data/lib/language_server/protocol/interface/semantic_tokens_delta.rb +5 -3
  269. data/lib/language_server/protocol/interface/semantic_tokens_delta_params.rb +24 -21
  270. data/lib/language_server/protocol/interface/semantic_tokens_delta_partial_result.rb +3 -0
  271. data/lib/language_server/protocol/interface/semantic_tokens_edit.rb +6 -3
  272. data/lib/language_server/protocol/interface/semantic_tokens_legend.rb +3 -0
  273. data/lib/language_server/protocol/interface/semantic_tokens_options.rb +12 -9
  274. data/lib/language_server/protocol/interface/semantic_tokens_params.rb +17 -14
  275. data/lib/language_server/protocol/interface/semantic_tokens_partial_result.rb +4 -1
  276. data/lib/language_server/protocol/interface/semantic_tokens_range_params.rb +23 -20
  277. data/lib/language_server/protocol/interface/semantic_tokens_registration_options.rb +16 -13
  278. data/lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb +5 -2
  279. data/lib/language_server/protocol/interface/server_capabilities.rb +139 -56
  280. data/lib/language_server/protocol/interface/set_trace_params.rb +1 -4
  281. data/lib/language_server/protocol/interface/show_document_client_capabilities.rb +4 -2
  282. data/lib/language_server/protocol/interface/show_document_params.rb +6 -4
  283. data/lib/language_server/protocol/interface/show_document_result.rb +3 -1
  284. data/lib/language_server/protocol/interface/show_message_params.rb +4 -1
  285. data/lib/language_server/protocol/interface/show_message_request_client_capabilities.rb +1 -1
  286. data/lib/language_server/protocol/interface/show_message_request_params.rb +2 -2
  287. data/lib/language_server/protocol/interface/signature_help.rb +3 -4
  288. data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +8 -3
  289. data/lib/language_server/protocol/interface/signature_help_context.rb +10 -11
  290. data/lib/language_server/protocol/interface/signature_help_options.rb +17 -14
  291. data/lib/language_server/protocol/interface/signature_help_params.rb +17 -13
  292. data/lib/language_server/protocol/interface/signature_help_registration_options.rb +20 -17
  293. data/lib/language_server/protocol/interface/signature_information.rb +5 -3
  294. data/lib/language_server/protocol/interface/static_registration_options.rb +3 -2
  295. data/lib/language_server/protocol/interface/symbol_information.rb +34 -30
  296. data/lib/language_server/protocol/interface/t.rb +24 -0
  297. data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +12 -13
  298. data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +108 -43
  299. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +8 -10
  300. data/lib/language_server/protocol/interface/text_document_edit.rb +10 -1
  301. data/lib/language_server/protocol/interface/text_document_filter.rb +69 -0
  302. data/lib/language_server/protocol/interface/text_document_identifier.rb +5 -2
  303. data/lib/language_server/protocol/interface/text_document_item.rb +7 -3
  304. data/lib/language_server/protocol/interface/text_document_position_params.rb +4 -0
  305. data/lib/language_server/protocol/interface/text_document_registration_options.rb +3 -3
  306. data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +7 -4
  307. data/lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb +4 -4
  308. data/lib/language_server/protocol/interface/text_document_sync_options.rb +15 -17
  309. data/lib/language_server/protocol/interface/text_edit.rb +3 -0
  310. data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +10 -5
  311. data/lib/language_server/protocol/interface/type_definition_options.rb +1 -1
  312. data/lib/language_server/protocol/interface/type_definition_params.rb +4 -4
  313. data/lib/language_server/protocol/interface/type_definition_registration_options.rb +5 -5
  314. data/lib/language_server/protocol/interface/type_hierarchy_client_capabilities.rb +38 -0
  315. data/lib/language_server/protocol/interface/type_hierarchy_item.rb +105 -0
  316. data/lib/language_server/protocol/interface/type_hierarchy_options.rb +35 -0
  317. data/lib/language_server/protocol/interface/type_hierarchy_prepare_params.rb +56 -0
  318. data/lib/language_server/protocol/interface/type_hierarchy_registration_options.rb +55 -0
  319. data/lib/language_server/protocol/interface/type_hierarchy_subtypes_params.rb +54 -0
  320. data/lib/language_server/protocol/interface/type_hierarchy_supertypes_params.rb +54 -0
  321. data/lib/language_server/protocol/interface/unchanged_document_diagnostic_report.rb +52 -0
  322. data/lib/language_server/protocol/interface/unregistration.rb +2 -2
  323. data/lib/language_server/protocol/interface/versioned_notebook_document_identifier.rb +47 -0
  324. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +13 -13
  325. data/lib/language_server/protocol/interface/will_save_text_document_params.rb +1 -1
  326. data/lib/language_server/protocol/interface/window_client_capabilities.rb +63 -0
  327. data/lib/language_server/protocol/interface/work_done_progress_begin.rb +6 -6
  328. data/lib/language_server/protocol/interface/work_done_progress_end.rb +1 -1
  329. data/lib/language_server/protocol/interface/work_done_progress_options.rb +1 -1
  330. data/lib/language_server/protocol/interface/work_done_progress_params.rb +1 -1
  331. data/lib/language_server/protocol/interface/work_done_progress_report.rb +6 -7
  332. data/lib/language_server/protocol/interface/workspace_client_capabilities.rb +176 -0
  333. data/lib/language_server/protocol/interface/workspace_diagnostic_params.rb +67 -0
  334. data/lib/language_server/protocol/interface/workspace_diagnostic_report.rb +35 -0
  335. data/lib/language_server/protocol/interface/workspace_diagnostic_report_partial_result.rb +35 -0
  336. data/lib/language_server/protocol/interface/workspace_document_diagnostic_report.rb +77 -0
  337. data/lib/language_server/protocol/interface/workspace_edit.rb +28 -17
  338. data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +15 -6
  339. data/lib/language_server/protocol/interface/workspace_folder.rb +4 -1
  340. data/lib/language_server/protocol/interface/workspace_folders_initialize_params.rb +39 -0
  341. data/lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb +3 -3
  342. data/lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb +77 -0
  343. data/lib/language_server/protocol/interface/workspace_symbol.rb +95 -0
  344. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +23 -6
  345. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +17 -2
  346. data/lib/language_server/protocol/interface/workspace_symbol_params.rb +16 -16
  347. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +17 -2
  348. data/lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb +70 -0
  349. data/lib/language_server/protocol/interface.rb +156 -14
  350. data/lib/language_server/protocol/transport/io/reader.rb +8 -24
  351. data/lib/language_server/protocol/transport/io/writer.rb +1 -0
  352. data/lib/language_server/protocol/version.rb +1 -1
  353. metadata +92 -24
  354. data/lib/language_server/protocol/constant/initialize_error.rb +0 -16
  355. data/lib/language_server/protocol/interface/notification_message.rb +0 -48
  356. data/lib/language_server/protocol/interface/request_message.rb +0 -57
  357. data/lib/language_server/protocol/interface/response_error.rb +0 -52
  358. data/lib/language_server/protocol/interface/response_message.rb +0 -58
@@ -1,33 +1,33 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
+ #
5
+ # A text document identifier to denote a specific version of a text document.
6
+ #
4
7
  class VersionedTextDocumentIdentifier
5
- def initialize(uri:, version:)
8
+ def initialize(version:, uri:)
6
9
  @attributes = {}
7
10
 
8
- @attributes[:uri] = uri
9
11
  @attributes[:version] = version
12
+ @attributes[:uri] = uri
10
13
 
11
14
  @attributes.freeze
12
15
  end
13
16
 
14
17
  #
15
- # The text document's URI.
18
+ # The version number of this document.
16
19
  #
17
- # @return [string]
18
- def uri
19
- attributes.fetch(:uri)
20
+ # @return [integer]
21
+ def version
22
+ attributes.fetch(:version)
20
23
  end
21
24
 
22
25
  #
23
- # The version number of this document.
24
- #
25
- # The version number of a document will increase after each change,
26
- # including undo/redo. The number doesn't need to be consecutive.
26
+ # The text document's uri.
27
27
  #
28
- # @return [number]
29
- def version
30
- attributes.fetch(:version)
28
+ # @return [DocumentUri]
29
+ def uri
30
+ attributes.fetch(:uri)
31
31
  end
32
32
 
33
33
  attr_reader :attributes
@@ -2,7 +2,7 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  #
5
- # The parameters send in a will save text document notification.
5
+ # The parameters sent in a will save text document notification.
6
6
  #
7
7
  class WillSaveTextDocumentParams
8
8
  def initialize(text_document:, reason:)
@@ -0,0 +1,63 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WindowClientCapabilities
5
+ def initialize(work_done_progress: nil, show_message: nil, show_document: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
9
+ @attributes[:showMessage] = show_message if show_message
10
+ @attributes[:showDocument] = show_document if show_document
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # It indicates whether the client supports server initiated
17
+ # progress using the `window/workDoneProgress/create` request.
18
+ #
19
+ # The capability also controls Whether client supports handling
20
+ # of progress notifications. If set servers are allowed to report a
21
+ # `workDoneProgress` property in the request specific server
22
+ # capabilities.
23
+ #
24
+ # @since 3.15.0
25
+ #
26
+ # @return [boolean | nil]
27
+ def work_done_progress
28
+ attributes.fetch(:workDoneProgress)
29
+ end
30
+
31
+ #
32
+ # Capabilities specific to the showMessage request.
33
+ #
34
+ # @since 3.16.0
35
+ #
36
+ # @return [ShowMessageRequestClientCapabilities | nil]
37
+ def show_message
38
+ attributes.fetch(:showMessage)
39
+ end
40
+
41
+ #
42
+ # Capabilities specific to the showDocument request.
43
+ #
44
+ # @since 3.16.0
45
+ #
46
+ # @return [ShowDocumentClientCapabilities | nil]
47
+ def show_document
48
+ attributes.fetch(:showDocument)
49
+ end
50
+
51
+ attr_reader :attributes
52
+
53
+ def to_hash
54
+ attributes
55
+ end
56
+
57
+ def to_json(*args)
58
+ to_hash.to_json(*args)
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -32,10 +32,10 @@ module LanguageServer
32
32
 
33
33
  #
34
34
  # Controls if a cancel button should show to allow the user to cancel the
35
- # long running operation. Clients that don't support cancellation are
36
- # allowed to ignore the setting.
35
+ # long running operation. Clients that don't support cancellation are allowed
36
+ # to ignore the setting.
37
37
  #
38
- # @return [boolean]
38
+ # @return [boolean | nil]
39
39
  def cancellable
40
40
  attributes.fetch(:cancellable)
41
41
  end
@@ -47,7 +47,7 @@ module LanguageServer
47
47
  # Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
48
48
  # If unset, the previous progress message (if any) is still valid.
49
49
  #
50
- # @return [string]
50
+ # @return [string | nil]
51
51
  def message
52
52
  attributes.fetch(:message)
53
53
  end
@@ -58,9 +58,9 @@ module LanguageServer
58
58
  # to ignore the `percentage` value in subsequent in report notifications.
59
59
  #
60
60
  # The value should be steadily rising. Clients are free to ignore values
61
- # that are not following this rule. The value range is [0, 100]
61
+ # that are not following this rule. The value range is [0, 100].
62
62
  #
63
- # @return [number]
63
+ # @return [uinteger | nil]
64
64
  def percentage
65
65
  attributes.fetch(:percentage)
66
66
  end
@@ -20,7 +20,7 @@ module LanguageServer
20
20
  # Optional, a final message indicating to for example indicate the outcome
21
21
  # of the operation.
22
22
  #
23
- # @return [string]
23
+ # @return [string | nil]
24
24
  def message
25
25
  attributes.fetch(:message)
26
26
  end
@@ -10,7 +10,7 @@ module LanguageServer
10
10
  @attributes.freeze
11
11
  end
12
12
 
13
- # @return [boolean]
13
+ # @return [boolean | nil]
14
14
  def work_done_progress
15
15
  attributes.fetch(:workDoneProgress)
16
16
  end
@@ -13,7 +13,7 @@ module LanguageServer
13
13
  #
14
14
  # An optional token that a server can use to report work done progress.
15
15
  #
16
- # @return [ProgressToken]
16
+ # @return [ProgressToken | nil]
17
17
  def work_done_token
18
18
  attributes.fetch(:workDoneToken)
19
19
  end
@@ -19,13 +19,12 @@ module LanguageServer
19
19
  end
20
20
 
21
21
  #
22
- # Controls enablement state of a cancel button. This property is only valid
23
- # if a cancel button got requested in the `WorkDoneProgressStart` payload.
22
+ # Controls enablement state of a cancel button.
24
23
  #
25
- # Clients that don't support cancellation or don't support control the
26
- # button's enablement state are allowed to ignore the setting.
24
+ # Clients that don't support cancellation or don't support controlling the button's
25
+ # enablement state are allowed to ignore the property.
27
26
  #
28
- # @return [boolean]
27
+ # @return [boolean | nil]
29
28
  def cancellable
30
29
  attributes.fetch(:cancellable)
31
30
  end
@@ -37,7 +36,7 @@ module LanguageServer
37
36
  # Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
38
37
  # If unset, the previous progress message (if any) is still valid.
39
38
  #
40
- # @return [string]
39
+ # @return [string | nil]
41
40
  def message
42
41
  attributes.fetch(:message)
43
42
  end
@@ -50,7 +49,7 @@ module LanguageServer
50
49
  # The value should be steadily rising. Clients are free to ignore values
51
50
  # that are not following this rule. The value range is [0, 100]
52
51
  #
53
- # @return [number]
52
+ # @return [uinteger | nil]
54
53
  def percentage
55
54
  attributes.fetch(:percentage)
56
55
  end
@@ -0,0 +1,176 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Workspace specific client capabilities.
6
+ #
7
+ class WorkspaceClientCapabilities
8
+ def initialize(apply_edit: nil, workspace_edit: nil, did_change_configuration: nil, did_change_watched_files: nil, symbol: nil, execute_command: nil, workspace_folders: nil, configuration: nil, semantic_tokens: nil, code_lens: nil, file_operations: nil, inline_value: nil, inlay_hint: nil, diagnostics: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:applyEdit] = apply_edit if apply_edit
12
+ @attributes[:workspaceEdit] = workspace_edit if workspace_edit
13
+ @attributes[:didChangeConfiguration] = did_change_configuration if did_change_configuration
14
+ @attributes[:didChangeWatchedFiles] = did_change_watched_files if did_change_watched_files
15
+ @attributes[:symbol] = symbol if symbol
16
+ @attributes[:executeCommand] = execute_command if execute_command
17
+ @attributes[:workspaceFolders] = workspace_folders if workspace_folders
18
+ @attributes[:configuration] = configuration if configuration
19
+ @attributes[:semanticTokens] = semantic_tokens if semantic_tokens
20
+ @attributes[:codeLens] = code_lens if code_lens
21
+ @attributes[:fileOperations] = file_operations if file_operations
22
+ @attributes[:inlineValue] = inline_value if inline_value
23
+ @attributes[:inlayHint] = inlay_hint if inlay_hint
24
+ @attributes[:diagnostics] = diagnostics if diagnostics
25
+
26
+ @attributes.freeze
27
+ end
28
+
29
+ #
30
+ # The client supports applying batch edits
31
+ # to the workspace by supporting the request
32
+ # 'workspace/applyEdit'
33
+ #
34
+ # @return [boolean | nil]
35
+ def apply_edit
36
+ attributes.fetch(:applyEdit)
37
+ end
38
+
39
+ #
40
+ # Capabilities specific to `WorkspaceEdit`s.
41
+ #
42
+ # @return [WorkspaceEditClientCapabilities | nil]
43
+ def workspace_edit
44
+ attributes.fetch(:workspaceEdit)
45
+ end
46
+
47
+ #
48
+ # Capabilities specific to the `workspace/didChangeConfiguration` notification.
49
+ #
50
+ # @return [DidChangeConfigurationClientCapabilities | nil]
51
+ def did_change_configuration
52
+ attributes.fetch(:didChangeConfiguration)
53
+ end
54
+
55
+ #
56
+ # Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
57
+ #
58
+ # @return [DidChangeWatchedFilesClientCapabilities | nil]
59
+ def did_change_watched_files
60
+ attributes.fetch(:didChangeWatchedFiles)
61
+ end
62
+
63
+ #
64
+ # Capabilities specific to the `workspace/symbol` request.
65
+ #
66
+ # @return [WorkspaceSymbolClientCapabilities | nil]
67
+ def symbol
68
+ attributes.fetch(:symbol)
69
+ end
70
+
71
+ #
72
+ # Capabilities specific to the `workspace/executeCommand` request.
73
+ #
74
+ # @return [ExecuteCommandClientCapabilities | nil]
75
+ def execute_command
76
+ attributes.fetch(:executeCommand)
77
+ end
78
+
79
+ #
80
+ # The client has support for workspace folders.
81
+ #
82
+ # @since 3.6.0
83
+ #
84
+ # @return [boolean | nil]
85
+ def workspace_folders
86
+ attributes.fetch(:workspaceFolders)
87
+ end
88
+
89
+ #
90
+ # The client supports `workspace/configuration` requests.
91
+ #
92
+ # @since 3.6.0
93
+ #
94
+ # @return [boolean | nil]
95
+ def configuration
96
+ attributes.fetch(:configuration)
97
+ end
98
+
99
+ #
100
+ # Capabilities specific to the semantic token requests scoped to the
101
+ # workspace.
102
+ #
103
+ # @since 3.16.0.
104
+ #
105
+ # @return [SemanticTokensWorkspaceClientCapabilities | nil]
106
+ def semantic_tokens
107
+ attributes.fetch(:semanticTokens)
108
+ end
109
+
110
+ #
111
+ # Capabilities specific to the code lens requests scoped to the
112
+ # workspace.
113
+ #
114
+ # @since 3.16.0.
115
+ #
116
+ # @return [CodeLensWorkspaceClientCapabilities | nil]
117
+ def code_lens
118
+ attributes.fetch(:codeLens)
119
+ end
120
+
121
+ #
122
+ # The client has support for file notifications/requests for user operations on files.
123
+ #
124
+ # Since 3.16.0
125
+ #
126
+ # @return [FileOperationClientCapabilities | nil]
127
+ def file_operations
128
+ attributes.fetch(:fileOperations)
129
+ end
130
+
131
+ #
132
+ # Capabilities specific to the inline values requests scoped to the
133
+ # workspace.
134
+ #
135
+ # @since 3.17.0.
136
+ #
137
+ # @return [InlineValueWorkspaceClientCapabilities | nil]
138
+ def inline_value
139
+ attributes.fetch(:inlineValue)
140
+ end
141
+
142
+ #
143
+ # Capabilities specific to the inlay hint requests scoped to the
144
+ # workspace.
145
+ #
146
+ # @since 3.17.0.
147
+ #
148
+ # @return [InlayHintWorkspaceClientCapabilities | nil]
149
+ def inlay_hint
150
+ attributes.fetch(:inlayHint)
151
+ end
152
+
153
+ #
154
+ # Capabilities specific to the diagnostic requests scoped to the
155
+ # workspace.
156
+ #
157
+ # @since 3.17.0.
158
+ #
159
+ # @return [DiagnosticWorkspaceClientCapabilities | nil]
160
+ def diagnostics
161
+ attributes.fetch(:diagnostics)
162
+ end
163
+
164
+ attr_reader :attributes
165
+
166
+ def to_hash
167
+ attributes
168
+ end
169
+
170
+ def to_json(*args)
171
+ to_hash.to_json(*args)
172
+ end
173
+ end
174
+ end
175
+ end
176
+ end
@@ -0,0 +1,67 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Parameters of the workspace diagnostic request.
6
+ #
7
+ # @since 3.17.0
8
+ #
9
+ class WorkspaceDiagnosticParams
10
+ def initialize(identifier: nil, previous_result_ids:, work_done_token: nil, partial_result_token: nil)
11
+ @attributes = {}
12
+
13
+ @attributes[:identifier] = identifier if identifier
14
+ @attributes[:previousResultIds] = previous_result_ids
15
+ @attributes[:workDoneToken] = work_done_token if work_done_token
16
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
17
+
18
+ @attributes.freeze
19
+ end
20
+
21
+ #
22
+ # The additional identifier provided during registration.
23
+ #
24
+ # @return [string | nil]
25
+ def identifier
26
+ attributes.fetch(:identifier)
27
+ end
28
+
29
+ #
30
+ # The currently known diagnostic reports with their
31
+ # previous result ids.
32
+ #
33
+ # @return [PreviousResultId[]]
34
+ def previous_result_ids
35
+ attributes.fetch(:previousResultIds)
36
+ end
37
+
38
+ #
39
+ # An optional token that a server can use to report work done progress.
40
+ #
41
+ # @return [ProgressToken | nil]
42
+ def work_done_token
43
+ attributes.fetch(:workDoneToken)
44
+ end
45
+
46
+ #
47
+ # An optional token that a server can use to report partial results (e.g. streaming) to
48
+ # the client.
49
+ #
50
+ # @return [ProgressToken | nil]
51
+ def partial_result_token
52
+ attributes.fetch(:partialResultToken)
53
+ end
54
+
55
+ attr_reader :attributes
56
+
57
+ def to_hash
58
+ attributes
59
+ end
60
+
61
+ def to_json(*args)
62
+ to_hash.to_json(*args)
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,35 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # A workspace diagnostic report.
6
+ #
7
+ # @since 3.17.0
8
+ #
9
+ class WorkspaceDiagnosticReport
10
+ def initialize(items:)
11
+ @attributes = {}
12
+
13
+ @attributes[:items] = items
14
+
15
+ @attributes.freeze
16
+ end
17
+
18
+ # @return [WorkspaceDocumentDiagnosticReport[]]
19
+ def items
20
+ attributes.fetch(:items)
21
+ end
22
+
23
+ attr_reader :attributes
24
+
25
+ def to_hash
26
+ attributes
27
+ end
28
+
29
+ def to_json(*args)
30
+ to_hash.to_json(*args)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # A partial result for a workspace diagnostic report.
6
+ #
7
+ # @since 3.17.0
8
+ #
9
+ class WorkspaceDiagnosticReportPartialResult
10
+ def initialize(items:)
11
+ @attributes = {}
12
+
13
+ @attributes[:items] = items
14
+
15
+ @attributes.freeze
16
+ end
17
+
18
+ # @return [WorkspaceDocumentDiagnosticReport[]]
19
+ def items
20
+ attributes.fetch(:items)
21
+ end
22
+
23
+ attr_reader :attributes
24
+
25
+ def to_hash
26
+ attributes
27
+ end
28
+
29
+ def to_json(*args)
30
+ to_hash.to_json(*args)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,77 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # A workspace diagnostic document report.
6
+ #
7
+ # @since 3.17.0
8
+ #
9
+ class WorkspaceDocumentDiagnosticReport
10
+ def initialize(uri:, version:, kind:, result_id: nil, items:)
11
+ @attributes = {}
12
+
13
+ @attributes[:uri] = uri
14
+ @attributes[:version] = version
15
+ @attributes[:kind] = kind
16
+ @attributes[:resultId] = result_id if result_id
17
+ @attributes[:items] = items
18
+
19
+ @attributes.freeze
20
+ end
21
+
22
+ #
23
+ # The URI for which diagnostic information is reported.
24
+ #
25
+ # @return [DocumentUri]
26
+ def uri
27
+ attributes.fetch(:uri)
28
+ end
29
+
30
+ #
31
+ # The version number for which the diagnostics are reported.
32
+ # If the document is not marked as open `null` can be provided.
33
+ #
34
+ # @return [integer | null]
35
+ def version
36
+ attributes.fetch(:version)
37
+ end
38
+
39
+ #
40
+ # A full document diagnostic report.
41
+ #
42
+ # @return ["full"]
43
+ def kind
44
+ attributes.fetch(:kind)
45
+ end
46
+
47
+ #
48
+ # An optional result id. If provided it will
49
+ # be sent on the next diagnostic request for the
50
+ # same document.
51
+ #
52
+ # @return [string | nil]
53
+ def result_id
54
+ attributes.fetch(:resultId)
55
+ end
56
+
57
+ #
58
+ # The actual items.
59
+ #
60
+ # @return [Diagnostic[]]
61
+ def items
62
+ attributes.fetch(:items)
63
+ end
64
+
65
+ attr_reader :attributes
66
+
67
+ def to_hash
68
+ attributes
69
+ end
70
+
71
+ def to_json(*args)
72
+ to_hash.to_json(*args)
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -1,6 +1,20 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
+ #
5
+ # A workspace edit represents changes to many resources managed in the workspace. The edit
6
+ # should either provide `changes` or `documentChanges`. If documentChanges are present
7
+ # they are preferred over `changes` if the client can handle versioned document edits.
8
+ #
9
+ # Since version 3.13.0 a workspace edit can contain resource operations as well. If resource
10
+ # operations are present clients need to execute the operations in the order in which they
11
+ # are provided. So a workspace edit for example can consist of the following two changes:
12
+ # (1) a create file a.txt and (2) a text document edit which insert text into file a.txt.
13
+ #
14
+ # An invalid sequence (e.g. (1) delete file a.txt and (2) insert text into file a.txt) will
15
+ # cause failure of the operation. How the client recovers from the failure is described by
16
+ # the client capability: `workspace.workspaceEdit.failureHandling`
17
+ #
4
18
  class WorkspaceEdit
5
19
  def initialize(changes: nil, document_changes: nil, change_annotations: nil)
6
20
  @attributes = {}
@@ -15,40 +29,37 @@ module LanguageServer
15
29
  #
16
30
  # Holds changes to existing resources.
17
31
  #
18
- # @return [{}]
32
+ # @return [DocumentUri => TextEdit[] | nil]
19
33
  def changes
20
34
  attributes.fetch(:changes)
21
35
  end
22
36
 
23
37
  #
24
- # Depending on the client capability
25
- # `workspace.workspaceEdit.resourceOperations` document changes are either
26
- # an array of `TextDocumentEdit`s to express changes to n different text
27
- # documents where each text document edit addresses a specific version of
28
- # a text document. Or it can contain above `TextDocumentEdit`s mixed with
29
- # create, rename and delete file / folder operations.
38
+ # Depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes
39
+ # are either an array of `TextDocumentEdit`s to express changes to n different text documents
40
+ # where each text document edit addresses a specific version of a text document. Or it can contain
41
+ # above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations.
30
42
  #
31
43
  # Whether a client supports versioned document edits is expressed via
32
44
  # `workspace.workspaceEdit.documentChanges` client capability.
33
45
  #
34
- # If a client neither supports `documentChanges` nor
35
- # `workspace.workspaceEdit.resourceOperations` then only plain `TextEdit`s
36
- # using the `changes` property are supported.
46
+ # If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then
47
+ # only plain `TextEdit`s using the `changes` property are supported.
37
48
  #
38
- # @return [TextDocumentEdit[] | (TextDocumentEdit | CreateFile | RenameFile | DeleteFile)[]]
49
+ # @return [TextDocumentEdit | CreateFile | RenameFile | DeleteFile[] | nil]
39
50
  def document_changes
40
51
  attributes.fetch(:documentChanges)
41
52
  end
42
53
 
43
54
  #
44
- # A map of change annotations that can be referenced in
45
- # `AnnotatedTextEdit`s or create, rename and delete file / folder
46
- # operations.
55
+ # A map of change annotations that can be referenced in `AnnotatedTextEdit`s or create, rename and
56
+ # delete file / folder operations.
47
57
  #
48
- # Whether clients honor this property depends on the client capability
49
- # `workspace.changeAnnotationSupport`.
58
+ # Whether clients honor this property depends on the client capability `workspace.changeAnnotationSupport`.
50
59
  #
51
- # @return [{ [id: string]: ChangeAnnotation; }]
60
+ # @since 3.16.0
61
+ #
62
+ # @return [ChangeAnnotationIdentifier => ChangeAnnotation | nil]
52
63
  def change_annotations
53
64
  attributes.fetch(:changeAnnotations)
54
65
  end