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,25 +1,20 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
+ #
5
+ # The parameters of a [ExecuteCommandRequest](#ExecuteCommandRequest).
6
+ #
4
7
  class ExecuteCommandParams
5
- def initialize(work_done_token: nil, command:, arguments: nil)
8
+ def initialize(command:, arguments: nil, work_done_token: nil)
6
9
  @attributes = {}
7
10
 
8
- @attributes[:workDoneToken] = work_done_token if work_done_token
9
11
  @attributes[:command] = command
10
12
  @attributes[:arguments] = arguments if arguments
13
+ @attributes[:workDoneToken] = work_done_token if work_done_token
11
14
 
12
15
  @attributes.freeze
13
16
  end
14
17
 
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
18
  #
24
19
  # The identifier of the actual command handler.
25
20
  #
@@ -31,11 +26,19 @@ module LanguageServer
31
26
  #
32
27
  # Arguments that the command should be invoked with.
33
28
  #
34
- # @return [any[]]
29
+ # @return [LSPAny[] | nil]
35
30
  def arguments
36
31
  attributes.fetch(:arguments)
37
32
  end
38
33
 
34
+ #
35
+ # An optional token that a server can use to report work done progress.
36
+ #
37
+ # @return [ProgressToken | nil]
38
+ def work_done_token
39
+ attributes.fetch(:workDoneToken)
40
+ end
41
+
39
42
  attr_reader :attributes
40
43
 
41
44
  def to_hash
@@ -2,23 +2,18 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  #
5
- # Execute command registration options.
5
+ # Registration options for a [ExecuteCommandRequest](#ExecuteCommandRequest).
6
6
  #
7
7
  class ExecuteCommandRegistrationOptions
8
- def initialize(work_done_progress: nil, commands:)
8
+ def initialize(commands:, work_done_progress: nil)
9
9
  @attributes = {}
10
10
 
11
- @attributes[:workDoneProgress] = work_done_progress if work_done_progress
12
11
  @attributes[:commands] = commands
12
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
13
13
 
14
14
  @attributes.freeze
15
15
  end
16
16
 
17
- # @return [boolean]
18
- def work_done_progress
19
- attributes.fetch(:workDoneProgress)
20
- end
21
-
22
17
  #
23
18
  # The commands to be executed on the server
24
19
  #
@@ -27,6 +22,11 @@ module LanguageServer
27
22
  attributes.fetch(:commands)
28
23
  end
29
24
 
25
+ # @return [boolean | nil]
26
+ def work_done_progress
27
+ attributes.fetch(:workDoneProgress)
28
+ end
29
+
30
30
  attr_reader :attributes
31
31
 
32
32
  def to_hash
@@ -0,0 +1,45 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class ExecutionSummary
5
+ def initialize(execution_order:, success: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:executionOrder] = execution_order
9
+ @attributes[:success] = success if success
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # A strict monotonically increasing value
16
+ # indicating the execution order of a cell
17
+ # inside a notebook.
18
+ #
19
+ # @return [uinteger]
20
+ def execution_order
21
+ attributes.fetch(:executionOrder)
22
+ end
23
+
24
+ #
25
+ # Whether the execution was successful or
26
+ # not if known by the client.
27
+ #
28
+ # @return [boolean | nil]
29
+ def success
30
+ attributes.fetch(:success)
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
@@ -4,6 +4,8 @@ module LanguageServer
4
4
  #
5
5
  # Represents information on a file/folder create.
6
6
  #
7
+ # @since 3.16.0
8
+ #
7
9
  class FileCreate
8
10
  def initialize(uri:)
9
11
  @attributes = {}
@@ -4,6 +4,8 @@ module LanguageServer
4
4
  #
5
5
  # Represents information on a file/folder delete.
6
6
  #
7
+ # @since 3.16.0
8
+ #
7
9
  class FileDelete
8
10
  def initialize(uri:)
9
11
  @attributes = {}
@@ -15,9 +15,9 @@ module LanguageServer
15
15
  end
16
16
 
17
17
  #
18
- # The file's URI.
18
+ # The file's uri.
19
19
  #
20
- # @return [string]
20
+ # @return [DocumentUri]
21
21
  def uri
22
22
  attributes.fetch(:uri)
23
23
  end
@@ -25,7 +25,7 @@ module LanguageServer
25
25
  #
26
26
  # The change type.
27
27
  #
28
- # @return [number]
28
+ # @return [FileChangeType]
29
29
  def type
