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
@@ -5,7 +5,7 @@ module LanguageServer
5
5
  # Text document specific client capabilities.
6
6
  #
7
7
  class TextDocumentClientCapabilities
8
- def initialize(synchronization: nil, completion: nil, hover: nil, signature_help: nil, declaration: nil, definition: nil, type_definition: nil, implementation: nil, references: nil, document_highlight: nil, document_symbol: nil, code_action: nil, code_lens: nil, document_link: nil, color_provider: nil, formatting: nil, range_formatting: nil, on_type_formatting: nil, rename: nil, publish_diagnostics: nil, folding_range: nil, selection_range: nil, linked_editing_range: nil, call_hierarchy: nil, semantic_tokens: nil, moniker: nil)
8
+ def initialize(synchronization: nil, completion: nil, hover: nil, signature_help: nil, declaration: nil, definition: nil, type_definition: nil, implementation: nil, references: nil, document_highlight: nil, document_symbol: nil, code_action: nil, code_lens: nil, document_link: nil, color_provider: nil, formatting: nil, range_formatting: nil, on_type_formatting: nil, rename: nil, folding_range: nil, selection_range: nil, publish_diagnostics: nil, call_hierarchy: nil, semantic_tokens: nil, linked_editing_range: nil, moniker: nil, type_hierarchy: nil, inline_value: nil, inlay_hint: nil, diagnostic: nil)
9
9
  @attributes = {}
10
10
 
11
11
  @attributes[:synchronization] = synchronization if synchronization
@@ -27,18 +27,25 @@ module LanguageServer
27
27
  @attributes[:rangeFormatting] = range_formatting if range_formatting
28
28
  @attributes[:onTypeFormatting] = on_type_formatting if on_type_formatting
29
29
  @attributes[:rename] = rename if rename
30
- @attributes[:publishDiagnostics] = publish_diagnostics if publish_diagnostics
31
30
  @attributes[:foldingRange] = folding_range if folding_range
32
31
  @attributes[:selectionRange] = selection_range if selection_range
33
- @attributes[:linkedEditingRange] = linked_editing_range if linked_editing_range
32
+ @attributes[:publishDiagnostics] = publish_diagnostics if publish_diagnostics
34
33
  @attributes[:callHierarchy] = call_hierarchy if call_hierarchy
35
34
  @attributes[:semanticTokens] = semantic_tokens if semantic_tokens
35
+ @attributes[:linkedEditingRange] = linked_editing_range if linked_editing_range
36
36
  @attributes[:moniker] = moniker if moniker
37
+ @attributes[:typeHierarchy] = type_hierarchy if type_hierarchy
38
+ @attributes[:inlineValue] = inline_value if inline_value
39
+ @attributes[:inlayHint] = inlay_hint if inlay_hint
40
+ @attributes[:diagnostic] = diagnostic if diagnostic
37
41
 
38
42
  @attributes.freeze
39
43
  end
40
44
 
41
- # @return [TextDocumentSyncClientCapabilities]
45
+ #
46
+ # Defines which synchronization capabilities the client supports.
47
+ #
48
+ # @return [TextDocumentSyncClientCapabilities | nil]
42
49
  def synchronization
43
50
  attributes.fetch(:synchronization)
44
51
  end
@@ -46,7 +53,7 @@ module LanguageServer
46
53
  #
47
54
  # Capabilities specific to the `textDocument/completion` request.
48
55
  #
49
- # @return [CompletionClientCapabilities]
56
+ # @return [CompletionClientCapabilities | nil]
50
57
  def completion
51
58
  attributes.fetch(:completion)
52
59
  end
@@ -54,7 +61,7 @@ module LanguageServer
54
61
  #
55
62
  # Capabilities specific to the `textDocument/hover` request.
56
63
  #
57
- # @return [HoverClientCapabilities]
64
+ # @return [HoverClientCapabilities | nil]
58
65
  def hover
59
66
  attributes.fetch(:hover)
60
67
  end
@@ -62,7 +69,7 @@ module LanguageServer
62
69
  #
63
70
  # Capabilities specific to the `textDocument/signatureHelp` request.
