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,11 +1,16 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
+ #
5
+ # A completion item represents a text snippet that is
6
+ # proposed to complete text that is being typed.
7
+ #
4
8
  class CompletionItem
5
- def initialize(label:, kind: nil, tags: nil, detail: nil, documentation: nil, deprecated: nil, preselect: nil, sort_text: nil, filter_text: nil, insert_text: nil, insert_text_format: nil, insert_text_mode: nil, text_edit: nil, additional_text_edits: nil, commit_characters: nil, command: nil, data: nil)
9
+ def initialize(label:, label_details: nil, kind: nil, tags: nil, detail: nil, documentation: nil, deprecated: nil, preselect: nil, sort_text: nil, filter_text: nil, insert_text: nil, insert_text_format: nil, insert_text_mode: nil, text_edit: nil, text_edit_text: nil, additional_text_edits: nil, commit_characters: nil, command: nil, data: nil)
6
10
  @attributes = {}
7
11
 
8
12
  @attributes[:label] = label
13
+ @attributes[:labelDetails] = label_details if label_details
9
14
  @attributes[:kind] = kind if kind
10
15
  @attributes[:tags] = tags if tags
11
16
  @attributes[:detail] = detail if detail
@@ -18,6 +23,7 @@ module LanguageServer
18
23
  @attributes[:insertTextFormat] = insert_text_format if insert_text_format
19
24
  @attributes[:insertTextMode] = insert_text_mode if insert_text_mode
20
25
  @attributes[:textEdit] = text_edit if text_edit
26
+ @attributes[:textEditText] = text_edit_text if text_edit_text
21
27
  @attributes[:additionalTextEdits] = additional_text_edits if additional_text_edits
22
28
  @attributes[:commitCharacters] = commit_characters if commit_characters
23
29
  @attributes[:command] = command if command
@@ -27,21 +33,34 @@ module LanguageServer
27
33
  end
28
34
 
29
35
  #
30
- # The label of this completion item. By default
31
- # also the text that is inserted when selecting
32
- # this completion.
36
+ # The label of this completion item.
37
+ #
38
+ # The label property is also by default the text that
39
+ # is inserted when selecting this completion.
40
+ #
41
+ # If label details are provided the label itself should
42
+ # be an unqualified name of the completion item.
33
43
  #
34
44
  # @return [string]
35
45
  def label
36
46
  attributes.fetch(:label)
37
47
  end
38
48
 
49
+ #
50
+ # Additional details for the label
51
+ #
52
+ # @since 3.17.0
53
+ #
54
+ # @return [CompletionItemLabelDetails | nil]
55
+ def label_details
56
+ attributes.fetch(:labelDetails)
57
+ end
58
+
39
59
  #
40
60
  # The kind of this completion item. Based of the kind
41
- # an icon is chosen by the editor. The standardized set
42
- # of available values is defined in `CompletionItemKind`.
61
+ # an icon is chosen by the editor.
43
62
  #
44
- # @return [any]
63
+ # @return [CompletionItemKind | nil]
45
64
  def kind
46
65
  attributes.fetch(:kind)
47
66
  end
@@ -49,7 +68,9 @@ module LanguageServer
49
68
  #
50
69
  # Tags for this completion item.
51
70
  #
52
- # @return [1[]]
71
+ # @since 3.15.0
72
+ #
73
+ # @return [CompletionItemTag[] | nil]
53
74
  def tags
54
75
  attributes.fetch(:tags)
55
76
  end
@@ -58,7 +79,7 @@ module LanguageServer
58
79
  # A human-readable string with additional information
59
80
  # about this item, like type or symbol information.
60
81
  #
61
- # @return [string]
82
+ # @return [string | nil]
62
83
  def detail
63
84
  attributes.fetch(:detail)
64
85
  end
@@ -66,15 +87,16 @@ module LanguageServer
66
87
  #
67
88
  # A human-readable string that represents a doc-comment.
68
89
  #
69
- # @return [string | MarkupContent]
90
+ # @return [string | MarkupContent | nil]
70
91
  def documentation
71
92
  attributes.fetch(:documentation)
72
93
  end
73
94
 
74
95
  #
75
96
  # Indicates if this item is deprecated.
97
+ # @deprecated Use `tags` instead.
76
98
  #
77
- # @return [boolean]
99
+ # @return [boolean | nil]
78
100
  def deprecated
79
101
  attributes.fetch(:deprecated)