30
30
  attributes.fetch(:type)
31
31
  end
@@ -0,0 +1,95 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Capabilities relating to events from file operations by the user in the client.
6
+ #
7
+ # These events do not come from the file system, they come from user operations
8
+ # like renaming a file in the UI.
9
+ #
10
+ # @since 3.16.0
11
+ #
12
+ class FileOperationClientCapabilities
13
+ def initialize(dynamic_registration: nil, did_create: nil, will_create: nil, did_rename: nil, will_rename: nil, did_delete: nil, will_delete: nil)
14
+ @attributes = {}
15
+
16
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
17
+ @attributes[:didCreate] = did_create if did_create
18
+ @attributes[:willCreate] = will_create if will_create
19
+ @attributes[:didRename] = did_rename if did_rename
20
+ @attributes[:willRename] = will_rename if will_rename
21
+ @attributes[:didDelete] = did_delete if did_delete
22
+ @attributes[:willDelete] = will_delete if will_delete
23
+
24
+ @attributes.freeze
25
+ end
26
+
27
+ #
28
+ # Whether the client supports dynamic registration for file requests/notifications.
29
+ #
30
+ # @return [boolean | nil]
31
+ def dynamic_registration
32
+ attributes.fetch(:dynamicRegistration)
33
+ end
34
+
35
+ #
36
+ # The client has support for sending didCreateFiles notifications.
37
+ #
38
+ # @return [boolean | nil]
39
+ def did_create
40
+ attributes.fetch(:didCreate)
41
+ end
42
+
43
+ #
44
+ # The client has support for sending willCreateFiles requests.
45
+ #
46
+ # @return [boolean | nil]
47
+ def will_create
48
+ attributes.fetch(:willCreate)
49
+ end
50
+
51
+ #
52
+ # The client has support for sending didRenameFiles notifications.
53
+ #
54
+ # @return [boolean | nil]
55
+ def did_rename
56
+ attributes.fetch(:didRename)
57
+ end
58
+
59
+ #
60
+ # The client has support for sending willRenameFiles requests.
61
+ #
62
+ # @return [boolean | nil]
63
+ def will_rename
64
+ attributes.fetch(:willRename)
65
+ end
66
+
67
+ #
68
+ # The client has support for sending didDeleteFiles notifications.
69
+ #
70
+ # @return [boolean | nil]
71
+ def did_delete
72
+ attributes.fetch(:didDelete)
73
+ end
74
+
75
+ #
76
+ # The client has support for sending willDeleteFiles requests.
77
+ #
78
+ # @return [boolean | nil]
79
+ def will_delete
80
+ attributes.fetch(:willDelete)
81
+ end
82
+
83
+ attr_reader :attributes
84
+
85
+ def to_hash
86
+ attributes
87
+ end
88
+
89
+ def to_json(*args)
90
+ to_hash.to_json(*args)
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
@@ -3,7 +3,9 @@ module LanguageServer
3
3
  module Interface
4
4
  #
5
5
  # A filter to describe in which file operation requests or notifications
6
- # the server is interested in.
6
+ # the server is interested in receiving.
7
+ #
8
+ # @since 3.16.0
7
9
  #
8
10
  class FileOperationFilter
9
11
  def initialize(scheme: nil, pattern:)
@@ -16,9 +18,9 @@ module LanguageServer
16
18
  end
17
19
 
18
20
  #
19
- # A Uri like `file` or `untitled`.
21
+ # A Uri scheme like `file` or `untitled`.
20
22
  #
21
- # @return [string]
23
+ # @return [string | nil]
22
24
  def scheme
23
25
  attributes.fetch(:scheme)
24
26
  end