64
71
  #
65
- # @return [SignatureHelpClientCapabilities]
72
+ # @return [SignatureHelpClientCapabilities | nil]
66
73
  def signature_help
67
74
  attributes.fetch(:signatureHelp)
68
75
  end
@@ -70,7 +77,9 @@ module LanguageServer
70
77
  #
71
78
  # Capabilities specific to the `textDocument/declaration` request.
72
79
  #
73
- # @return [DeclarationClientCapabilities]
80
+ # @since 3.14.0
81
+ #
82
+ # @return [DeclarationClientCapabilities | nil]
74
83
  def declaration
75
84
  attributes.fetch(:declaration)
76
85
  end
@@ -78,7 +87,7 @@ module LanguageServer
78
87
  #
79
88
  # Capabilities specific to the `textDocument/definition` request.
80
89
  #
81
- # @return [DefinitionClientCapabilities]
90
+ # @return [DefinitionClientCapabilities | nil]
82
91
  def definition
83
92
  attributes.fetch(:definition)
84
93
  end
@@ -86,7 +95,9 @@ module LanguageServer
86
95
  #
87
96
  # Capabilities specific to the `textDocument/typeDefinition` request.
88
97
  #
89
- # @return [TypeDefinitionClientCapabilities]
98
+ # @since 3.6.0
99
+ #
100
+ # @return [TypeDefinitionClientCapabilities | nil]
90
101
  def type_definition
91
102
  attributes.fetch(:typeDefinition)
92
103
  end
@@ -94,7 +105,9 @@ module LanguageServer
94
105
  #
95
106
  # Capabilities specific to the `textDocument/implementation` request.
96
107
  #
97
- # @return [ImplementationClientCapabilities]
108
+ # @since 3.6.0
109
+ #
110
+ # @return [ImplementationClientCapabilities | nil]
98
111
  def implementation
99
112
  attributes.fetch(:implementation)
100
113
  end
@@ -102,7 +115,7 @@ module LanguageServer
102
115
  #
103
116
  # Capabilities specific to the `textDocument/references` request.
104
117
  #
105
- # @return [ReferenceClientCapabilities]
118
+ # @return [ReferenceClientCapabilities | nil]
106
119
  def references
107
120
  attributes.fetch(:references)
108
121
  end
@@ -110,7 +123,7 @@ module LanguageServer
110
123
  #
111
124
  # Capabilities specific to the `textDocument/documentHighlight` request.
112
125
  #
113
- # @return [DocumentHighlightClientCapabilities]
126
+ # @return [DocumentHighlightClientCapabilities | nil]
114
127
  def document_highlight
115
128
  attributes.fetch(:documentHighlight)
116
129
  end
@@ -118,7 +131,7 @@ module LanguageServer
118
131
  #
119
132
  # Capabilities specific to the `textDocument/documentSymbol` request.
120
133
  #
121
- # @return [DocumentSymbolClientCapabilities]
134
+ # @return [DocumentSymbolClientCapabilities | nil]
122
135
  def document_symbol
123
136
  attributes.fetch(:documentSymbol)
124
137
  end
@@ -126,7 +139,7 @@ module LanguageServer
126
139
  #
127
140
  # Capabilities specific to the `textDocument/codeAction` request.
128
141
  #
129
- # @return [CodeActionClientCapabilities]
142
+ # @return [CodeActionClientCapabilities | nil]
130
143
  def code_action
131
144
  attributes.fetch(:codeAction)
132
145
  end
@@ -134,7 +147,7 @@ module LanguageServer
134
147
  #
135
148
  # Capabilities specific to the `textDocument/codeLens` request.
136
149
  #
137
- # @return [CodeLensClientCapabilities]
150
+ # @return [CodeLensClientCapabilities | nil]
138
151
  def code_lens
139
152
  attributes.fetch(:codeLens)
140
153
  end
@@ -142,7 +155,7 @@ module LanguageServer
142
155
  #
143
156
  # Capabilities specific to the `textDocument/documentLink` request.
144
157
  #
145
- # @return [DocumentLinkClientCapabilities]
158
+ # @return [DocumentLinkClientCapabilities | nil]
146
159
  def document_link