80
102
  end
@@ -86,35 +108,35 @@ module LanguageServer
86
108
  # tool / client decides which item that is. The rule is that the *first*
87
109
  # item of those that match best is selected.
88
110
  #
89
- # @return [boolean]
111
+ # @return [boolean | nil]
90
112
  def preselect
91
113
  attributes.fetch(:preselect)
92
114
  end
93
115
 
94
116
  #
95
117
  # A string that should be used when comparing this item
96
- # with other items. When `falsy` the label is used
97
- # as the sort text for this item.
118
+ # with other items. When `falsy` the [label](#CompletionItem.label)
119
+ # is used.
98
120
  #
99
- # @return [string]
121
+ # @return [string | nil]
100
122
  def sort_text
101
123
  attributes.fetch(:sortText)
102
124
  end
103
125
 
104
126
  #
105
127
  # A string that should be used when filtering a set of
106
- # completion items. When `falsy` the label is used as the
107
- # filter text for this item.
128
+ # completion items. When `falsy` the [label](#CompletionItem.label)
129
+ # is used.
108
130
  #
109
- # @return [string]
131
+ # @return [string | nil]
110
132
  def filter_text
111
133
  attributes.fetch(:filterText)
112
134
  end
113
135
 
114
136
  #
115
137
  # A string that should be inserted into a document when selecting
116
- # this completion. When `falsy` the label is used as the insert text
117
- # for this item.
138
+ # this completion. When `falsy` the [label](#CompletionItem.label)
139
+ # is used.
118
140
  #
119
141
  # The `insertText` is subject to interpretation by the client side.
120
142
  # Some tools might not take the string literally. For example
@@ -124,7 +146,7 @@ module LanguageServer
124
146
  # recommended to use `textEdit` instead since it avoids additional client
125
147
  # side interpretation.
126
148
  #
127
- # @return [string]
149
+ # @return [string | nil]
128
150
  def insert_text
129
151
  attributes.fetch(:insertText)
130
152
  end
@@ -134,27 +156,30 @@ module LanguageServer
134
156
  # `insertText` property and the `newText` property of a provided
135
157
  # `textEdit`. If omitted defaults to `InsertTextFormat.PlainText`.
136
158
  #
137
- # @return [InsertTextFormat]
159
+ # Please note that the insertTextFormat doesn't apply to
160
+ # `additionalTextEdits`.
161
+ #
162
+ # @return [InsertTextFormat | nil]
138
163
  def insert_text_format
139
164
  attributes.fetch(:insertTextFormat)
140
165
  end
141
166
 
142
167
  #
143
168
  # How whitespace and indentation is handled during completion
144
- # item insertion. If not provided the client's default value depends on
169
+ # item insertion. If not provided the clients default value depends on
145
170
  # the `textDocument.completion.insertTextMode` client capability.
146
171
  #
147
- # @return [InsertTextMode]
172
+ # @since 3.16.0
173
+ #
174
+ # @return [InsertTextMode | nil]
148
175
  def insert_text_mode
149
176
  attributes.fetch(:insertTextMode)
150
177
  end
151
178
 
152
179
  #
153
- # An edit which is applied to a document when selecting this completion.
154
- # When an edit is provided the value of `insertText` is ignored.
155
- #
156
- # *Note:* The range of the edit must be a single line range and it must
157
- # contain the position at which completion has been requested.
180
+ # An [edit](#TextEdit) which is applied to a document when selecting
181
+ # this completion. When an edit is provided the value of
182
+ # [insertText](#CompletionItem.insertText) is ignored.
158
183
  #
159
184
  # Most editors support two different operations when accepting a completion
160
185
  # item. One is to insert a completion text and the other is to replace an
@@ -171,51 +196,69 @@ module LanguageServer
171
196
  # must be a prefix of the edit's replace range, that means it must be
172
197
  # contained and starting at the same position.
173
198
  #
174
- # @return [TextEdit | InsertReplaceEdit]
199
+ # @since 3.16.0 additional type `InsertReplaceEdit`
200
+ #
201
+ # @return [TextEdit | InsertReplaceEdit | nil]
175
202
  def text_edit
176
203
  attributes.fetch(:textEdit)
177
204
  end
178
205
 
179
206
  #