@@ -0,0 +1,83 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Options for notifications/requests for user operations on files.
6
+ #
7
+ # @since 3.16.0
8
+ #
9
+ class FileOperationOptions
10
+ def initialize(did_create: nil, will_create: nil, did_rename: nil, will_rename: nil, did_delete: nil, will_delete: nil)
11
+ @attributes = {}
12
+
13
+ @attributes[:didCreate] = did_create if did_create
14
+ @attributes[:willCreate] = will_create if will_create
15
+ @attributes[:didRename] = did_rename if did_rename
16
+ @attributes[:willRename] = will_rename if will_rename
17
+ @attributes[:didDelete] = did_delete if did_delete
18
+ @attributes[:willDelete] = will_delete if will_delete
19
+
20
+ @attributes.freeze
21
+ end
22
+
23
+ #
24
+ # The server is interested in receiving didCreateFiles notifications.
25
+ #
26
+ # @return [FileOperationRegistrationOptions | nil]
27
+ def did_create
28
+ attributes.fetch(:didCreate)
29
+ end
30
+
31
+ #
32
+ # The server is interested in receiving willCreateFiles requests.
33
+ #
34
+ # @return [FileOperationRegistrationOptions | nil]
35
+ def will_create
36
+ attributes.fetch(:willCreate)
37
+ end
38
+
39
+ #
40
+ # The server is interested in receiving didRenameFiles notifications.
41
+ #
42
+ # @return [FileOperationRegistrationOptions | nil]
43
+ def did_rename
44
+ attributes.fetch(:didRename)
45
+ end
46
+
47
+ #
48
+ # The server is interested in receiving willRenameFiles requests.
49
+ #
50
+ # @return [FileOperationRegistrationOptions | nil]
51
+ def will_rename
52
+ attributes.fetch(:willRename)
53
+ end
54
+
55
+ #
56
+ # The server is interested in receiving didDeleteFiles file notifications.
57
+ #
58
+ # @return [FileOperationRegistrationOptions | nil]
59
+ def did_delete
60
+ attributes.fetch(:didDelete)
61
+ end
62
+
63
+ #
64
+ # The server is interested in receiving willDeleteFiles file requests.
65
+ #
66
+ # @return [FileOperationRegistrationOptions | nil]
67
+ def will_delete
68
+ attributes.fetch(:willDelete)
69
+ end
70
+
71
+ attr_reader :attributes
72
+
73
+ def to_hash
74
+ attributes
75
+ end
76
+
77
+ def to_json(*args)
78
+ to_hash.to_json(*args)
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -3,7 +3,9 @@ module LanguageServer
3
3
  module Interface
4
4
  #
5
5
  # A pattern to describe in which file operation requests or notifications
6
- # the server is interested in.
6
+ # the server is interested in receiving.
7
+ #
8
+ # @since 3.16.0
7
9
  #
8
10
  class FileOperationPattern
9
11
  def initialize(glob:, matches: nil, options: nil)
@@ -21,13 +23,9 @@ module LanguageServer
21
23
  # - `*` to match one or more characters in a path segment
22
24
  # - `?` to match on one character in a path segment
23
25
  # - `**` to match any number of path segments, including none
24
- # - `{}` to group sub patterns into an OR expression. (e.g. `**​/*.{ts,js}`
25
- # matches all TypeScript and JavaScript files)
26
- # - `[]` to declare a range of characters to match in a path segment
27
- # (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
28
- # - `[!...]` to negate a range of characters to match in a path segment
29
- # (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but
30
- # not `example.0`)
26
+ # - `{}` to group sub patterns into an OR expression. (e.g. `**​/*.{ts,js}` matches all TypeScript and JavaScript files)
27
+ # - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
28
+ # - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`)
31
29
  #
32
30
  # @return [string]
33
31
  def glob
@@ -39,7 +37,7 @@ module LanguageServer
39
37
  #
40
38
  # Matches both if undefined.
41
39
  #
42
- # @return [FileOperationPatternKind]
40
+ # @return [FileOperationPatternKind | nil]
43
41
  def matches
44
42
  attributes.fetch(:matches)
45
43
  end
@@ -47,7 +45,7 @@ module LanguageServer
47
45
  #
48
46
  # Additional options used during matching.
49
47
  #
50
- # @return [FileOperationPatternOptions]
48
+ # @return [FileOperationPatternOptions | nil]
51
49
  def options
52
50
  attributes.fetch(:options)
53
51
  end
@@ -4,6 +4,8 @@ module LanguageServer
4
4
  #
5
5
  # Matching options for the file operation pattern.
6
6
  #
7
+ # @since 3.16.0
8
+ #
7
9
  class FileOperationPatternOptions
8
10
  def initialize(ignore_case: nil)
9
11
  @attributes = {}
@@ -16,7 +18,7 @@ module LanguageServer
16
18
  #
17
19
  # The pattern should be matched ignoring casing.
18
20
  #
19
- # @return [boolean]
21
+ # @return [boolean | nil]
20
22
  def ignore_case
21
23
  attributes.fetch(:ignoreCase)
22
24
  end
@@ -4,6 +4,8 @@ module LanguageServer
4
4
  #