147
160
  attributes.fetch(:documentLink)
148
161
  end
@@ -151,7 +164,9 @@ module LanguageServer
151
164
  # Capabilities specific to the `textDocument/documentColor` and the
152
165
  # `textDocument/colorPresentation` request.
153
166
  #
154
- # @return [DocumentColorClientCapabilities]
167
+ # @since 3.6.0
168
+ #
169
+ # @return [DocumentColorClientCapabilities | nil]
155
170
  def color_provider
156
171
  attributes.fetch(:colorProvider)
157
172
  end
@@ -159,7 +174,7 @@ module LanguageServer
159
174
  #
160
175
  # Capabilities specific to the `textDocument/formatting` request.
161
176
  #
162
- # @return [DocumentFormattingClientCapabilities]
177
+ # @return [DocumentFormattingClientCapabilities | nil]
163
178
  def formatting
164
179
  attributes.fetch(:formatting)
165
180
  end
@@ -167,16 +182,15 @@ module LanguageServer
167
182
  #
168
183
  # Capabilities specific to the `textDocument/rangeFormatting` request.
169
184
  #
170
- # @return [DocumentRangeFormattingClientCapabilities]
185
+ # @return [DocumentRangeFormattingClientCapabilities | nil]
171
186
  def range_formatting
172
187
  attributes.fetch(:rangeFormatting)
173
188
  end
174
189
 
175
190
  #
176
- # request.
177
191
  # Capabilities specific to the `textDocument/onTypeFormatting` request.
178
192
  #
179
- # @return [DocumentOnTypeFormattingClientCapabilities]
193
+ # @return [DocumentOnTypeFormattingClientCapabilities | nil]
180
194
  def on_type_formatting
181
195
  attributes.fetch(:onTypeFormatting)
182
196
  end
@@ -184,24 +198,17 @@ module LanguageServer
184
198
  #
185
199
  # Capabilities specific to the `textDocument/rename` request.
186
200
  #
187
- # @return [RenameClientCapabilities]
201
+ # @return [RenameClientCapabilities | nil]
188
202
  def rename
189
203
  attributes.fetch(:rename)
190
204
  end
191
205
 
192
- #
193
- # Capabilities specific to the `textDocument/publishDiagnostics`
194
- # notification.
195
- #
196
- # @return [PublishDiagnosticsClientCapabilities]
197
- def publish_diagnostics
198
- attributes.fetch(:publishDiagnostics)
199
- end
200
-
201
206
  #
202
207
  # Capabilities specific to the `textDocument/foldingRange` request.
203
208
  #
204
- # @return [FoldingRangeClientCapabilities]
209
+ # @since 3.10.0
210
+ #
211
+ # @return [FoldingRangeClientCapabilities | nil]
205
212
  def folding_range
206
213
  attributes.fetch(:foldingRange)
207
214
  end
@@ -209,43 +216,101 @@ module LanguageServer
209
216
  #
210
217
  # Capabilities specific to the `textDocument/selectionRange` request.
211
218
  #
212
- # @return [SelectionRangeClientCapabilities]
219
+ # @since 3.15.0
220
+ #
221
+ # @return [SelectionRangeClientCapabilities | nil]
213
222
  def selection_range
214
223
  attributes.fetch(:selectionRange)
215
224
  end
216
225
 
217
226
  #
218
- # Capabilities specific to the `textDocument/linkedEditingRange` request.
227
+ # Capabilities specific to the `textDocument/publishDiagnostics` notification.
219
228
  #
220
- # @return [LinkedEditingRangeClientCapabilities]
221
- def linked_editing_range
222
- attributes.fetch(:linkedEditingRange)
229
+ # @return [PublishDiagnosticsClientCapabilities | nil]
230
+ def publish_diagnostics
231
+ attributes.fetch(:publishDiagnostics)
223
232
  end
224
233
 
225
234
  #
226
235
  # Capabilities specific to the various call hierarchy requests.
227
236
  #
228
- # @return [CallHierarchyClientCapabilities]
237
+ # @since 3.16.0
238
+ #
239
+ # @return [CallHierarchyClientCapabilities | nil]
229
240
  def call_hierarchy