180
- # An optional array of additional text edits that are applied when
181
- # selecting this completion. Edits must not overlap (including the same
182
- # insert position) with the main edit nor with themselves.
207
+ # The edit text used if the completion item is part of a CompletionList and
208
+ # CompletionList defines an item default for the text edit range.
209
+ #
210
+ # Clients will only honor this property if they opt into completion list
211
+ # item defaults using the capability `completionList.itemDefaults`.
212
+ #
213
+ # If not provided and a list's default range is provided the label
214
+ # property is used as a text.
215
+ #
216
+ # @since 3.17.0
217
+ #
218
+ # @return [string | nil]
219
+ def text_edit_text
220
+ attributes.fetch(:textEditText)
221
+ end
222
+
223
+ #
224
+ # An optional array of additional [text edits](#TextEdit) that are applied when
225
+ # selecting this completion. Edits must not overlap (including the same insert position)
226
+ # with the main [edit](#CompletionItem.textEdit) nor with themselves.
183
227
  #
184
- # Additional text edits should be used to change text unrelated to the
185
- # current cursor position (for example adding an import statement at the
186
- # top of the file if the completion item will insert an unqualified type).
228
+ # Additional text edits should be used to change text unrelated to the current cursor position
229
+ # (for example adding an import statement at the top of the file if the completion item will
230
+ # insert an unqualified type).
187
231
  #
188
- # @return [TextEdit[]]
232
+ # @return [TextEdit[] | nil]
189
233
  def additional_text_edits
190
234
  attributes.fetch(:additionalTextEdits)
191
235
  end
192
236
 
193
237
  #
194
- # An optional set of characters that when pressed while this completion is
195
- # active will accept it first and then type that character. *Note* that all
196
- # commit characters should have `length=1` and that superfluous characters
197
- # will be ignored.
238
+ # An optional set of characters that when pressed while this completion is active will accept it first and
239
+ # then type that character. *Note* that all commit characters should have `length=1` and that superfluous
240
+ # characters will be ignored.
198
241
  #
199
- # @return [string[]]
242
+ # @return [string[] | nil]
200
243
  def commit_characters
201
244
  attributes.fetch(:commitCharacters)
202
245
  end
203
246
 
204
247
  #
205
- # An optional command that is executed *after* inserting this completion.
206
- # *Note* that additional modifications to the current document should be
207
- # described with the additionalTextEdits-property.
248
+ # An optional [command](#Command) that is executed *after* inserting this completion. *Note* that
249
+ # additional modifications to the current document should be described with the
250
+ # [additionalTextEdits](#CompletionItem.additionalTextEdits)-property.
208
251
  #
209
- # @return [Command]
252
+ # @return [Command | nil]
210
253
  def command
211
254
  attributes.fetch(:command)
212
255
  end
213
256
 
214
257
  #
215
- # A data entry field that is preserved on a completion item between
216
- # a completion and a completion resolve request.
258
+ # A data entry field that is preserved on a completion item between a
259
+ # [CompletionRequest](#CompletionRequest) and a [CompletionResolveRequest](#CompletionResolveRequest).
217
260
  #
218
- # @return [any]
261
+ # @return [LSPAny | nil]
219
262
  def data
220
263
  attributes.fetch(:data)
221
264
  end
@@ -0,0 +1,49 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Additional details for a completion item label.
6
+ #
7
+ # @since 3.17.0
8
+ #
9
+ class CompletionItemLabelDetails
10
+ def initialize(detail: nil, description: nil)
11
+ @attributes = {}
12
+
13
+ @attributes[:detail] = detail if detail
14
+ @attributes[:description] = description if description
15
+
16
+ @attributes.freeze
17
+ end
18
+
19
+ #
20
+ # An optional string which is rendered less prominently directly after {@link CompletionItem.label label},
21
+ # without any spacing. Should be used for function signatures and type annotations.
22
+ #
23
+ # @return [string | nil]
24
+ def detail
25
+ attributes.fetch(:detail)
26
+ end
27
+
28
+ #
29
+ # An optional string which is rendered less prominently after {@link CompletionItem.detail}. Should be used
30
+ # for fully qualified names and file paths.
31
+ #
32
+ # @return [string | nil]
33
+ def description
34
+ attributes.fetch(:description)
35
+ end
36
+
37
+ attr_reader :attributes
38
+
39
+ def to_hash
40
+ attributes
41
+ end
42
+
43
+ def to_json(*args)
44
+ to_hash.to_json(*args)
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -2,28 +2,51 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  #
5
- # Represents a collection of [completion items](#CompletionItem) to be
6
- # presented in the editor.
5
+ # Represents a collection of [completion items](#CompletionItem) to be presented
6
+ # in the editor.
7
7
  #
