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,51 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class CallHierarchyPrepareParams
5
+ def initialize(text_document:, position:, work_done_token: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+ @attributes[:position] = position
10
+ @attributes[:workDoneToken] = work_done_token if work_done_token
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # The text document.
17
+ #
18
+ # @return [TextDocumentIdentifier]
19
+ def text_document
20
+ attributes.fetch(:textDocument)
21
+ end
22
+
23
+ #
24
+ # The position inside the text document.
25
+ #
26
+ # @return [Position]
27
+ def position
28
+ attributes.fetch(:position)
29
+ end
30
+
31
+ #
32
+ # An optional token that a server can use to report work done progress.
33
+ #
34
+ # @return [ProgressToken]
35
+ def work_done_token
36
+ attributes.fetch(:workDoneToken)
37
+ end
38
+
39
+ attr_reader :attributes
40
+
41
+ def to_hash
42
+ attributes
43
+ end
44
+
45
+ def to_json(*args)
46
+ to_hash.to_json(*args)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,50 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class CallHierarchyRegistrationOptions
5
+ def initialize(document_selector:, work_done_progress: nil, id: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:documentSelector] = document_selector
9
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
10
+ @attributes[:id] = id if id
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # A document selector to identify the scope of the registration. If set to
17
+ # null the document selector provided on the client side will be used.
18
+ #
19
+ # @return [DocumentSelector]
20
+ def document_selector
21
+ attributes.fetch(:documentSelector)
22
+ end
23
+
24
+ # @return [boolean]
25
+ def work_done_progress
26
+ attributes.fetch(:workDoneProgress)
27
+ end
28
+
29
+ #
30
+ # The id used to register the request. The id can be used to deregister
31
+ # the request again. See also Registration#id.
32
+ #
33
+ # @return [string]
34
+ def id
35
+ attributes.fetch(:id)
36
+ end
37
+
38
+ attr_reader :attributes
39
+
40
+ def to_hash
41
+ attributes
42
+ end
43
+
44
+ def to_json(*args)
45
+ to_hash.to_json(*args)
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,57 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Additional information that describes document changes.
6
+ #
7
+ class ChangeAnnotation
8
+ def initialize(label:, needs_confirmation: nil, description: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:label] = label
12
+ @attributes[:needsConfirmation] = needs_confirmation if needs_confirmation
13
+ @attributes[:description] = description if description
14
+
15
+ @attributes.freeze
16
+ end
17
+
18
+ #
19
+ # A human-readable string describing the actual change. The string
20
+ # is rendered prominent in the user interface.
21
+ #
22
+ # @return [string]
23
+ def label
24
+ attributes.fetch(:label)
25
+ end
26
+
27
+ #
28
+ # A flag which indicates that user confirmation is needed
29
+ # before applying the change.
30
+ #
31
+ # @return [boolean]
32
+ def needs_confirmation
33
+ attributes.fetch(:needsConfirmation)
34
+ end
35
+
36
+ #
37
+ # A human-readable string which is rendered less prominent in
38
+ # the user interface.
39
+ #
40
+ # @return [string]
41
+ def description
42
+ attributes.fetch(:description)
43
+ end
44
+
45
+ attr_reader :attributes
46
+
47
+ def to_hash
48
+ attributes
49
+ end
50
+
51
+ def to_json(*args)
52
+ to_hash.to_json(*args)
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -2,11 +2,13 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  class ClientCapabilities
5
- def initialize(workspace: nil, text_document: nil, experimental: nil)
5
+ def initialize(workspace: nil, text_document: nil, window: nil, general: nil, experimental: nil)
6
6
  @attributes = {}
7
7
 
8
8
  @attributes[:workspace] = workspace if workspace
9
9
  @attributes[:textDocument] = text_document if text_document
10
+ @attributes[:window] = window if window
11
+ @attributes[:general] = general if general
10
12
  @attributes[:experimental] = experimental if experimental
11
13
 
12
14
  @attributes.freeze
@@ -15,7 +17,7 @@ module LanguageServer
15
17
  #
16
18
  # Workspace specific client capabilities.
17
19
  #
18
- # @return [WorkspaceClientCapabilities]
20
+ # @return [{ applyEdit?: boolean; workspaceEdit?: WorkspaceEditClientCapabilities; didChangeConfiguration?: DidChangeConfigurationClientCapabilities; ... 7 more ...; fileOperations?: { ...; }; }]
19
21
  def workspace
20
22
  attributes.fetch(:workspace)
21
23
  end
@@ -28,6 +30,22 @@ module LanguageServer
28
30
  attributes.fetch(:textDocument)
29
31
  end
30
32
 
33
+ #
34
+ # Window specific client capabilities.
35
+ #
36
+ # @return [{ workDoneProgress?: boolean; showMessage?: ShowMessageRequestClientCapabilities; showDocument?: ShowDocumentClientCapabilities; }]
37
+ def window
38
+ attributes.fetch(:window)
39
+ end
40
+
41
+ #
42
+ # General client capabilities.
43
+ #
44
+ # @return [{ regularExpressions?: RegularExpressionsClientCapabilities; markdown?: MarkdownClientCapabilities; }]
45
+ def general
46
+ attributes.fetch(:general)
47
+ end
48
+
31
49
  #
32
50
  # Experimental client capabilities.
33
51
  #
@@ -2,20 +2,24 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  #
5
- # A code action represents a change that can be performed in code, e.g. to fix a problem or
6
- # to refactor code.
5
+ # A code action represents a change that can be performed in code, e.g. to fix
6
+ # a problem or to refactor code.
7
7
  #
8
- # A CodeAction must set either `edit` and/or a `command`. If both are supplied, the `edit` is applied first, then the `command` is executed.
8
+ # A CodeAction must set either `edit` and/or a `command`. If both are supplied,
9
+ # the `edit` is applied first, then the `command` is executed.
9
10
  #
10
11
  class CodeAction
11
- def initialize(title:, kind: nil, diagnostics: nil, edit: nil, command: nil)
12
+ def initialize(title:, kind: nil, diagnostics: nil, is_preferred: nil, disabled: nil, edit: nil, command: nil, data: nil)
12
13
  @attributes = {}
13
14
 
14
15
  @attributes[:title] = title
15
16
  @attributes[:kind] = kind if kind
16
17
  @attributes[:diagnostics] = diagnostics if diagnostics
18
+ @attributes[:isPreferred] = is_preferred if is_preferred
19
+ @attributes[:disabled] = disabled if disabled
17
20
  @attributes[:edit] = edit if edit
18
21
  @attributes[:command] = command if command
22
+ @attributes[:data] = data if data
19
23
 
20
24
  @attributes.freeze
21
25
  end
@@ -46,6 +50,41 @@ module LanguageServer
46
50
  attributes.fetch(:diagnostics)
47
51
  end
48
52
 
53
+ #
54
+ # Marks this as a preferred action. Preferred actions are used by the
55
+ # `auto fix` command and can be targeted by keybindings.
56
+ #
57
+ # A quick fix should be marked preferred if it properly addresses the
58
+ # underlying error. A refactoring should be marked preferred if it is the
59
+ # most reasonable choice of actions to take.
60
+ #
61
+ # @return [boolean]
62
+ def is_preferred
63
+ attributes.fetch(:isPreferred)
64
+ end
65
+
66
+ #
67
+ # Marks that the code action cannot currently be applied.
68
+ #
69
+ # Clients should follow the following guidelines regarding disabled code
70
+ # actions:
71
+ #
72
+ # - Disabled code actions are not shown in automatic lightbulbs code
73
+ # action menus.
74
+ #
75
+ # - Disabled actions are shown as faded out in the code action menu when
76
+ # the user request a more specific type of code action, such as
77
+ # refactorings.
78
+ #
79
+ # - If the user has a keybinding that auto applies a code action and only
80
+ # a disabled code actions are returned, the client should show the user
81
+ # an error message with `reason` in the editor.
82
+ #
83
+ # @return [{ reason: string; }]
84
+ def disabled
85
+ attributes.fetch(:disabled)
86
+ end
87
+
49
88
  #
50
89
  # The workspace edit this code action performs.
51
90
  #
@@ -64,6 +103,15 @@ module LanguageServer
64
103
  attributes.fetch(:command)
65
104
  end
66
105
 
106
+ #
107
+ # A data entry field that is preserved on a code action between
108
+ # a `textDocument/codeAction` and a `codeAction/resolve` request.
109
+ #
110
+ # @return [any]
111
+ def data
112
+ attributes.fetch(:data)
113
+ end
114
+
67
115
  attr_reader :attributes
68
116
 
69
117
  def to_hash
@@ -0,0 +1,95 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class CodeActionClientCapabilities
5
+ def initialize(dynamic_registration: nil, code_action_literal_support: nil, is_preferred_support: nil, disabled_support: nil, data_support: nil, resolve_support: nil, honors_change_annotations: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+ @attributes[:codeActionLiteralSupport] = code_action_literal_support if code_action_literal_support
10
+ @attributes[:isPreferredSupport] = is_preferred_support if is_preferred_support
11
+ @attributes[:disabledSupport] = disabled_support if disabled_support
12
+ @attributes[:dataSupport] = data_support if data_support
13
+ @attributes[:resolveSupport] = resolve_support if resolve_support
14
+ @attributes[:honorsChangeAnnotations] = honors_change_annotations if honors_change_annotations
15
+
16
+ @attributes.freeze
17
+ end
18
+
19
+ #
20
+ # Whether code action supports dynamic registration.
21
+ #
22
+ # @return [boolean]
23
+ def dynamic_registration
24
+ attributes.fetch(:dynamicRegistration)
25
+ end
26
+
27
+ #
28
+ # The client supports code action literals as a valid
29
+ # response of the `textDocument/codeAction` request.
30
+ #
31
+ # @return [{ codeActionKind: { valueSet: string[]; }; }]
32
+ def code_action_literal_support
33
+ attributes.fetch(:codeActionLiteralSupport)
34
+ end
35
+
36
+ #
37
+ # Whether code action supports the `isPreferred` property.
38
+ #
39
+ # @return [boolean]
40
+ def is_preferred_support
41
+ attributes.fetch(:isPreferredSupport)
42
+ end
43
+
44
+ #
45
+ # Whether code action supports the `disabled` property.
46
+ #
47
+ # @return [boolean]
48
+ def disabled_support
49
+ attributes.fetch(:disabledSupport)
50
+ end
51
+
52
+ #
53
+ # Whether code action supports the `data` property which is
54
+ # preserved between a `textDocument/codeAction` and a
55
+ # `codeAction/resolve` request.
56
+ #
57
+ # @return [boolean]
58
+ def data_support
59
+ attributes.fetch(:dataSupport)
60
+ end
61
+
62
+ #
63
+ # Whether the client supports resolving additional code action
64
+ # properties via a separate `codeAction/resolve` request.
65
+ #
66
+ # @return [{ properties: string[]; }]
67
+ def resolve_support
68
+ attributes.fetch(:resolveSupport)
69
+ end
70
+
71
+ #
72
+ # Whether the client honors the change annotations in
73
+ # text edits and resource operations returned via the
74
+ # `CodeAction#edit` property by for example presenting
75
+ # the workspace edit in the user interface and asking
76
+ # for confirmation.
77
+ #
78
+ # @return [boolean]
79
+ def honors_change_annotations
80
+ attributes.fetch(:honorsChangeAnnotations)
81
+ end
82
+
83
+ attr_reader :attributes
84
+
85
+ def to_hash
86
+ attributes
87
+ end
88
+
89
+ def to_json(*args)
90
+ to_hash.to_json(*args)
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
@@ -16,7 +16,12 @@ module LanguageServer
16
16
  end
17
17
 
18
18
  #
19
- # An array of diagnostics.
19
+ # An array of diagnostics known on the client side overlapping the range
20
+ # provided to the `textDocument/codeAction` request. They are provided so
21
+ # that the server knows which errors are currently presented to the user
22
+ # for the given range. There is no guarantee that these accurately reflect
23
+ # the error state of the resource. The primary parameter
24
+ # to compute code actions is the provided range.
20
25
  #
21
26
  # @return [Diagnostic[]]
22
27
  def diagnostics
@@ -26,8 +31,8 @@ module LanguageServer
26
31
  #
27
32
  # Requested kind of actions to return.
28
33
  #
29
- # Actions not of this kind are filtered out by the client before being shown. So servers
30
- # can omit computing them.
34
+ # Actions not of this kind are filtered out by the client before being
35
+ # shown. So servers can omit computing them.
31
36
  #
32
37
  # @return [string[]]
33
38
  def only
@@ -1,29 +1,42 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- #
5
- # Code Action options.
6
- #
7
4
  class CodeActionOptions
8
- def initialize(code_action_kinds: nil)
5
+ def initialize(work_done_progress: nil, code_action_kinds: nil, resolve_provider: nil)
9
6
  @attributes = {}
10
7
 
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
11
9
  @attributes[:codeActionKinds] = code_action_kinds if code_action_kinds
10
+ @attributes[:resolveProvider] = resolve_provider if resolve_provider
12
11
 
13
12
  @attributes.freeze
14
13
  end
15
14
 
15
+ # @return [boolean]
16
+ def work_done_progress
17
+ attributes.fetch(:workDoneProgress)
18
+ end
19
+
16
20
  #
17
21
  # CodeActionKinds that this server may return.
18
22
  #
19
- # The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
20
- # may list out every specific kind they provide.
23
+ # The list of kinds may be generic, such as `CodeActionKind.Refactor`,
24
+ # or the server may list out every specific kind they provide.
21
25
  #
22
26
  # @return [string[]]
23
27
  def code_action_kinds
24
28
  attributes.fetch(:codeActionKinds)
25
29
  end
26
30
 
31
+ #
32
+ # The server provides support to resolve additional
33
+ # information for a code action.
34
+ #
35
+ # @return [boolean]
36
+ def resolve_provider
37
+ attributes.fetch(:resolveProvider)
38
+ end
39
+
27
40
  attr_reader :attributes
28
41
 
29
42
  def to_hash