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
@@ -2,7 +2,8 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  #
5
- # Contains additional information about the context in which a completion request is triggered.
5
+ # Contains additional information about the context in which a completion
6
+ # request is triggered.
6
7
  #
7
8
  class CompletionContext
8
9
  def initialize(trigger_kind:, trigger_character: nil)
@@ -23,8 +24,9 @@ module LanguageServer
23
24
  end
24
25
 
25
26
  #
26
- # The trigger character (a single character) that has trigger code complete.
27
- # Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter`
27
+ # The trigger character (a single character) that has trigger code
28
+ # complete. Is undefined if
29
+ # `triggerKind !== CompletionTriggerKind.TriggerCharacter`
28
30
  #
29
31
  # @return [string]
30
32
  def trigger_character
@@ -2,11 +2,12 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  class CompletionItem
5
- def initialize(label:, kind: nil, detail: nil, documentation: nil, deprecated: nil, preselect: nil, sort_text: nil, filter_text: nil, insert_text: nil, insert_text_format: nil, text_edit: nil, additional_text_edits: nil, commit_characters: nil, command: nil, data: nil)
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)
6
6
  @attributes = {}
7
7
 
8
8
  @attributes[:label] = label
9
9
  @attributes[:kind] = kind if kind
10
+ @attributes[:tags] = tags if tags
10
11
  @attributes[:detail] = detail if detail
11
12
  @attributes[:documentation] = documentation if documentation
12
13
  @attributes[:deprecated] = deprecated if deprecated
@@ -15,6 +16,7 @@ module LanguageServer
15
16
  @attributes[:filterText] = filter_text if filter_text
16
17
  @attributes[:insertText] = insert_text if insert_text
17
18
  @attributes[:insertTextFormat] = insert_text_format if insert_text_format
19
+ @attributes[:insertTextMode] = insert_text_mode if insert_text_mode
18
20
  @attributes[:textEdit] = text_edit if text_edit
19
21
  @attributes[:additionalTextEdits] = additional_text_edits if additional_text_edits
20
22
  @attributes[:commitCharacters] = commit_characters if commit_characters
@@ -36,13 +38,22 @@ module LanguageServer
36
38
 
37
39
  #
38
40
  # The kind of this completion item. Based of the kind
39
- # an icon is chosen by the editor.
41
+ # an icon is chosen by the editor. The standardized set
42
+ # of available values is defined in `CompletionItemKind`.
40
43
  #
41
- # @return [number]
44
+ # @return [any]
42
45
  def kind
43
46
  attributes.fetch(:kind)
44
47
  end
45
48
 
49
+ #
50
+ # Tags for this completion item.
51
+ #
52
+ # @return [1[]]
53
+ def tags
54
+ attributes.fetch(:tags)
55
+ end
56
+
46
57
  #
47
58
  # A human-readable string with additional information
48
59
  # about this item, like type or symbol information.
@@ -82,7 +93,8 @@ module LanguageServer
82
93
 
83
94
  #
84
95
  # A string that should be used when comparing this item
85
- # with other items. When `falsy` the label is used.
96
+ # with other items. When `falsy` the label is used
97
+ # as the sort text for this item.
86
98
  #
87
99
  # @return [string]
88
100
  def sort_text
@@ -91,7 +103,8 @@ module LanguageServer
91
103
 
92
104
  #
93
105
  # A string that should be used when filtering a set of
94
- # completion items. When `falsy` the label is used.
106
+ # completion items. When `falsy` the label is used as the
107
+ # filter text for this item.
95
108
  #
96
109
  # @return [string]
97
110
  def filter_text
@@ -100,14 +113,16 @@ module LanguageServer
100
113
 
101
114
  #
102
115
  # A string that should be inserted into a document when selecting
103
- # this completion. When `falsy` the label is used.
116
+ # this completion. When `falsy` the label is used as the insert text
117
+ # for this item.
104
118
  #
105
119
  # The `insertText` is subject to interpretation by the client side.
106
120
  # Some tools might not take the string literally. For example