8
8
  class CompletionList
9
- def initialize(is_incomplete:, items:)
9
+ def initialize(is_incomplete:, item_defaults: nil, items:)
10
10
  @attributes = {}
11
11
 
12
12
  @attributes[:isIncomplete] = is_incomplete
13
+ @attributes[:itemDefaults] = item_defaults if item_defaults
13
14
  @attributes[:items] = items
14
15
 
15
16
  @attributes.freeze
16
17
  end
17
18
 
18
19
  #
19
- # This list it not complete. Further typing should result in recomputing
20
- # this list.
20
+ # This list it not complete. Further typing results in recomputing this list.
21
+ #
22
+ # Recomputed lists have all their items replaced (not appended) in the
23
+ # incomplete completion sessions.
21
24
  #
22
25
  # @return [boolean]
23
26
  def is_incomplete
24
27
  attributes.fetch(:isIncomplete)
25
28
  end
26
29
 
30
+ #
31
+ # In many cases the items of an actual completion result share the same
32
+ # value for properties like `commitCharacters` or the range of a text
33
+ # edit. A completion list can therefore define item defaults which will
34
+ # be used if a completion item itself doesn't specify the value.
35
+ #
36
+ # If a completion list specifies a default value and a completion item
37
+ # also specifies a corresponding value the one from the item is used.
38
+ #
39
+ # Servers are only allowed to return default values if the client
40
+ # signals support for this via the `completionList.itemDefaults`
41
+ # capability.
42
+ #
43
+ # @since 3.17.0
44
+ #
45
+ # @return [{ commitCharacters:string[], editRange:Range | { insert:Range, replace:Range }, insertTextFormat:InsertTextFormat, insertTextMode:InsertTextMode, data:LSPAny } | nil]
46
+ def item_defaults
47
+ attributes.fetch(:itemDefaults)
48
+ end
49
+
27
50
  #
28
51
  # The completion items.
29
52
  #
@@ -5,49 +5,44 @@ module LanguageServer
5
5
  # Completion options.
6
6
  #
7
7
  class CompletionOptions
8
- def initialize(work_done_progress: nil, trigger_characters: nil, all_commit_characters: nil, resolve_provider: nil)
8
+ def initialize(trigger_characters: nil, all_commit_characters: nil, resolve_provider: nil, completion_item: nil, work_done_progress: nil)
9
9
  @attributes = {}
10
10
 
11
- @attributes[:workDoneProgress] = work_done_progress if work_done_progress
12
11
  @attributes[:triggerCharacters] = trigger_characters if trigger_characters
13
12
  @attributes[:allCommitCharacters] = all_commit_characters if all_commit_characters
14
13
  @attributes[:resolveProvider] = resolve_provider if resolve_provider
14
+ @attributes[:completionItem] = completion_item if completion_item
15
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
15
16
 
16
17
  @attributes.freeze
17
18
  end
18
19
 
19
- # @return [boolean]
20
- def work_done_progress
21
- attributes.fetch(:workDoneProgress)
22
- end
23
-
24
20
  #
25
- # Most tools trigger completion request automatically without explicitly
26
- # requesting it using a keyboard shortcut (e.g. Ctrl+Space). Typically they
27
- # do so when the user starts to type an identifier. For example if the user
28
- # types `c` in a JavaScript file code complete will automatically pop up
29
- # present `console` besides others as a completion item. Characters that
30
- # make up identifiers don't need to be listed here.
21
+ # Most tools trigger completion request automatically without explicitly requesting
22
+ # it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
23
+ # starts to type an identifier. For example if the user types `c` in a JavaScript file
24
+ # code complete will automatically pop up present `console` besides others as a
25
+ # completion item. Characters that make up identifiers don't need to be listed here.
31
26
  #
32
- # If code complete should automatically be trigger on characters not being
33
- # valid inside an identifier (for example `.` in JavaScript) list them in
34
- # `triggerCharacters`.
27
+ # If code complete should automatically be trigger on characters not being valid inside
28
+ # an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
35
29
  #
36
- # @return [string[]]
30
+ # @return [string[] | nil]
37
31
  def trigger_characters
38
32
  attributes.fetch(:triggerCharacters)
39
33
  end