5
5
  # The options to register for file operations.
6
6
  #
7
+ # @since 3.16.0
8
+ #
7
9
  class FileOperationRegistrationOptions
8
10
  def initialize(filters:)
9
11
  @attributes = {}
@@ -4,6 +4,8 @@ module LanguageServer
4
4
  #
5
5
  # Represents information on a file/folder rename.
6
6
  #
7
+ # @since 3.16.0
8
+ #
7
9
  class FileRename
8
10
  def initialize(old_uri:, new_uri:)
9
11
  @attributes = {}
@@ -12,21 +12,11 @@ module LanguageServer
12
12
  end
13
13
 
14
14
  #
15
- # The glob pattern to watch.
15
+ # The glob pattern to watch. See {@link GlobPattern glob pattern} for more detail.
16
16
  #
17
- # Glob patterns can have the following syntax:
18
- # - `*` to match one or more characters in a path segment
19
- # - `?` to match on one character in a path segment
20
- # - `**` to match any number of path segments, including none
21
- # - `{}` to group sub patterns into an OR expression. (e.g. `**​/*.{ts,js}`
22
- # matches all TypeScript and JavaScript files)
23
- # - `[]` to declare a range of characters to match in a path segment
24
- # (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
25
- # - `[!...]` to negate a range of characters to match in a path segment
26
- # (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not
27
- # `example.0`)
17
+ # @since 3.17.0 support for relative patterns.
28
18
  #
29
- # @return [string]
19
+ # @return [GlobPattern]
30
20
  def glob_pattern
31
21
  attributes.fetch(:globPattern)
32
22
  end
@@ -36,7 +26,7 @@ module LanguageServer
36
26
  # to WatchKind.Create | WatchKind.Change | WatchKind.Delete
37
27
  # which is 7.
38
28
  #
39
- # @return [number]
29
+ # @return [WatchKind | nil]
40
30
  def kind
41
31
  attributes.fetch(:kind)
42
32
  end
@@ -2,12 +2,11 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  #
5
- # Represents a folding range. To be valid, start and end line must be bigger
6
- # than zero and smaller than the number of lines in the document. Clients
7
- # are free to ignore invalid ranges.
5
+ # Represents a folding range. To be valid, start and end line must be bigger than zero and smaller
6
+ # than the number of lines in the document. Clients are free to ignore invalid ranges.
8
7
  #
9
8
  class FoldingRange
10
- def initialize(start_line:, start_character: nil, end_line:, end_character: nil, kind: nil)
9
+ def initialize(start_line:, start_character: nil, end_line:, end_character: nil, kind: nil, collapsed_text: nil)
11
10
  @attributes = {}
12
11
 
13
12
  @attributes[:startLine] = start_line
@@ -15,59 +14,67 @@ module LanguageServer
15
14
  @attributes[:endLine] = end_line
16
15
  @attributes[:endCharacter] = end_character if end_character
17
16
  @attributes[:kind] = kind if kind
17
+ @attributes[:collapsedText] = collapsed_text if collapsed_text
18
18
 
19
19
  @attributes.freeze
20
20
  end
21
21
 
22
22
  #
23
- # The zero-based start line of the range to fold. The folded area starts
24
- # after the line's last character. To be valid, the end must be zero or
25
- # larger and smaller than the number of lines in the document.
23
+ # The zero-based start line of the range to fold. The folded area starts after the line's last character.
24
+ # To be valid, the end must be zero or larger and smaller than the number of lines in the document.
26
25
  #
27
- # @return [number]
26
+ # @return [uinteger]
28
27
  def start_line
29
28
  attributes.fetch(:startLine)
30
29
  end
31
30
 
32
31
  #
33
- # The zero-based character offset from where the folded range starts. If
34
- # not defined, defaults to the length of the start line.
32
+ # The zero-based character offset from where the folded range starts. If not defined, defaults to the length of the start line.
35
33
  #
36
- # @return [number]
34
+ # @return [uinteger | nil]
37
35
  def start_character
38
36
  attributes.fetch(:startCharacter)
39
37
  end
40
38
 
41
39
  #
42
- # The zero-based end line of the range to fold. The folded area ends with
43
- # the line's last character. To be valid, the end must be zero or larger
44
- # and smaller than the number of lines in the document.
40
+ # The zero-based end line of the range to fold. The folded area ends with the line's last character.
41
+ # To be valid, the end must be zero or larger and smaller than the number of lines in the document.
45
42
  #