230
241
  attributes.fetch(:callHierarchy)
231
242
  end
232
243
 
233
244
  #
234
- # Capabilities specific to the various semantic token requests.
245
+ # Capabilities specific to the various semantic token request.
235
246
  #
236
- # @return [SemanticTokensClientCapabilities]
247
+ # @since 3.16.0
248
+ #
249
+ # @return [SemanticTokensClientCapabilities | nil]
237
250
  def semantic_tokens
238
251
  attributes.fetch(:semanticTokens)
239
252
  end
240
253
 
241
254
  #
242
- # Capabilities specific to the `textDocument/moniker` request.
255
+ # Capabilities specific to the `textDocument/linkedEditingRange` request.
256
+ #
257
+ # @since 3.16.0
258
+ #
259
+ # @return [LinkedEditingRangeClientCapabilities | nil]
260
+ def linked_editing_range
261
+ attributes.fetch(:linkedEditingRange)
262
+ end
263
+
264
+ #
265
+ # Client capabilities specific to the `textDocument/moniker` request.
266
+ #
267
+ # @since 3.16.0
243
268
  #
244
- # @return [MonikerClientCapabilities]
269
+ # @return [MonikerClientCapabilities | nil]
245
270
  def moniker
246
271
  attributes.fetch(:moniker)
247
272
  end
248
273
 
274
+ #
275
+ # Capabilities specific to the various type hierarchy requests.
276
+ #
277
+ # @since 3.17.0
278
+ #
279
+ # @return [TypeHierarchyClientCapabilities | nil]
280
+ def type_hierarchy
281
+ attributes.fetch(:typeHierarchy)
282
+ end
283
+
284
+ #
285
+ # Capabilities specific to the `textDocument/inlineValue` request.
286
+ #
287
+ # @since 3.17.0
288
+ #
289
+ # @return [InlineValueClientCapabilities | nil]
290
+ def inline_value
291
+ attributes.fetch(:inlineValue)
292
+ end
293
+
294
+ #
295
+ # Capabilities specific to the `textDocument/inlayHint` request.
296
+ #
297
+ # @since 3.17.0
298
+ #
299
+ # @return [InlayHintClientCapabilities | nil]
300
+ def inlay_hint
301
+ attributes.fetch(:inlayHint)
302
+ end
303
+
304
+ #
305
+ # Capabilities specific to the diagnostic pull model.
306
+ #
307
+ # @since 3.17.0
308
+ #
309
+ # @return [DiagnosticClientCapabilities | nil]
310
+ def diagnostic
311
+ attributes.fetch(:diagnostic)
312
+ end
313
+
249
314
  attr_reader :attributes
250
315
 
251
316
  def to_hash
@@ -2,14 +2,14 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  #
5
- # An event describing a change to a text document. If range and rangeLength are
6
- # omitted the new text is considered to be the full content of the document.
5
+ # An event describing a change to a text document. If only a text is provided
6
+ # it is considered to be the full content of the document.
7
7
  #
8
8
  class TextDocumentContentChangeEvent
9
- def initialize(range: nil, range_length: nil, text:)
9
+ def initialize(range:, range_length: nil, text:)
10
10
  @attributes = {}
11
11
 
12
- @attributes[:range] = range if range
12
+ @attributes[:range] = range
13
13
  @attributes[:rangeLength] = range_length if range_length
14
14
  @attributes[:text] = text
15
15
 
@@ -19,7 +19,7 @@ module LanguageServer
19
19
  #
20
20
  # The range of the document that changed.
21
21
  #
22
- # @return [Range, nil]
22
+ # @return [Range]
23
23
  def range
24
24
  attributes.fetch(:range)
25
25
  end
@@ -27,7 +27,9 @@ module LanguageServer
27
27
  #
28
28
  # The optional length of the range that got replaced.
29
29
  #
30
- # @return [number, nil]
30
+ # @deprecated use range instead.
31
+ #
32
+ # @return [uinteger | nil]
31
33
  def range_length
32
34
  attributes.fetch(:rangeLength)
33
35
  end