40
34
 
41
35
  #
42
- # The list of all possible characters that commit a completion. This field
43
- # can be used if clients don't support individual commit characters per
44
- # completion item. See client capability
45
- # `completion.completionItem.commitCharactersSupport`.
36
+ # The list of all possible characters that commit a completion. This field can be used
37
+ # if clients don't support individual commit characters per completion item. See
38
+ # `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`
46
39
  #
47
- # If a server provides both `allCommitCharacters` and commit characters on
48
- # an individual completion item the ones on the completion item win.
40
+ # If a server provides both `allCommitCharacters` and commit characters on an individual
41
+ # completion item the ones on the completion item win.
49
42
  #
50
- # @return [string[]]
43
+ # @since 3.2.0
44
+ #
45
+ # @return [string[] | nil]
51
46
  def all_commit_characters
52
47
  attributes.fetch(:allCommitCharacters)
53
48
  end
@@ -56,11 +51,27 @@ module LanguageServer
56
51
  # The server provides support to resolve additional
57
52
  # information for a completion item.
58
53
  #
59
- # @return [boolean]
54
+ # @return [boolean | nil]
60
55
  def resolve_provider
61
56
  attributes.fetch(:resolveProvider)
62
57
  end
63
58
 
59
+ #
60
+ # The server supports the following `CompletionItem` specific
61
+ # capabilities.
62
+ #
63
+ # @since 3.17.0
64
+ #
65
+ # @return [{ labelDetailsSupport:boolean } | nil]
66
+ def completion_item
67
+ attributes.fetch(:completionItem)
68
+ end
69
+
70
+ # @return [boolean | nil]
71
+ def work_done_progress
72
+ attributes.fetch(:workDoneProgress)
73
+ end
74
+
64
75
  attr_reader :attributes
65
76
 
66
77
  def to_hash
@@ -1,19 +1,31 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
+ #
5
+ # Completion parameters
6
+ #
4
7
  class CompletionParams
5
- def initialize(text_document:, position:, work_done_token: nil, partial_result_token: nil, context: nil)
8
+ def initialize(context: nil, text_document:, position:, work_done_token: nil, partial_result_token: nil)
6
9
  @attributes = {}
7
10
 
11
+ @attributes[:context] = context if context
8
12
  @attributes[:textDocument] = text_document
9
13
  @attributes[:position] = position
10
14
  @attributes[:workDoneToken] = work_done_token if work_done_token
11
15
  @attributes[:partialResultToken] = partial_result_token if partial_result_token
12
- @attributes[:context] = context if context
13
16
 
14
17
  @attributes.freeze
15
18
  end
16
19
 
20
+ #
21
+ # The completion context. This is only available it the client specifies
22
+ # to send this using the client capability `textDocument.completion.contextSupport === true`
23
+ #
24
+ # @return [CompletionContext | nil]
25
+ def context
26
+ attributes.fetch(:context)
27
+ end
28
+
17
29
  #
18
30
  # The text document.
19
31
  #
@@ -33,30 +45,20 @@ module LanguageServer
33
45
  #
34
46
  # An optional token that a server can use to report work done progress.
35
47
  #
36
- # @return [ProgressToken]
48
+ # @return [ProgressToken | nil]
37
49
  def work_done_token
38
50
  attributes.fetch(:workDoneToken)
39
51
  end
40
52
 
41
53
  #
42
- # An optional token that a server can use to report partial results (e.g.
43
- # streaming) to the client.
54
+ # An optional token that a server can use to report partial results (e.g. streaming) to
55
+ # the client.
44
56
  #
45
- # @return [ProgressToken]
57
+ # @return [ProgressToken | nil]
46
58
  def partial_result_token
47
59
  attributes.fetch(:partialResultToken)
48
60
  end
49
61
 
50
- #
51
- # The completion context. This is only available if the client specifies
52
- # to send this using the client capability
53
- # `completion.contextSupport === true`
54
- #
55
- # @return [CompletionContext]
56
- def context
57
- attributes.fetch(:context)
58
- end
59
-
60
62
  attr_reader :attributes
61
63
 
62
64
  def to_hash
@@ -1,60 +1,58 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
+ #
5
+ # Registration options for a [CompletionRequest](#CompletionRequest).
6
+ #
4
7
  class CompletionRegistrationOptions
