language_server-protocol 3.14.0.2 → 3.16.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/lib/language_server/protocol/constant.rb +18 -0
  4. data/lib/language_server/protocol/constant/code_action_kind.rb +17 -11
  5. data/lib/language_server/protocol/constant/completion_item_tag.rb +16 -0
  6. data/lib/language_server/protocol/constant/completion_trigger_kind.rb +2 -1
  7. data/lib/language_server/protocol/constant/diagnostic_tag.rb +24 -0
  8. data/lib/language_server/protocol/constant/error_codes.rb +26 -3
  9. data/lib/language_server/protocol/constant/failure_handling_kind.rb +6 -5
  10. data/lib/language_server/protocol/constant/file_operation_pattern_kind.rb +20 -0
  11. data/lib/language_server/protocol/constant/initialize_error.rb +2 -1
  12. data/lib/language_server/protocol/constant/insert_text_mode.rb +30 -0
  13. data/lib/language_server/protocol/constant/prepare_support_default_behavior.rb +13 -0
  14. data/lib/language_server/protocol/constant/signature_help_trigger_kind.rb +24 -0
  15. data/lib/language_server/protocol/constant/symbol_tag.rb +15 -0
  16. data/lib/language_server/protocol/constant/text_document_save_reason.rb +2 -2
  17. data/lib/language_server/protocol/constant/text_document_sync_kind.rb +2 -1
  18. data/lib/language_server/protocol/constant/token_format.rb +9 -0
  19. data/lib/language_server/protocol/interface.rb +270 -6
  20. data/lib/language_server/protocol/interface/annotated_text_edit.rb +56 -0
  21. data/lib/language_server/protocol/interface/apply_workspace_edit_response.rb +24 -1
  22. data/lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb +36 -0
  23. data/lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb +43 -0
  24. data/lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb +49 -0
  25. data/lib/language_server/protocol/interface/call_hierarchy_item.rb +100 -0
  26. data/lib/language_server/protocol/interface/call_hierarchy_options.rb +30 -0
  27. data/lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb +43 -0
  28. data/lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb +49 -0
  29. data/lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb +51 -0
  30. data/lib/language_server/protocol/interface/call_hierarchy_registration_options.rb +50 -0
  31. data/lib/language_server/protocol/interface/change_annotation.rb +57 -0
  32. data/lib/language_server/protocol/interface/client_capabilities.rb +20 -2
  33. data/lib/language_server/protocol/interface/code_action.rb +52 -4
  34. data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +95 -0
  35. data/lib/language_server/protocol/interface/code_action_context.rb +8 -3
  36. data/lib/language_server/protocol/interface/code_action_options.rb +19 -6
  37. data/lib/language_server/protocol/interface/code_action_params.rb +20 -1
  38. data/lib/language_server/protocol/interface/code_action_registration_options.rb +39 -2
  39. data/lib/language_server/protocol/interface/code_description.rb +36 -0
  40. data/lib/language_server/protocol/interface/code_lens.rb +5 -3
  41. data/lib/language_server/protocol/interface/code_lens_client_capabilities.rb +33 -0
  42. data/lib/language_server/protocol/interface/code_lens_options.rb +7 -4
  43. data/lib/language_server/protocol/interface/code_lens_params.rb +20 -1
  44. data/lib/language_server/protocol/interface/code_lens_registration_options.rb +17 -2
  45. data/lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb +39 -0
  46. data/lib/language_server/protocol/interface/color_presentation.rb +7 -6
  47. data/lib/language_server/protocol/interface/color_presentation_params.rb +20 -1
  48. data/lib/language_server/protocol/interface/completion_client_capabilities.rb +59 -0
  49. data/lib/language_server/protocol/interface/completion_context.rb +5 -3
  50. data/lib/language_server/protocol/interface/completion_item.rb +71 -29
  51. data/lib/language_server/protocol/interface/completion_list.rb +2 -2
  52. data/lib/language_server/protocol/interface/completion_options.rb +39 -9
  53. data/lib/language_server/protocol/interface/completion_params.rb +39 -3
  54. data/lib/language_server/protocol/interface/completion_registration_options.rb +41 -9
  55. data/lib/language_server/protocol/interface/create_file.rb +10 -1
  56. data/lib/language_server/protocol/interface/create_files_params.rb +37 -0
  57. data/lib/language_server/protocol/interface/declaration_client_capabilities.rb +44 -0
  58. data/lib/language_server/protocol/interface/declaration_options.rb +30 -0
  59. data/lib/language_server/protocol/interface/declaration_params.rb +61 -0
  60. data/lib/language_server/protocol/interface/declaration_registration_options.rb +50 -0
  61. data/lib/language_server/protocol/interface/definition_client_capabilities.rb +42 -0
  62. data/lib/language_server/protocol/interface/definition_options.rb +30 -0
  63. data/lib/language_server/protocol/interface/definition_params.rb +61 -0
  64. data/lib/language_server/protocol/interface/definition_registration_options.rb +40 -0
  65. data/lib/language_server/protocol/interface/delete_file.rb +10 -1
  66. data/lib/language_server/protocol/interface/delete_files_params.rb +37 -0
  67. data/lib/language_server/protocol/interface/diagnostic.rb +31 -2
  68. data/lib/language_server/protocol/interface/diagnostic_related_information.rb +3 -3
  69. data/lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb +33 -0
  70. data/lib/language_server/protocol/interface/did_change_text_document_params.rb +13 -3
  71. data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +35 -0
  72. data/lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb +1 -1
  73. data/lib/language_server/protocol/interface/document_color_client_capabilities.rb +33 -0
  74. data/lib/language_server/protocol/interface/document_color_options.rb +30 -0
  75. data/lib/language_server/protocol/interface/document_color_params.rb +52 -0
  76. data/lib/language_server/protocol/interface/document_color_registration_options.rb +50 -0
  77. data/lib/language_server/protocol/interface/document_filter.rb +7 -3
  78. data/lib/language_server/protocol/interface/document_formatting_client_capabilities.rb +33 -0
  79. data/lib/language_server/protocol/interface/document_formatting_options.rb +30 -0
  80. data/lib/language_server/protocol/interface/document_formatting_params.rb +10 -1
  81. data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +40 -0
  82. data/lib/language_server/protocol/interface/document_highlight.rb +1 -1
  83. data/lib/language_server/protocol/interface/document_highlight_client_capabilities.rb +33 -0
  84. data/lib/language_server/protocol/interface/document_highlight_options.rb +30 -0
  85. data/lib/language_server/protocol/interface/document_highlight_params.rb +61 -0
  86. data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +40 -0
  87. data/lib/language_server/protocol/interface/document_link.rb +17 -3
  88. data/lib/language_server/protocol/interface/document_link_client_capabilities.rb +42 -0
  89. data/lib/language_server/protocol/interface/document_link_options.rb +7 -4
  90. data/lib/language_server/protocol/interface/document_link_params.rb +20 -1
  91. data/lib/language_server/protocol/interface/document_link_registration_options.rb +17 -2
  92. data/lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb +33 -0
  93. data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +0 -3
  94. data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +2 -2
  95. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +10 -1
  96. data/lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb +33 -0
  97. data/lib/language_server/protocol/interface/document_range_formatting_options.rb +30 -0
  98. data/lib/language_server/protocol/interface/document_range_formatting_params.rb +10 -1
  99. data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +40 -0
  100. data/lib/language_server/protocol/interface/document_symbol.rb +108 -0
  101. data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +73 -0
  102. data/lib/language_server/protocol/interface/document_symbol_options.rb +40 -0
  103. data/lib/language_server/protocol/interface/document_symbol_params.rb +20 -1
  104. data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +50 -0
  105. data/lib/language_server/protocol/interface/execute_command_client_capabilities.rb +33 -0
  106. data/lib/language_server/protocol/interface/execute_command_options.rb +7 -4
  107. data/lib/language_server/protocol/interface/execute_command_params.rb +10 -1
  108. data/lib/language_server/protocol/interface/execute_command_registration_options.rb +7 -1
  109. data/lib/language_server/protocol/interface/file_create.rb +36 -0
  110. data/lib/language_server/protocol/interface/file_delete.rb +36 -0
  111. data/lib/language_server/protocol/interface/file_operation_filter.rb +46 -0
  112. data/lib/language_server/protocol/interface/file_operation_pattern.rb +67 -0
  113. data/lib/language_server/protocol/interface/file_operation_pattern_options.rb +36 -0
  114. data/lib/language_server/protocol/interface/file_operation_registration_options.rb +36 -0
  115. data/lib/language_server/protocol/interface/file_rename.rb +45 -0
  116. data/lib/language_server/protocol/interface/file_system_watcher.rb +7 -3
  117. data/lib/language_server/protocol/interface/folding_range.rb +17 -8
  118. data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +58 -0
  119. data/lib/language_server/protocol/interface/folding_range_options.rb +30 -0
  120. data/lib/language_server/protocol/interface/folding_range_params.rb +20 -1
  121. data/lib/language_server/protocol/interface/folding_range_registration_options.rb +50 -0
  122. data/lib/language_server/protocol/interface/formatting_options.rb +28 -1
  123. data/lib/language_server/protocol/interface/hover.rb +1 -1
  124. data/lib/language_server/protocol/interface/hover_client_capabilities.rb +44 -0
  125. data/lib/language_server/protocol/interface/hover_options.rb +30 -0
  126. data/lib/language_server/protocol/interface/hover_params.rb +51 -0
  127. data/lib/language_server/protocol/interface/hover_registration_options.rb +40 -0
  128. data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +44 -0
  129. data/lib/language_server/protocol/interface/implementation_options.rb +30 -0
  130. data/lib/language_server/protocol/interface/implementation_params.rb +61 -0
  131. data/lib/language_server/protocol/interface/implementation_registration_options.rb +50 -0
  132. data/lib/language_server/protocol/interface/initialize_params.rb +38 -7
  133. data/lib/language_server/protocol/interface/initialize_result.rb +10 -1
  134. data/lib/language_server/protocol/interface/insert_replace_edit.rb +54 -0
  135. data/lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb +36 -0
  136. data/lib/language_server/protocol/interface/linked_editing_range_options.rb +30 -0
  137. data/lib/language_server/protocol/interface/linked_editing_range_params.rb +51 -0
  138. data/lib/language_server/protocol/interface/linked_editing_range_registration_options.rb +50 -0
  139. data/lib/language_server/protocol/interface/linked_editing_ranges.rb +45 -0
  140. data/lib/language_server/protocol/interface/location_link.rb +11 -6
  141. data/lib/language_server/protocol/interface/log_message_params.rb +1 -1
  142. data/lib/language_server/protocol/interface/log_trace_params.rb +43 -0
  143. data/lib/language_server/protocol/interface/markdown_client_capabilities.rb +45 -0
  144. data/lib/language_server/protocol/interface/markup_content.rb +9 -7
  145. data/lib/language_server/protocol/interface/moniker.rb +64 -0
  146. data/lib/language_server/protocol/interface/moniker_client_capabilities.rb +36 -0
  147. data/lib/language_server/protocol/interface/moniker_options.rb +30 -0
  148. data/lib/language_server/protocol/interface/moniker_params.rb +61 -0
  149. data/lib/language_server/protocol/interface/moniker_registration_options.rb +40 -0
  150. data/lib/language_server/protocol/interface/notification_message.rb +7 -2
  151. data/lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb +50 -0
  152. data/lib/language_server/protocol/interface/parameter_information.rb +7 -5
  153. data/lib/language_server/protocol/interface/partial_result_params.rb +34 -0
  154. data/lib/language_server/protocol/interface/position.rb +5 -5
  155. data/lib/language_server/protocol/interface/prepare_rename_params.rb +42 -0
  156. data/lib/language_server/protocol/interface/progress_params.rb +42 -0
  157. data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +73 -0
  158. data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +11 -1
  159. data/lib/language_server/protocol/interface/reference_client_capabilities.rb +33 -0
  160. data/lib/language_server/protocol/interface/reference_options.rb +30 -0
  161. data/lib/language_server/protocol/interface/reference_params.rb +37 -2
  162. data/lib/language_server/protocol/interface/reference_registration_options.rb +40 -0
  163. data/lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb +45 -0
  164. data/lib/language_server/protocol/interface/rename_client_capabilities.rb +69 -0
  165. data/lib/language_server/protocol/interface/rename_file.rb +10 -1
  166. data/lib/language_server/protocol/interface/rename_files_params.rb +38 -0
  167. data/lib/language_server/protocol/interface/rename_options.rb +7 -4
  168. data/lib/language_server/protocol/interface/rename_params.rb +12 -3
  169. data/lib/language_server/protocol/interface/rename_registration_options.rb +18 -3
  170. data/lib/language_server/protocol/interface/request_message.rb +7 -2
  171. data/lib/language_server/protocol/interface/response_error.rb +2 -2
  172. data/lib/language_server/protocol/interface/response_message.rb +10 -5
  173. data/lib/language_server/protocol/interface/save_options.rb +0 -3
  174. data/lib/language_server/protocol/interface/selection_range.rb +43 -0
  175. data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +36 -0
  176. data/lib/language_server/protocol/interface/selection_range_options.rb +30 -0
  177. data/lib/language_server/protocol/interface/selection_range_params.rb +61 -0
  178. data/lib/language_server/protocol/interface/selection_range_registration_options.rb +50 -0
  179. data/lib/language_server/protocol/interface/semantic_tokens.rb +45 -0
  180. data/lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb +97 -0
  181. data/lib/language_server/protocol/interface/semantic_tokens_delta.rb +40 -0
  182. data/lib/language_server/protocol/interface/semantic_tokens_delta_params.rb +62 -0
  183. data/lib/language_server/protocol/interface/{folding_range_provider_options.rb → semantic_tokens_delta_partial_result.rb} +8 -5
  184. data/lib/language_server/protocol/interface/semantic_tokens_edit.rb +51 -0
  185. data/lib/language_server/protocol/interface/semantic_tokens_legend.rb +42 -0
  186. data/lib/language_server/protocol/interface/semantic_tokens_options.rb +58 -0
  187. data/lib/language_server/protocol/interface/semantic_tokens_params.rb +52 -0
  188. data/lib/language_server/protocol/interface/{color_provider_options.rb → semantic_tokens_partial_result.rb} +8 -5
  189. data/lib/language_server/protocol/interface/semantic_tokens_range_params.rb +61 -0
  190. data/lib/language_server/protocol/interface/semantic_tokens_registration_options.rb +78 -0
  191. data/lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb +39 -0
  192. data/lib/language_server/protocol/interface/server_capabilities.rb +108 -60
  193. data/lib/language_server/protocol/interface/set_trace_params.rb +33 -0
  194. data/lib/language_server/protocol/interface/show_document_client_capabilities.rb +37 -0
  195. data/lib/language_server/protocol/interface/show_document_params.rb +71 -0
  196. data/lib/language_server/protocol/interface/show_document_result.rb +36 -0
  197. data/lib/language_server/protocol/interface/show_message_params.rb +1 -1
  198. data/lib/language_server/protocol/interface/show_message_request_client_capabilities.rb +36 -0
  199. data/lib/language_server/protocol/interface/show_message_request_params.rb +1 -1
  200. data/lib/language_server/protocol/interface/signature_help.rb +7 -4
  201. data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +55 -0
  202. data/lib/language_server/protocol/interface/signature_help_context.rb +74 -0
  203. data/lib/language_server/protocol/interface/signature_help_options.rb +20 -4
  204. data/lib/language_server/protocol/interface/signature_help_params.rb +62 -0
  205. data/lib/language_server/protocol/interface/signature_help_registration_options.rb +30 -2
  206. data/lib/language_server/protocol/interface/signature_information.rb +12 -1
  207. data/lib/language_server/protocol/interface/symbol_information.rb +11 -2
  208. data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +11 -2
  209. data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +123 -86
  210. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +10 -6
  211. data/lib/language_server/protocol/interface/text_document_edit.rb +2 -2
  212. data/lib/language_server/protocol/interface/text_document_registration_options.rb +6 -3
  213. data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +10 -1
  214. data/lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb +62 -0
  215. data/lib/language_server/protocol/interface/text_document_sync_options.rb +14 -8
  216. data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +44 -0
  217. data/lib/language_server/protocol/interface/type_definition_options.rb +30 -0
  218. data/lib/language_server/protocol/interface/type_definition_params.rb +61 -0
  219. data/lib/language_server/protocol/interface/type_definition_registration_options.rb +50 -0
  220. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +12 -8
  221. data/lib/language_server/protocol/interface/will_save_text_document_params.rb +1 -1
  222. data/lib/language_server/protocol/interface/work_done_progress_begin.rb +80 -0
  223. data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +33 -0
  224. data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +33 -0
  225. data/lib/language_server/protocol/interface/work_done_progress_end.rb +40 -0
  226. data/lib/language_server/protocol/interface/work_done_progress_options.rb +30 -0
  227. data/lib/language_server/protocol/interface/work_done_progress_params.rb +33 -0
  228. data/lib/language_server/protocol/interface/work_done_progress_report.rb +70 -0
  229. data/lib/language_server/protocol/interface/workspace_edit.rb +25 -8
  230. data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +75 -0
  231. data/lib/language_server/protocol/interface/workspace_folder.rb +2 -2
  232. data/lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb +48 -0
  233. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +53 -0
  234. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +30 -0
  235. data/lib/language_server/protocol/interface/workspace_symbol_params.rb +22 -2
  236. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +30 -0
  237. data/lib/language_server/protocol/transport/io/reader.rb +1 -1
  238. data/lib/language_server/protocol/version.rb +1 -1
  239. metadata +154 -15
  240. data/lib/language_server/protocol/interface/workspace_client_capabilities.rb +0 -104