107
- # VS Code when code complete is requested in this example `con<cursor position>`
108
- # and a completion item with an `insertText` of `console` is provided it
109
- # will only insert `sole`. Therefore it is recommended to use `textEdit` instead
110
- # since it avoids additional client side interpretation.
121
+ # VS Code when code complete is requested in this example
122
+ # `con<cursor position>` and a completion item with an `insertText` of
123
+ # `console` is provided it will only insert `sole`. Therefore it is
124
+ # recommended to use `textEdit` instead since it avoids additional client
125
+ # side interpretation.
111
126
  #
112
127
  # @return [string]
113
128
  def insert_text
@@ -115,8 +130,9 @@ module LanguageServer
115
130
  end
116
131
 
117
132
  #
118
- # The format of the insert text. The format applies to both the `insertText` property
119
- # and the `newText` property of a provided `textEdit`.
133
+ # The format of the insert text. The format applies to both the
134
+ # `insertText` property and the `newText` property of a provided
135
+ # `textEdit`. If omitted defaults to `InsertTextFormat.PlainText`.
120
136
  #
121
137
  # @return [InsertTextFormat]
122
138
  def insert_text_format
@@ -124,25 +140,50 @@ module LanguageServer
124
140
  end
125
141
 
126
142
  #
127
- # An edit which is applied to a document when selecting this completion. When an edit is provided the value of
128
- # `insertText` is ignored.
143
+ # How whitespace and indentation is handled during completion
144
+ # item insertion. If not provided the client's default value depends on
145
+ # the `textDocument.completion.insertTextMode` client capability.
146
+ #
147
+ # @return [InsertTextMode]
148
+ def insert_text_mode
149
+ attributes.fetch(:insertTextMode)
150
+ end
151
+
152
+ #
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.
158
+ #
159
+ # Most editors support two different operations when accepting a completion
160
+ # item. One is to insert a completion text and the other is to replace an
161
+ # existing text with a completion text. Since this can usually not be
162
+ # predetermined by a server it can report both ranges. Clients need to
163
+ # signal support for `InsertReplaceEdits` via the
164
+ # `textDocument.completion.insertReplaceSupport` client capability
165
+ # property.
129
166
  #
130
- # *Note:* The range of the edit must be a single line range and it must contain the position at which completion
131
- # has been requested.
167
+ # *Note 1:* The text edit's range as well as both ranges from an insert
168
+ # replace edit must be a [single line] and they must contain the position
169
+ # at which completion has been requested.
170
+ # *Note 2:* If an `InsertReplaceEdit` is returned the edit's insert range
171
+ # must be a prefix of the edit's replace range, that means it must be
172
+ # contained and starting at the same position.
132
173
  #
133
- # @return [TextEdit]
174
+ # @return [TextEdit | InsertReplaceEdit]
134
175
  def text_edit
135
176
  attributes.fetch(:textEdit)
136
177
  end
137
178
 
138
179
  #
139
180
  # An optional array of additional text edits that are applied when
140
- # selecting this completion. Edits must not overlap (including the same insert position)
141
- # with the main edit nor with themselves.
181
+ # selecting this completion. Edits must not overlap (including the same
182
+ # insert position) with the main edit nor with themselves.
142
183
  #
143
- # Additional text edits should be used to change text unrelated to the current cursor position
144
- # (for example adding an import statement at the top of the file if the completion item will
145
- # insert an unqualified type).
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).
146
187
  #
147
188
  # @return [TextEdit[]]
148
189
  def additional_text_edits
@@ -150,9 +191,10 @@ module LanguageServer
150
191
  end
151
192
 
152
193
  #
153
- # An optional set of characters that when pressed while this completion is active will accept it first and
154
- # then type that character. *Note* that all commit characters should have `length=1` and that superfluous
155
- # characters will be ignored.
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.
156
198
  #
157
199
  # @return [string[]]
158
200
  def commit_characters
@@ -160,9 +202,9 @@ module LanguageServer
160
202
  end
161
203
 
162
204
  #