5
- def initialize(document_selector:, work_done_progress: nil, trigger_characters: nil, all_commit_characters: nil, resolve_provider: nil)
8
+ def initialize(document_selector:, trigger_characters: nil, all_commit_characters: nil, resolve_provider: nil, completion_item: nil, work_done_progress: nil)
6
9
  @attributes = {}
7
10
 
8
11
  @attributes[:documentSelector] = document_selector
9
- @attributes[:workDoneProgress] = work_done_progress if work_done_progress
10
12
  @attributes[:triggerCharacters] = trigger_characters if trigger_characters
11
13
  @attributes[:allCommitCharacters] = all_commit_characters if all_commit_characters
12
14
  @attributes[:resolveProvider] = resolve_provider if resolve_provider
15
+ @attributes[:completionItem] = completion_item if completion_item
16
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
13
17
 
14
18
  @attributes.freeze
15
19
  end
16
20
 
17
21
  #
18
- # A document selector to identify the scope of the registration. If set to
19
- # null the document selector provided on the client side will be used.
22
+ # A document selector to identify the scope of the registration. If set to null
23
+ # the document selector provided on the client side will be used.
20
24
  #
21
- # @return [DocumentSelector]
25
+ # @return [DocumentSelector | null]
22
26
  def document_selector
23
27
  attributes.fetch(:documentSelector)
24
28
  end
25
29
 
26
- # @return [boolean]
27
- def work_done_progress
28
- attributes.fetch(:workDoneProgress)
29
- end
30
-
31
30
  #
32
- # Most tools trigger completion request automatically without explicitly
33
- # requesting it using a keyboard shortcut (e.g. Ctrl+Space). Typically they
34
- # do so when the user starts to type an identifier. For example if the user
35
- # types `c` in a JavaScript file code complete will automatically pop up
36
- # present `console` besides others as a completion item. Characters that
37
- # make up identifiers don't need to be listed here.
31
+ # Most tools trigger completion request automatically without explicitly requesting
32
+ # it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
33
+ # starts to type an identifier. For example if the user types `c` in a JavaScript file
34
+ # code complete will automatically pop up present `console` besides others as a
35
+ # completion item. Characters that make up identifiers don't need to be listed here.
38
36
  #
39
- # If code complete should automatically be trigger on characters not being
40
- # valid inside an identifier (for example `.` in JavaScript) list them in
41
- # `triggerCharacters`.
37
+ # If code complete should automatically be trigger on characters not being valid inside
38
+ # an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
42
39
  #
43
- # @return [string[]]
40
+ # @return [string[] | nil]
44
41
  def trigger_characters
45
42
  attributes.fetch(:triggerCharacters)
46
43
  end
47
44
 
48
45
  #
49
- # The list of all possible characters that commit a completion. This field
50
- # can be used if clients don't support individual commit characters per
51
- # completion item. See client capability
52
- # `completion.completionItem.commitCharactersSupport`.
46
+ # The list of all possible characters that commit a completion. This field can be used
47
+ # if clients don't support individual commit characters per completion item. See
48
+ # `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`
53
49
  #
54
- # If a server provides both `allCommitCharacters` and commit characters on
55
- # an individual completion item the ones on the completion item win.
50
+ # If a server provides both `allCommitCharacters` and commit characters on an individual
51
+ # completion item the ones on the completion item win.
56
52
  #
57
- # @return [string[]]
53
+ # @since 3.2.0
54
+ #
55
+ # @return [string[] | nil]
58
56
  def all_commit_characters
59
57
  attributes.fetch(:allCommitCharacters)
60
58
  end
@@ -63,11 +61,27 @@ module LanguageServer
63
61
  # The server provides support to resolve additional
64
62
  # information for a completion item.
65
63
  #
66
- # @return [boolean]
64
+ # @return [boolean | nil]
67
65
  def resolve_provider
68
66
  attributes.fetch(:resolveProvider)
69
67
  end
70
68
 
69
+ #
70
+ # The server supports the following `CompletionItem` specific
71
+ # capabilities.
72
+ #
73
+ # @since 3.17.0
74
+ #
75
+ # @return [{ labelDetailsSupport:boolean } | nil]
76
+ def completion_item
77
+ attributes.fetch(:completionItem)
78
+ end
79
+
80
+ # @return [boolean | nil]
81
+ def work_done_progress
82
+ attributes.fetch(:workDoneProgress)
83
+ end
84
+
71
85
  attr_reader :attributes
72
86
 
73
87
  def to_hash