46
- # @return [number]
43
+ # @return [uinteger]
47
44
  def end_line
48
45
  attributes.fetch(:endLine)
49
46
  end
50
47
 
51
48
  #
52
- # The zero-based character offset before the folded range ends. If not
53
- # defined, defaults to the length of the end line.
49
+ # The zero-based character offset before the folded range ends. If not defined, defaults to the length of the end line.
54
50
  #
55
- # @return [number]
51
+ # @return [uinteger | nil]
56
52
  def end_character
57
53
  attributes.fetch(:endCharacter)
58
54
  end
59
55
 
60
56
  #
61
- # Describes the kind of the folding range such as `comment` or `region`.
62
- # The kind is used to categorize folding ranges and used by commands like
63
- # 'Fold all comments'. See [FoldingRangeKind](#FoldingRangeKind) for an
64
- # enumeration of standardized kinds.
57
+ # Describes the kind of the folding range such as `comment' or 'region'. The kind
58
+ # is used to categorize folding ranges and used by commands like 'Fold all comments'.
59
+ # See [FoldingRangeKind](#FoldingRangeKind) for an enumeration of standardized kinds.
65
60
  #
66
- # @return [string]
61
+ # @return [FoldingRangeKind | nil]
67
62
  def kind
68
63
  attributes.fetch(:kind)
69
64
  end
70
65
 
66
+ #
67
+ # The text that the client should show when the specified range is
68
+ # collapsed. If not defined or not supported by the client, a default
69
+ # will be chosen by the client.
70
+ #
71
+ # @since 3.17.0
72
+ #
73
+ # @return [string | nil]
74
+ def collapsed_text
75
+ attributes.fetch(:collapsedText)
76
+ end
77
+
71
78
  attr_reader :attributes
72
79
 
73
80
  def to_hash
@@ -2,12 +2,14 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  class FoldingRangeClientCapabilities
5
- def initialize(dynamic_registration: nil, range_limit: nil, line_folding_only: nil)
5
+ def initialize(dynamic_registration: nil, range_limit: nil, line_folding_only: nil, folding_range_kind: nil, folding_range: nil)
6
6
  @attributes = {}
7
7
 
8
8
  @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
9
  @attributes[:rangeLimit] = range_limit if range_limit
10
10
  @attributes[:lineFoldingOnly] = line_folding_only if line_folding_only
11
+ @attributes[:foldingRangeKind] = folding_range_kind if folding_range_kind
12
+ @attributes[:foldingRange] = folding_range if folding_range
11
13
 
12
14
  @attributes.freeze
13
15
  end
@@ -18,7 +20,7 @@ module LanguageServer
18
20
  # `FoldingRangeRegistrationOptions` return value for the corresponding
19
21
  # server capability as well.
20
22
  #
21
- # @return [boolean]
23
+ # @return [boolean | nil]
22
24
  def dynamic_registration
23
25
  attributes.fetch(:dynamicRegistration)
24
26
  end
@@ -28,7 +30,7 @@ module LanguageServer
28
30
  # per document. The value serves as a hint, servers are free to follow the
29
31
  # limit.
30
32
  #
31
- # @return [number]
33
+ # @return [uinteger | nil]
32
34
  def range_limit
33
35
  attributes.fetch(:rangeLimit)
34
36
  end
@@ -38,11 +40,31 @@ module LanguageServer
38
40
  # If set, client will ignore specified `startCharacter` and `endCharacter`
39
41
  # properties in a FoldingRange.
40
42
  #
41
- # @return [boolean]
43
+ # @return [boolean | nil]
42
44
  def line_folding_only
43
45
  attributes.fetch(:lineFoldingOnly)
44
46
  end
45
47
 
48
+ #
49
+ # Specific options for the folding range kind.
50
+ #
51
+ # @since 3.17.0
52
+ #
53
+ # @return [{ valueSet:FoldingRangeKind[] } | nil]
54
+ def folding_range_kind
55
+ attributes.fetch(:foldingRangeKind)
56
+ end
57
+
58
+ #
59
+ # Specific options for the folding range.
60
+ #
61
+ # @since 3.17.0
62
+ #
63
+ # @return [{ collapsedText:boolean } | nil]
64
+ def folding_range
65
+ attributes.fetch(:foldingRange)
66
+ end
67
+
46
68
  attr_reader :attributes
47
69
 
48
70
  def to_hash
@@ -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