@@ -35,10 +37,6 @@ module LanguageServer
35
37
  #
36
38
  # The new text for the provided range.
37
39
  #
38
- # --- OR ---
39
- #
40
- # The new text of the whole document.
41
- #
42
40
  # @return [string]
43
41
  def text
44
42
  attributes.fetch(:text)
@@ -1,6 +1,12 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
+ #
5
+ # Describes textual changes on a text document. A TextDocumentEdit describes all changes
6
+ # on a document version Si and after they are applied move the document to version Si+1.
7
+ # So the creator of a TextDocumentEdit doesn't need to sort the array of edits or do any
8
+ # kind of ordering. However the edits must be non overlapping.
9
+ #
4
10
  class TextDocumentEdit
5
11
  def initialize(text_document:, edits:)
6
12
  @attributes = {}
@@ -22,7 +28,10 @@ module LanguageServer
22
28
  #
23
29
  # The edits to be applied.
24
30
  #
25
- # @return [(TextEdit | AnnotatedTextEdit)[]]
31
+ # @since 3.16.0 - support for AnnotatedTextEdit. This is guarded using a
32
+ # client capability.
33
+ #
34
+ # @return [TextEdit | AnnotatedTextEdit[]]
26
35
  def edits
27
36
  attributes.fetch(:edits)
28
37
  end
@@ -0,0 +1,69 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # A document filter denotes a document by different properties like
6
+ # the [language](#TextDocument.languageId), the [scheme](#Uri.scheme) of
7
+ # its resource, or a glob-pattern that is applied to the [path](#TextDocument.fileName).
8
+ #
9
+ # Glob patterns can have the following syntax:
10
+ # - `*` to match one or more characters in a path segment
11
+ # - `?` to match on one character in a path segment
12
+ # - `**` to match any number of path segments, including none
13
+ # - `{}` to group sub patterns into an OR expression. (e.g. `**​/*.{ts,js}` matches all TypeScript and JavaScript files)
14
+ # - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
15
+ # - `[!...]` 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`)
16
+ #
17
+ # @sample A language filter that applies to typescript files on disk: `{ language: 'typescript', scheme: 'file' }`
18
+ # @sample A language filter that applies to all package.json paths: `{ language: 'json', pattern: '**package.json' }`
19
+ #
20
+ # @since 3.17.0
21
+ #
22
+ class TextDocumentFilter
23
+ def initialize(language:, scheme: nil, pattern: nil)
24
+ @attributes = {}
25
+
26
+ @attributes[:language] = language
27
+ @attributes[:scheme] = scheme if scheme
28
+ @attributes[:pattern] = pattern if pattern
29
+
30
+ @attributes.freeze
31
+ end
32
+
33
+ #
34
+ # A language id, like `typescript`. */
35
+ #
36
+ # @return [string]
37
+ def language
38
+ attributes.fetch(:language)
39
+ end
40
+
41
+ #
42
+ # A Uri [scheme](#Uri.scheme), like `file` or `untitled`. */
43
+ #
44
+ # @return [string | nil]
45
+ def scheme
46
+ attributes.fetch(:scheme)
47
+ end
48
+
49
+ #
50
+ # A glob pattern, like `*.{ts,js}`. */
51
+ #
52
+ # @return [string | nil]
53
+ def pattern
54
+ attributes.fetch(:pattern)
55
+ end
56
+
57
+ attr_reader :attributes
58
+
59
+ def to_hash
60
+ attributes
61
+ end
62
+
63
+ def to_json(*args)
64
+ to_hash.to_json(*args)
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -1,6 +1,9 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
+ #
5
+ # A literal to identify a text document in the client.
6
+ #
4
7
  class TextDocumentIdentifier
5
8
  def initialize(uri:)
6
9
  @attributes = {}
@@ -11,9 +14,9 @@ module LanguageServer
11
14
  end
12
15
 
13
16
  #
14
- # The text document's URI.
17
+ # The text document's uri.
15
18
  #
16
- # @return [string]
19
+ # @return [DocumentUri]
17
20
  def uri
18
21
  attributes.fetch(:uri)
19
22
  end