163
- # An optional command that is executed *after* inserting this completion. *Note* that
164
- # additional modifications to the current document should be described with the
165
- # additionalTextEdits-property.
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.
166
208
  #
167
209
  # @return [Command]
168
210
  def command
@@ -170,7 +212,7 @@ module LanguageServer
170
212
  end
171
213
 
172
214
  #
173
- # An data entry field that is preserved on a completion item between
215
+ # A data entry field that is preserved on a completion item between
174
216
  # a completion and a completion resolve request.
175
217
  #
176
218
  # @return [any]
@@ -2,8 +2,8 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  #
5
- # Represents a collection of [completion items](#CompletionItem) to be presented
6
- # in the editor.
5
+ # Represents a collection of [completion items](#CompletionItem) to be
6
+ # presented in the editor.
7
7
  #
8
8
  class CompletionList
9
9
  def initialize(is_incomplete:, items:)
@@ -5,32 +5,62 @@ module LanguageServer
5
5
  # Completion options.
6
6
  #
7
7
  class CompletionOptions
8
- def initialize(resolve_provider: nil, trigger_characters: nil)
8
+ def initialize(work_done_progress: nil, trigger_characters: nil, all_commit_characters: nil, resolve_provider: nil)
9
9
  @attributes = {}
10
10
 
11
- @attributes[:resolveProvider] = resolve_provider if resolve_provider
11
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
12
12
  @attributes[:triggerCharacters] = trigger_characters if trigger_characters
13
+ @attributes[:allCommitCharacters] = all_commit_characters if all_commit_characters
14
+ @attributes[:resolveProvider] = resolve_provider if resolve_provider
13
15
 
14
16
  @attributes.freeze
15
17
  end
16
18
 
17
- #
18
- # The server provides support to resolve additional
19
- # information for a completion item.
20
- #
21
19
  # @return [boolean]
22
- def resolve_provider
23
- attributes.fetch(:resolveProvider)
20
+ def work_done_progress
21
+ attributes.fetch(:workDoneProgress)
24
22
  end
25
23
 
26
24
  #
27
- # The characters that trigger completion automatically.
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.
31
+ #
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`.
28
35
  #
29
36
  # @return [string[]]
30
37
  def trigger_characters
31
38
  attributes.fetch(:triggerCharacters)
32
39
  end
33
40
 
41
+ #
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`.
46
+ #
47
+ # If a server provides both `allCommitCharacters` and commit characters on
48
+ # an individual completion item the ones on the completion item win.
49
+ #
50
+ # @return [string[]]
51
+ def all_commit_characters
52
+ attributes.fetch(:allCommitCharacters)
53
+ end
54
+
55
+ #
56
+ # The server provides support to resolve additional
57
+ # information for a completion item.
58
+ #
59
+ # @return [boolean]
60
+ def resolve_provider
61
+ attributes.fetch(:resolveProvider)
62
+ end
63
+
34
64
  attr_reader :attributes
35
65
 
36
66
  def to_hash
@@ -1,20 +1,56 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class CompletionParams < TextDocumentPositionParams
5
- def initialize(text_document:, position:, context: nil)
4
+ class CompletionParams
5
+ def initialize(text_document:, position:, work_done_token: nil, partial_result_token: nil, context: nil)
6
6
  @attributes = {}
7
7
 
8
8
  @attributes[:textDocument] = text_document
9
9
  @attributes[:position] = position
10
+ @attributes[:workDoneToken] = work_done_token if work_done_token
11
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
10
12
  @attributes[:context] = context if context
11
13
 
12
14
  @attributes.freeze
13
15
  end
14
16
 