@@ -0,0 +1,33 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkDoneProgressCancelParams
5
+ def initialize(token:)
6
+ @attributes = {}
7
+
8
+ @attributes[:token] = token
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # The token to be used to report progress.
15
+ #
16
+ # @return [ProgressToken]
17
+ def token
18
+ attributes.fetch(:token)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_hash
24
+ attributes
25
+ end
26
+
27
+ def to_json(*args)
28
+ to_hash.to_json(*args)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,33 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkDoneProgressCreateParams
5
+ def initialize(token:)
6
+ @attributes = {}
7
+
8
+ @attributes[:token] = token
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # The token to be used to report progress.
15
+ #
16
+ # @return [ProgressToken]
17
+ def token
18
+ attributes.fetch(:token)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_hash
24
+ attributes
25
+ end
26
+
27
+ def to_json(*args)
28
+ to_hash.to_json(*args)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,40 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkDoneProgressEnd
5
+ def initialize(kind:, message: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:kind] = kind
9
+ @attributes[:message] = message if message
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ # @return ["end"]
15
+ def kind
16
+ attributes.fetch(:kind)
17
+ end
18
+
19
+ #
20
+ # Optional, a final message indicating to for example indicate the outcome
21
+ # of the operation.
22
+ #
23
+ # @return [string]
24
+ def message
25
+ attributes.fetch(:message)
26
+ end
27
+
28
+ attr_reader :attributes
29
+
30
+ def to_hash
31
+ attributes
32
+ end
33
+
34
+ def to_json(*args)
35
+ to_hash.to_json(*args)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,30 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkDoneProgressOptions
5
+ def initialize(work_done_progress: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ # @return [boolean]
14
+ def work_done_progress
15
+ attributes.fetch(:workDoneProgress)
16
+ end
17
+
18
+ attr_reader :attributes
19
+
20
+ def to_hash
21
+ attributes
22
+ end
23
+
24
+ def to_json(*args)
25
+ to_hash.to_json(*args)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,33 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkDoneProgressParams
5
+ def initialize(work_done_token: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:workDoneToken] = work_done_token if work_done_token
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # An optional token that a server can use to report work done progress.
15
+ #
16
+ # @return [ProgressToken]
17
+ def work_done_token
18
+ attributes.fetch(:workDoneToken)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_hash
24
+ attributes
25
+ end
26
+
27
+ def to_json(*args)
28
+ to_hash.to_json(*args)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,70 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkDoneProgressReport
5
+ def initialize(kind:, cancellable: nil, message: nil, percentage: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:kind] = kind
9
+ @attributes[:cancellable] = cancellable if cancellable
10
+ @attributes[:message] = message if message
11
+ @attributes[:percentage] = percentage if percentage
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ # @return ["report"]
17
+ def kind
18
+ attributes.fetch(:kind)
19
+ end
20
+
21
+ #
22
+ # Controls enablement state of a cancel button. This property is only valid
23
+ # if a cancel button got requested in the `WorkDoneProgressStart` payload.
24
+ #
25
+ # Clients that don't support cancellation or don't support control the
26
+ # button's enablement state are allowed to ignore the setting.
27
+ #
28
+ # @return [boolean]
29
+ def cancellable
30
+ attributes.fetch(:cancellable)
31
+ end
32
+
33
+ #
34
+ # Optional, more detailed associated progress message. Contains
35
+ # complementary information to the `title`.
36
+ #
37
+ # Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
38
+ # If unset, the previous progress message (if any) is still valid.
39
+ #
40
+ # @return [string]
41
+ def message
42
+ attributes.fetch(:message)
43
+ end
44
+
45
+ #
46
+ # Optional progress percentage to display (value 100 is considered 100%).
47
+ # If not provided infinite progress is assumed and clients are allowed
48
+ # to ignore the `percentage` value in subsequent in report notifications.
49
+ #
50
+ # The value should be steadily rising. Clients are free to ignore values
51
+ # that are not following this rule. The value range is [0, 100]
52
+ #
53
+ # @return [number]
54
+ def percentage
55
+ attributes.fetch(:percentage)
56
+ end
57
+
58
+ attr_reader :attributes
59
+
60
+ def to_hash
61
+ attributes
62
+ end
63
+
64
+ def to_json(*args)
65
+ to_hash.to_json(*args)
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -2,11 +2,12 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  class WorkspaceEdit
5
- def initialize(changes: nil, document_changes: nil)
5
+ def initialize(changes: nil, document_changes: nil, change_annotations: nil)
6
6
  @attributes = {}
7
7
 
8
8
  @attributes[:changes] = changes if changes
9
9
  @attributes[:documentChanges] = document_changes if document_changes
10
+ @attributes[:changeAnnotations] = change_annotations if change_annotations
10
11
 
11
12
  @attributes.freeze
12
13
  end
@@ -14,28 +15,44 @@ module LanguageServer
14
15
  #
15
16
  # Holds changes to existing resources.
16
17
  #
17
- # @return [{ [uri: string]: TextEdit[]; }]
18
+ # @return [{}]
18
19
  def changes
19
20
  attributes.fetch(:changes)
20
21
  end
21
22
 
22
23
  #
23
- # Depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes
24
- # are either an array of `TextDocumentEdit`s to express changes to n different text documents
25
- # where each text document edit addresses a specific version of a text document. Or it can contain
26
- # above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations.
24
+ # Depending on the client capability
25
+ # `workspace.workspaceEdit.resourceOperations` document changes are either
26
+ # an array of `TextDocumentEdit`s to express changes to n different text
27
+ # documents where each text document edit addresses a specific version of
28
+ # a text document. Or it can contain above `TextDocumentEdit`s mixed with
29
+ # create, rename and delete file / folder operations.
27
30
  #
28
31
  # Whether a client supports versioned document edits is expressed via
29
32
  # `workspace.workspaceEdit.documentChanges` client capability.
30
33
  #
31
- # If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then
32
- # only plain `TextEdit`s using the `changes` property are supported.
34
+ # If a client neither supports `documentChanges` nor
35
+ # `workspace.workspaceEdit.resourceOperations` then only plain `TextEdit`s
36
+ # using the `changes` property are supported.
33
37
  #
34
38
  # @return [TextDocumentEdit[] | (TextDocumentEdit | CreateFile | RenameFile | DeleteFile)[]]
35
39
  def document_changes
36
40
  attributes.fetch(:documentChanges)
37
41
  end
38
42
 
43
+ #
44
+ # A map of change annotations that can be referenced in
45
+ # `AnnotatedTextEdit`s or create, rename and delete file / folder
46
+ # operations.
47
+ #
48
+ # Whether clients honor this property depends on the client capability
49
+ # `workspace.changeAnnotationSupport`.
50
+ #
51
+ # @return [{ [id: string]: ChangeAnnotation; }]
52
+ def change_annotations
53
+ attributes.fetch(:changeAnnotations)
54
+ end
55
+
39
56
  attr_reader :attributes
40
57
 
41
58
  def to_hash
@@ -0,0 +1,75 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkspaceEditClientCapabilities
5
+ def initialize(document_changes: nil, resource_operations: nil, failure_handling: nil, normalizes_line_endings: nil, change_annotation_support: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:documentChanges] = document_changes if document_changes
9
+ @attributes[:resourceOperations] = resource_operations if resource_operations
10
+ @attributes[:failureHandling] = failure_handling if failure_handling
11
+ @attributes[:normalizesLineEndings] = normalizes_line_endings if normalizes_line_endings
12
+ @attributes[:changeAnnotationSupport] = change_annotation_support if change_annotation_support
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # The client supports versioned document changes in `WorkspaceEdit`s
19
+ #
20
+ # @return [boolean]
21
+ def document_changes
22
+ attributes.fetch(:documentChanges)
23
+ end
24
+
25
+ #
26
+ # The resource operations the client supports. Clients should at least
27
+ # support 'create', 'rename' and 'delete' files and folders.
28
+ #
29
+ # @return [ResourceOperationKind[]]
30
+ def resource_operations
31
+ attributes.fetch(:resourceOperations)
32
+ end
33
+
34
+ #
35
+ # The failure handling strategy of a client if applying the workspace edit
36
+ # fails.
37
+ #
38
+ # @return [FailureHandlingKind]
39
+ def failure_handling
40
+ attributes.fetch(:failureHandling)
41
+ end
42
+
43
+ #
44
+ # Whether the client normalizes line endings to the client specific
45
+ # setting.
46
+ # If set to `true` the client will normalize line ending characters
47
+ # in a workspace edit to the client specific new line character(s).
48
+ #
49
+ # @return [boolean]
50
+ def normalizes_line_endings
51
+ attributes.fetch(:normalizesLineEndings)
52
+ end
53
+
54
+ #
55
+ # Whether the client in general supports change annotations on text edits,
56
+ # create file, rename file and delete file changes.
57
+ #
58
+ # @return [{ groupsOnLabel?: boolean; }]
59
+ def change_annotation_support
60
+ attributes.fetch(:changeAnnotationSupport)
61
+ end
62
+
63
+ attr_reader :attributes
64
+
65
+ def to_hash
66
+ attributes
67
+ end
68
+
69
+ def to_json(*args)
70
+ to_hash.to_json(*args)
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -20,8 +20,8 @@ module LanguageServer
20
20
  end
21
21
 
22
22
  #
23
- # The name of the workspace folder. Defaults to the
24
- # uri's basename.
23
+ # The name of the workspace folder. Used to refer to this
24
+ # workspace folder in the user interface.
25
25
  #
26
26
  # @return [string]
27
27
  def name
@@ -0,0 +1,48 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkspaceFoldersServerCapabilities
5
+ def initialize(supported: nil, change_notifications: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:supported] = supported if supported
9
+ @attributes[:changeNotifications] = change_notifications if change_notifications
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The server has support for workspace folders
16
+ #
17
+ # @return [boolean]
18
+ def supported
19
+ attributes.fetch(:supported)
20
+ end
21
+
22
+ #
23
+ # Whether the server wants to receive workspace folder
24
+ # change notifications.
25
+ #
26
+ # If a string is provided, the string is treated as an ID
27
+ # under which the notification is registered on the client
28
+ # side. The ID can be used to unregister for these events
29
+ # using the `client/unregisterCapability` request.
30
+ #
31
+ # @return [string | boolean]
32
+ def change_notifications
33
+ attributes.fetch(:changeNotifications)
34
+ end
35
+
36
+ attr_reader :attributes
37
+
38
+ def to_hash
39
+ attributes
40
+ end
41
+
42
+ def to_json(*args)
43
+ to_hash.to_json(*args)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end