@@ -1,6 +1,10 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
+ #
5
+ # An item to transfer a text document from the client to the
6
+ # server.
7
+ #
4
8
  class TextDocumentItem
5
9
  def initialize(uri:, language_id:, version:, text:)
6
10
  @attributes = {}
@@ -14,9 +18,9 @@ module LanguageServer
14
18
  end
15
19
 
16
20
  #
17
- # The text document's URI.
21
+ # The text document's uri.
18
22
  #
19
- # @return [string]
23
+ # @return [DocumentUri]
20
24
  def uri
21
25
  attributes.fetch(:uri)
22
26
  end
@@ -33,7 +37,7 @@ module LanguageServer
33
37
  # The version number of this document (it will increase after each
34
38
  # change, including undo/redo).
35
39
  #
36
- # @return [number]
40
+ # @return [integer]
37
41
  def version
38
42
  attributes.fetch(:version)
39
43
  end
@@ -1,6 +1,10 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
+ #
5
+ # A parameter literal used in requests to pass a text document and a position inside that
6
+ # document.
7
+ #
4
8
  class TextDocumentPositionParams
5
9
  def initialize(text_document:, position:)
6
10
  @attributes = {}
@@ -14,10 +14,10 @@ module LanguageServer
14
14
  end
15
15
 
16
16
  #
17
- # A document selector to identify the scope of the registration. If set to
18
- # null the document selector provided on the client side will be used.
17
+ # A document selector to identify the scope of the registration. If set to null
18
+ # the document selector provided on the client side will be used.
19
19
  #
20
- # @return [DocumentSelector]
20
+ # @return [DocumentSelector | null]
21
21
  def document_selector
22
22
  attributes.fetch(:documentSelector)
23
23
  end
@@ -1,6 +1,9 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
+ #
5
+ # Save registration options.
6
+ #
4
7
  class TextDocumentSaveRegistrationOptions
5
8
  def initialize(document_selector:, include_text: nil)
6
9
  @attributes = {}
@@ -12,10 +15,10 @@ module LanguageServer
12
15
  end
13
16
 
14
17
  #
15
- # A document selector to identify the scope of the registration. If set to
16
- # null the document selector provided on the client side will be used.
18
+ # A document selector to identify the scope of the registration. If set to null
19
+ # the document selector provided on the client side will be used.
17
20
  #
18
- # @return [DocumentSelector]
21
+ # @return [DocumentSelector | null]
19
22
  def document_selector
20
23
  attributes.fetch(:documentSelector)
21
24
  end
@@ -23,7 +26,7 @@ module LanguageServer
23
26
  #
24
27
  # The client is supposed to include the content on save.
25
28
  #
26
- # @return [boolean]
29
+ # @return [boolean | nil]
27
30
  def include_text
28
31
  attributes.fetch(:includeText)
29
32
  end
@@ -16,7 +16,7 @@ module LanguageServer
16
16
  #
17
17
  # Whether text document synchronization supports dynamic registration.
18
18
  #
19
- # @return [boolean]
19
+ # @return [boolean | nil]
20
20
  def dynamic_registration
21
21
  attributes.fetch(:dynamicRegistration)
22
22
  end
@@ -24,7 +24,7 @@ module LanguageServer
24
24
  #
25
25
  # The client supports sending will save notifications.
26
26
  #
27
- # @return [boolean]
27
+ # @return [boolean | nil]
28
28
  def will_save
29
29
  attributes.fetch(:willSave)
30
30
  end
@@ -34,7 +34,7 @@ module LanguageServer
34
34
  # waits for a response providing text edits which will
35
35
  # be applied to the document before it is saved.
36
36
  #
37
- # @return [boolean]
37
+ # @return [boolean | nil]
38
38
  def will_save_wait_until
39
39
  attributes.fetch(:willSaveWaitUntil)
40
40
  end
@@ -42,7 +42,7 @@ module LanguageServer
42
42
  #
43
43
  # The client supports did save notifications.
44
44
  #
45
- # @return [boolean]
45
+ # @return [boolean | nil]
46
46
  def did_save
47
47
  attributes.fetch(:didSave)
48
48
  end