17
+ #
18
+ # The text document.
19
+ #
20
+ # @return [TextDocumentIdentifier]
21
+ def text_document
22
+ attributes.fetch(:textDocument)
23
+ end
24
+
25
+ #
26
+ # The position inside the text document.
27
+ #
28
+ # @return [Position]
29
+ def position
30
+ attributes.fetch(:position)
31
+ end
32
+
33
+ #
34
+ # An optional token that a server can use to report work done progress.
35
+ #
36
+ # @return [ProgressToken]
37
+ def work_done_token
38
+ attributes.fetch(:workDoneToken)
39
+ end
40
+
41
+ #
42
+ # An optional token that a server can use to report partial results (e.g.
43
+ # streaming) to the client.
44
+ #
45
+ # @return [ProgressToken]
46
+ def partial_result_token
47
+ attributes.fetch(:partialResultToken)
48
+ end
49
+
15
50
  #
16
51
  # The completion context. This is only available if the client specifies
17
- # to send this using `ClientCapabilities.textDocument.completion.contextSupport === true`
52
+ # to send this using the client capability
53
+ # `completion.contextSupport === true`
18
54
  #
19
55
  # @return [CompletionContext]
20
56
  def context
@@ -1,32 +1,64 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class CompletionRegistrationOptions < TextDocumentRegistrationOptions
5
- def initialize(document_selector:, trigger_characters: nil, resolve_provider: nil)
4
+ class CompletionRegistrationOptions
5
+ def initialize(document_selector:, work_done_progress: nil, trigger_characters: nil, all_commit_characters: nil, resolve_provider: nil)
6
6
  @attributes = {}
7
7
 
8
8
  @attributes[:documentSelector] = document_selector
9
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
9
10
  @attributes[:triggerCharacters] = trigger_characters if trigger_characters
11
+ @attributes[:allCommitCharacters] = all_commit_characters if all_commit_characters
10
12
  @attributes[:resolveProvider] = resolve_provider if resolve_provider
11
13
 
12
14
  @attributes.freeze
13
15
  end
14
16
 
15
17
  #
16
- # Most tools trigger completion request automatically without explicitly requesting
17
- # it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
18
- # starts to type an identifier. For example if the user types `c` in a JavaScript file
19
- # code complete will automatically pop up present `console` besides others as a
20
- # completion item. Characters that make up identifiers don't need to be listed here.
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.
21
20
  #
22
- # If code complete should automatically be trigger on characters not being valid inside
23
- # an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
21
+ # @return [DocumentSelector]
22
+ def document_selector
23
+ attributes.fetch(:documentSelector)
24
+ end
25
+
26
+ # @return [boolean]
27
+ def work_done_progress
28
+ attributes.fetch(:workDoneProgress)
29
+ end
30
+
31
+ #
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.
38
+ #
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`.
24
42
  #
25
43
  # @return [string[]]
26
44
  def trigger_characters
27
45
  attributes.fetch(:triggerCharacters)
28
46
  end
29
47
 
48
+ #
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`.
53
+ #
54
+ # If a server provides both `allCommitCharacters` and commit characters on
55
+ # an individual completion item the ones on the completion item win.
56
+ #
57
+ # @return [string[]]
58
+ def all_commit_characters
59
+ attributes.fetch(:allCommitCharacters)
60
+ end
61
+
30
62
  #
31
63
  # The server provides support to resolve additional
32
64
  # information for a completion item.
@@ -5,12 +5,13 @@ module LanguageServer
5
5
  # Create file operation
6
6
  #
7
7
  class CreateFile
8
- def initialize(kind:, uri:, options: nil)
8
+ def initialize(kind:, uri:, options: nil, annotation_id: nil)
9
9
  @attributes = {}
10
10
 
11
11
  @attributes[:kind] = kind
12
12
  @attributes[:uri] = uri
13
13
  @attributes[:options] = options if options
14
+ @attributes[:annotationId] = annotation_id if annotation_id
14
15
 
15
16
  @attributes.freeze
16
17
  end
@@ -39,6 +40,14 @@ module LanguageServer
39
40
  attributes.fetch(:options)
40
41
  end
41
42
 
43
+ #
44
+ # An optional annotation identifer describing the operation.
45
+ #
46
+ # @return [string]
47
+ def annotation_id
48
+ attributes.fetch(:annotationId)
49
+ end
50
+
42
51
  attr_reader :attributes
43
52
 
44
53
  def to_hash