language_server-protocol 3.15.0.2 → 3.16.0.3

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 (218) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/lib/language_server/protocol/constant/code_action_kind.rb +6 -4
  4. data/lib/language_server/protocol/constant/completion_item_tag.rb +2 -2
  5. data/lib/language_server/protocol/constant/completion_trigger_kind.rb +2 -1
  6. data/lib/language_server/protocol/constant/diagnostic_tag.rb +2 -2
  7. data/lib/language_server/protocol/constant/error_codes.rb +26 -3
  8. data/lib/language_server/protocol/constant/failure_handling_kind.rb +6 -5
  9. data/lib/language_server/protocol/constant/file_operation_pattern_kind.rb +20 -0
  10. data/lib/language_server/protocol/constant/initialize_error.rb +2 -1
  11. data/lib/language_server/protocol/constant/insert_text_mode.rb +30 -0
  12. data/lib/language_server/protocol/constant/prepare_support_default_behavior.rb +13 -0
  13. data/lib/language_server/protocol/constant/signature_help_trigger_kind.rb +2 -1
  14. data/lib/language_server/protocol/constant/symbol_tag.rb +15 -0
  15. data/lib/language_server/protocol/constant/text_document_save_reason.rb +2 -2
  16. data/lib/language_server/protocol/constant/text_document_sync_kind.rb +2 -2
  17. data/lib/language_server/protocol/constant/token_format.rb +9 -0
  18. data/lib/language_server/protocol/constant.rb +10 -0
  19. data/lib/language_server/protocol/interface/annotated_text_edit.rb +56 -0
  20. data/lib/language_server/protocol/interface/apply_workspace_edit_response.rb +15 -4
  21. data/lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb +36 -0
  22. data/lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb +43 -0
  23. data/lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb +49 -0
  24. data/lib/language_server/protocol/interface/call_hierarchy_item.rb +100 -0
  25. data/lib/language_server/protocol/interface/call_hierarchy_options.rb +30 -0
  26. data/lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb +43 -0
  27. data/lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb +49 -0
  28. data/lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb +51 -0
  29. data/lib/language_server/protocol/interface/call_hierarchy_registration_options.rb +50 -0
  30. data/lib/language_server/protocol/interface/change_annotation.rb +57 -0
  31. data/lib/language_server/protocol/interface/client_capabilities.rb +12 -3
  32. data/lib/language_server/protocol/interface/code_action.rb +43 -8
  33. data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +44 -1
  34. data/lib/language_server/protocol/interface/code_action_context.rb +7 -6
  35. data/lib/language_server/protocol/interface/code_action_options.rb +19 -4
  36. data/lib/language_server/protocol/interface/code_action_params.rb +20 -2
  37. data/lib/language_server/protocol/interface/code_action_registration_options.rb +38 -2
  38. data/lib/language_server/protocol/interface/code_description.rb +36 -0
  39. data/lib/language_server/protocol/interface/code_lens.rb +5 -3
  40. data/lib/language_server/protocol/interface/code_lens_options.rb +6 -1
  41. data/lib/language_server/protocol/interface/code_lens_params.rb +20 -2
  42. data/lib/language_server/protocol/interface/code_lens_registration_options.rb +25 -2
  43. data/lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb +39 -0
  44. data/lib/language_server/protocol/interface/color_presentation.rb +7 -6
  45. data/lib/language_server/protocol/interface/color_presentation_params.rb +20 -2
  46. data/lib/language_server/protocol/interface/completion_client_capabilities.rb +1 -1
  47. data/lib/language_server/protocol/interface/completion_context.rb +5 -3
  48. data/lib/language_server/protocol/interface/completion_item.rb +60 -29
  49. data/lib/language_server/protocol/interface/completion_list.rb +2 -2
  50. data/lib/language_server/protocol/interface/completion_options.rb +21 -13
  51. data/lib/language_server/protocol/interface/completion_params.rb +40 -3
  52. data/lib/language_server/protocol/interface/completion_registration_options.rb +57 -2
  53. data/lib/language_server/protocol/interface/create_file.rb +10 -1
  54. data/lib/language_server/protocol/interface/create_files_params.rb +37 -0
  55. data/lib/language_server/protocol/interface/declaration_client_capabilities.rb +3 -3
  56. data/lib/language_server/protocol/interface/declaration_options.rb +6 -1
  57. data/lib/language_server/protocol/interface/declaration_params.rb +38 -2
  58. data/lib/language_server/protocol/interface/declaration_registration_options.rb +27 -2
  59. data/lib/language_server/protocol/interface/definition_options.rb +6 -1
  60. data/lib/language_server/protocol/interface/definition_params.rb +38 -2
  61. data/lib/language_server/protocol/interface/definition_registration_options.rb +17 -2
  62. data/lib/language_server/protocol/interface/delete_file.rb +10 -1
  63. data/lib/language_server/protocol/interface/delete_files_params.rb +37 -0
  64. data/lib/language_server/protocol/interface/diagnostic.rb +21 -1
  65. data/lib/language_server/protocol/interface/diagnostic_related_information.rb +3 -3
  66. data/lib/language_server/protocol/interface/did_change_text_document_params.rb +11 -9
  67. data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +3 -3
  68. data/lib/language_server/protocol/interface/document_color_options.rb +6 -1
  69. data/lib/language_server/protocol/interface/document_color_params.rb +20 -2
  70. data/lib/language_server/protocol/interface/document_color_registration_options.rb +27 -2
  71. data/lib/language_server/protocol/interface/document_filter.rb +7 -3
  72. data/lib/language_server/protocol/interface/document_formatting_options.rb +6 -1
  73. data/lib/language_server/protocol/interface/document_formatting_params.rb +9 -1
  74. data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +17 -2
  75. data/lib/language_server/protocol/interface/document_highlight.rb +1 -1
  76. data/lib/language_server/protocol/interface/document_highlight_options.rb +6 -1
  77. data/lib/language_server/protocol/interface/document_highlight_params.rb +38 -2
  78. data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +17 -2
  79. data/lib/language_server/protocol/interface/document_link.rb +6 -5
  80. data/lib/language_server/protocol/interface/document_link_options.rb +6 -1
  81. data/lib/language_server/protocol/interface/document_link_params.rb +20 -2
  82. data/lib/language_server/protocol/interface/document_link_registration_options.rb +25 -2
  83. data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +17 -1
  84. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +28 -2
  85. data/lib/language_server/protocol/interface/document_range_formatting_options.rb +6 -1
  86. data/lib/language_server/protocol/interface/document_range_formatting_params.rb +9 -1
  87. data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +17 -2
  88. data/lib/language_server/protocol/interface/document_symbol.rb +23 -11
  89. data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +24 -2
  90. data/lib/language_server/protocol/interface/document_symbol_options.rb +17 -2
  91. data/lib/language_server/protocol/interface/document_symbol_params.rb +20 -2
  92. data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +27 -2
  93. data/lib/language_server/protocol/interface/execute_command_options.rb +6 -1
  94. data/lib/language_server/protocol/interface/execute_command_params.rb +9 -1
  95. data/lib/language_server/protocol/interface/execute_command_registration_options.rb +14 -1
  96. data/lib/language_server/protocol/interface/file_create.rb +36 -0
  97. data/lib/language_server/protocol/interface/file_delete.rb +36 -0
  98. data/lib/language_server/protocol/interface/file_operation_filter.rb +46 -0
  99. data/lib/language_server/protocol/interface/file_operation_pattern.rb +67 -0
  100. data/lib/language_server/protocol/interface/file_operation_pattern_options.rb +36 -0
  101. data/lib/language_server/protocol/interface/file_operation_registration_options.rb +36 -0
  102. data/lib/language_server/protocol/interface/file_rename.rb +45 -0
  103. data/lib/language_server/protocol/interface/file_system_watcher.rb +7 -3
  104. data/lib/language_server/protocol/interface/folding_range.rb +17 -8
  105. data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +10 -7
  106. data/lib/language_server/protocol/interface/folding_range_options.rb +6 -1
  107. data/lib/language_server/protocol/interface/folding_range_params.rb +20 -2
  108. data/lib/language_server/protocol/interface/folding_range_registration_options.rb +27 -2
  109. data/lib/language_server/protocol/interface/hover.rb +1 -1
  110. data/lib/language_server/protocol/interface/hover_client_capabilities.rb +3 -2
  111. data/lib/language_server/protocol/interface/hover_options.rb +6 -1
  112. data/lib/language_server/protocol/interface/hover_params.rb +28 -2
  113. data/lib/language_server/protocol/interface/hover_registration_options.rb +17 -2
  114. data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +3 -3
  115. data/lib/language_server/protocol/interface/implementation_options.rb +6 -1
  116. data/lib/language_server/protocol/interface/implementation_params.rb +38 -2
  117. data/lib/language_server/protocol/interface/implementation_registration_options.rb +27 -2
  118. data/lib/language_server/protocol/interface/initialize_params.rb +29 -6
  119. data/lib/language_server/protocol/interface/insert_replace_edit.rb +54 -0
  120. data/lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb +36 -0
  121. data/lib/language_server/protocol/interface/linked_editing_range_options.rb +30 -0
  122. data/lib/language_server/protocol/interface/linked_editing_range_params.rb +51 -0
  123. data/lib/language_server/protocol/interface/linked_editing_range_registration_options.rb +50 -0
  124. data/lib/language_server/protocol/interface/linked_editing_ranges.rb +45 -0
  125. data/lib/language_server/protocol/interface/location_link.rb +9 -7
  126. data/lib/language_server/protocol/interface/log_message_params.rb +1 -1
  127. data/lib/language_server/protocol/interface/log_trace_params.rb +43 -0
  128. data/lib/language_server/protocol/interface/markdown_client_capabilities.rb +45 -0
  129. data/lib/language_server/protocol/interface/markup_content.rb +9 -7
  130. data/lib/language_server/protocol/interface/moniker.rb +64 -0
  131. data/lib/language_server/protocol/interface/moniker_client_capabilities.rb +36 -0
  132. data/lib/language_server/protocol/interface/moniker_options.rb +30 -0
  133. data/lib/language_server/protocol/interface/moniker_params.rb +61 -0
  134. data/lib/language_server/protocol/interface/moniker_registration_options.rb +40 -0
  135. data/lib/language_server/protocol/interface/notification_message.rb +6 -1
  136. data/lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb +50 -0
  137. data/lib/language_server/protocol/interface/parameter_information.rb +7 -5
  138. data/lib/language_server/protocol/interface/partial_result_params.rb +3 -3
  139. data/lib/language_server/protocol/interface/position.rb +5 -5
  140. data/lib/language_server/protocol/interface/prepare_rename_params.rb +17 -1
  141. data/lib/language_server/protocol/interface/progress_params.rb +1 -1
  142. data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +21 -1
  143. data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +2 -1
  144. data/lib/language_server/protocol/interface/reference_options.rb +6 -1
  145. data/lib/language_server/protocol/interface/reference_params.rb +38 -2
  146. data/lib/language_server/protocol/interface/reference_registration_options.rb +17 -2
  147. data/lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb +45 -0
  148. data/lib/language_server/protocol/interface/rename_client_capabilities.rb +27 -1
  149. data/lib/language_server/protocol/interface/rename_file.rb +10 -1
  150. data/lib/language_server/protocol/interface/rename_files_params.rb +38 -0
  151. data/lib/language_server/protocol/interface/rename_options.rb +6 -1
  152. data/lib/language_server/protocol/interface/rename_params.rb +28 -2
  153. data/lib/language_server/protocol/interface/rename_registration_options.rb +25 -2
  154. data/lib/language_server/protocol/interface/request_message.rb +6 -1
  155. data/lib/language_server/protocol/interface/response_message.rb +6 -1
  156. data/lib/language_server/protocol/interface/selection_range.rb +2 -1
  157. data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +4 -3
  158. data/lib/language_server/protocol/interface/selection_range_options.rb +6 -1
  159. data/lib/language_server/protocol/interface/selection_range_params.rb +20 -2
  160. data/lib/language_server/protocol/interface/selection_range_registration_options.rb +27 -2
  161. data/lib/language_server/protocol/interface/semantic_tokens.rb +45 -0
  162. data/lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb +97 -0
  163. data/lib/language_server/protocol/interface/semantic_tokens_delta.rb +40 -0
  164. data/lib/language_server/protocol/interface/semantic_tokens_delta_params.rb +62 -0
  165. data/lib/language_server/protocol/interface/semantic_tokens_delta_partial_result.rb +30 -0
  166. data/lib/language_server/protocol/interface/semantic_tokens_edit.rb +51 -0
  167. data/lib/language_server/protocol/interface/semantic_tokens_legend.rb +42 -0
  168. data/lib/language_server/protocol/interface/semantic_tokens_options.rb +58 -0
  169. data/lib/language_server/protocol/interface/semantic_tokens_params.rb +52 -0
  170. data/lib/language_server/protocol/interface/semantic_tokens_partial_result.rb +30 -0
  171. data/lib/language_server/protocol/interface/semantic_tokens_range_params.rb +61 -0
  172. data/lib/language_server/protocol/interface/semantic_tokens_registration_options.rb +78 -0
  173. data/lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb +39 -0
  174. data/lib/language_server/protocol/interface/server_capabilities.rb +47 -9
  175. data/lib/language_server/protocol/interface/set_trace_params.rb +33 -0
  176. data/lib/language_server/protocol/interface/show_document_client_capabilities.rb +37 -0
  177. data/lib/language_server/protocol/interface/show_document_params.rb +71 -0
  178. data/lib/language_server/protocol/interface/show_document_result.rb +36 -0
  179. data/lib/language_server/protocol/interface/show_message_params.rb +1 -1
  180. data/lib/language_server/protocol/interface/show_message_request_client_capabilities.rb +36 -0
  181. data/lib/language_server/protocol/interface/show_message_request_params.rb +1 -1
  182. data/lib/language_server/protocol/interface/signature_help.rb +3 -3
  183. data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +1 -1
  184. data/lib/language_server/protocol/interface/signature_help_context.rb +10 -7
  185. data/lib/language_server/protocol/interface/signature_help_options.rb +9 -3
  186. data/lib/language_server/protocol/interface/signature_help_params.rb +31 -4
  187. data/lib/language_server/protocol/interface/signature_help_registration_options.rb +38 -2
  188. data/lib/language_server/protocol/interface/signature_information.rb +12 -1
  189. data/lib/language_server/protocol/interface/symbol_information.rb +10 -1
  190. data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +11 -2
  191. data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +39 -2
  192. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +2 -2
  193. data/lib/language_server/protocol/interface/text_document_edit.rb +2 -2
  194. data/lib/language_server/protocol/interface/text_document_registration_options.rb +3 -3
  195. data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +10 -1
  196. data/lib/language_server/protocol/interface/text_document_sync_options.rb +13 -15
  197. data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +3 -3
  198. data/lib/language_server/protocol/interface/type_definition_options.rb +6 -1
  199. data/lib/language_server/protocol/interface/type_definition_params.rb +38 -2
  200. data/lib/language_server/protocol/interface/type_definition_registration_options.rb +27 -2
  201. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +12 -8
  202. data/lib/language_server/protocol/interface/will_save_text_document_params.rb +1 -1
  203. data/lib/language_server/protocol/interface/work_done_progress_begin.rb +3 -3
  204. data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +1 -1
  205. data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +1 -1
  206. data/lib/language_server/protocol/interface/work_done_progress_params.rb +1 -1
  207. data/lib/language_server/protocol/interface/work_done_progress_report.rb +5 -5
  208. data/lib/language_server/protocol/interface/workspace_edit.rb +24 -7
  209. data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +23 -1
  210. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +13 -2
  211. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +6 -1
  212. data/lib/language_server/protocol/interface/workspace_symbol_params.rb +20 -2
  213. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +6 -1
  214. data/lib/language_server/protocol/interface.rb +112 -0
  215. data/lib/language_server/protocol/transport/io/reader.rb +8 -24
  216. data/lib/language_server/protocol/transport/io/writer.rb +1 -0
  217. data/lib/language_server/protocol/version.rb +1 -1
  218. metadata +68 -21
@@ -0,0 +1,42 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SemanticTokensLegend
5
+ def initialize(token_types:, token_modifiers:)
6
+ @attributes = {}
7
+
8
+ @attributes[:tokenTypes] = token_types
9
+ @attributes[:tokenModifiers] = token_modifiers
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The token types a server uses.
16
+ #
17
+ # @return [string[]]
18
+ def token_types
19
+ attributes.fetch(:tokenTypes)
20
+ end
21
+
22
+ #
23
+ # The token modifiers a server uses.
24
+ #
25
+ # @return [string[]]
26
+ def token_modifiers
27
+ attributes.fetch(:tokenModifiers)
28
+ end
29
+
30
+ attr_reader :attributes
31
+
32
+ def to_hash
33
+ attributes
34
+ end
35
+
36
+ def to_json(*args)
37
+ to_hash.to_json(*args)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,58 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SemanticTokensOptions
5
+ def initialize(work_done_progress: nil, legend:, range: nil, full: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
9
+ @attributes[:legend] = legend
10
+ @attributes[:range] = range if range
11
+ @attributes[:full] = full if full
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ # @return [boolean]
17
+ def work_done_progress
18
+ attributes.fetch(:workDoneProgress)
19
+ end
20
+
21
+ #
22
+ # The legend used by the server
23
+ #
24
+ # @return [SemanticTokensLegend]
25
+ def legend
26
+ attributes.fetch(:legend)
27
+ end
28
+
29
+ #
30
+ # Server supports providing semantic tokens for a specific range
31
+ # of a document.
32
+ #
33
+ # @return [boolean | {}]
34
+ def range
35
+ attributes.fetch(:range)
36
+ end
37
+
38
+ #
39
+ # Server supports providing semantic tokens for a full document.
40
+ #
41
+ # @return [boolean | { delta?: boolean; }]
42
+ def full
43
+ attributes.fetch(:full)
44
+ end
45
+
46
+ attr_reader :attributes
47
+
48
+ def to_hash
49
+ attributes
50
+ end
51
+
52
+ def to_json(*args)
53
+ to_hash.to_json(*args)
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,52 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SemanticTokensParams
5
+ def initialize(work_done_token: nil, partial_result_token: nil, text_document:)
6
+ @attributes = {}
7
+
8
+ @attributes[:workDoneToken] = work_done_token if work_done_token
9
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
10
+ @attributes[:textDocument] = text_document
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # An optional token that a server can use to report work done progress.
17
+ #
18
+ # @return [ProgressToken]
19
+ def work_done_token
20
+ attributes.fetch(:workDoneToken)
21
+ end
22
+
23
+ #
24
+ # An optional token that a server can use to report partial results (e.g.
25
+ # streaming) to the client.
26
+ #
27
+ # @return [ProgressToken]
28
+ def partial_result_token
29
+ attributes.fetch(:partialResultToken)
30
+ end
31
+
32
+ #
33
+ # The text document.
34
+ #
35
+ # @return [TextDocumentIdentifier]
36
+ def text_document
37
+ attributes.fetch(:textDocument)
38
+ end
39
+
40
+ attr_reader :attributes
41
+
42
+ def to_hash
43
+ attributes
44
+ end
45
+
46
+ def to_json(*args)
47
+ to_hash.to_json(*args)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,30 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SemanticTokensPartialResult
5
+ def initialize(data:)
6
+ @attributes = {}
7
+
8
+ @attributes[:data] = data
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ # @return [number[]]
14
+ def data
15
+ attributes.fetch(:data)
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,61 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SemanticTokensRangeParams
5
+ def initialize(work_done_token: nil, partial_result_token: nil, text_document:, range:)
6
+ @attributes = {}
7
+
8
+ @attributes[:workDoneToken] = work_done_token if work_done_token
9
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
10
+ @attributes[:textDocument] = text_document
11
+ @attributes[:range] = range
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # An optional token that a server can use to report work done progress.
18
+ #
19
+ # @return [ProgressToken]
20
+ def work_done_token
21
+ attributes.fetch(:workDoneToken)
22
+ end
23
+
24
+ #
25
+ # An optional token that a server can use to report partial results (e.g.
26
+ # streaming) to the client.
27
+ #
28
+ # @return [ProgressToken]
29
+ def partial_result_token
30
+ attributes.fetch(:partialResultToken)
31
+ end
32
+
33
+ #
34
+ # The text document.
35
+ #
36
+ # @return [TextDocumentIdentifier]
37
+ def text_document
38
+ attributes.fetch(:textDocument)
39
+ end
40
+
41
+ #
42
+ # The range the semantic tokens are requested for.
43
+ #
44
+ # @return [Range]
45
+ def range
46
+ attributes.fetch(:range)
47
+ end
48
+
49
+ attr_reader :attributes
50
+
51
+ def to_hash
52
+ attributes
53
+ end
54
+
55
+ def to_json(*args)
56
+ to_hash.to_json(*args)
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,78 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SemanticTokensRegistrationOptions
5
+ def initialize(document_selector:, work_done_progress: nil, legend:, range: nil, full: nil, id: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:documentSelector] = document_selector
9
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
10
+ @attributes[:legend] = legend
11
+ @attributes[:range] = range if range
12
+ @attributes[:full] = full if full
13
+ @attributes[:id] = id if id
14
+
15
+ @attributes.freeze
16
+ end
17
+
18
+ #
19
+ # A document selector to identify the scope of the registration. If set to
20
+ # null the document selector provided on the client side will be used.
21
+ #
22
+ # @return [DocumentSelector]
23
+ def document_selector
24
+ attributes.fetch(:documentSelector)
25
+ end
26
+
27
+ # @return [boolean]
28
+ def work_done_progress
29
+ attributes.fetch(:workDoneProgress)
30
+ end
31
+
32
+ #
33
+ # The legend used by the server
34
+ #
35
+ # @return [SemanticTokensLegend]
36
+ def legend
37
+ attributes.fetch(:legend)
38
+ end
39
+
40
+ #
41
+ # Server supports providing semantic tokens for a specific range
42
+ # of a document.
43
+ #
44
+ # @return [boolean | {}]
45
+ def range
46
+ attributes.fetch(:range)
47
+ end
48
+
49
+ #
50
+ # Server supports providing semantic tokens for a full document.
51
+ #
52
+ # @return [boolean | { delta?: boolean; }]
53
+ def full
54
+ attributes.fetch(:full)
55
+ end
56
+
57
+ #
58
+ # The id used to register the request. The id can be used to deregister
59
+ # the request again. See also Registration#id.
60
+ #
61
+ # @return [string]
62
+ def id
63
+ attributes.fetch(:id)
64
+ end
65
+
66
+ attr_reader :attributes
67
+
68
+ def to_hash
69
+ attributes
70
+ end
71
+
72
+ def to_json(*args)
73
+ to_hash.to_json(*args)
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,39 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class SemanticTokensWorkspaceClientCapabilities
5
+ def initialize(refresh_support: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:refreshSupport] = refresh_support if refresh_support
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # Whether the client implementation supports a refresh request sent from
15
+ # the server to the client.
16
+ #
17
+ # Note that this event is global and will force the client to refresh all
18
+ # semantic tokens currently shown. It should be used with absolute care
19
+ # and is useful for situation where a server for example detect a project
20
+ # wide change that requires such a calculation.
21
+ #
22
+ # @return [boolean]
23
+ def refresh_support
24
+ attributes.fetch(:refreshSupport)
25
+ end
26
+
27
+ attr_reader :attributes
28
+
29
+ def to_hash
30
+ attributes
31
+ end
32
+
33
+ def to_json(*args)
34
+ to_hash.to_json(*args)
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -2,7 +2,7 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  class ServerCapabilities
5
- def initialize(text_document_sync: nil, completion_provider: nil, hover_provider: nil, signature_help_provider: nil, declaration_provider: nil, definition_provider: nil, type_definition_provider: nil, implementation_provider: nil, references_provider: nil, document_highlight_provider: nil, document_symbol_provider: nil, code_action_provider: nil, code_lens_provider: nil, document_link_provider: nil, color_provider: nil, document_formatting_provider: nil, document_range_formatting_provider: nil, document_on_type_formatting_provider: nil, rename_provider: nil, folding_range_provider: nil, execute_command_provider: nil, selection_range_provider: nil, workspace_symbol_provider: nil, workspace: nil, experimental: nil)
5
+ def initialize(text_document_sync: nil, completion_provider: nil, hover_provider: nil, signature_help_provider: nil, declaration_provider: nil, definition_provider: nil, type_definition_provider: nil, implementation_provider: nil, references_provider: nil, document_highlight_provider: nil, document_symbol_provider: nil, code_action_provider: nil, code_lens_provider: nil, document_link_provider: nil, color_provider: nil, document_formatting_provider: nil, document_range_formatting_provider: nil, document_on_type_formatting_provider: nil, rename_provider: nil, folding_range_provider: nil, execute_command_provider: nil, selection_range_provider: nil, linked_editing_range_provider: nil, call_hierarchy_provider: nil, semantic_tokens_provider: nil, moniker_provider: nil, workspace_symbol_provider: nil, workspace: nil, experimental: nil)
6
6
  @attributes = {}
7
7
 
8
8
  @attributes[:textDocumentSync] = text_document_sync if text_document_sync
@@ -27,6 +27,10 @@ module LanguageServer
27
27
  @attributes[:foldingRangeProvider] = folding_range_provider if folding_range_provider
28
28
  @attributes[:executeCommandProvider] = execute_command_provider if execute_command_provider
29
29
  @attributes[:selectionRangeProvider] = selection_range_provider if selection_range_provider
30
+ @attributes[:linkedEditingRangeProvider] = linked_editing_range_provider if linked_editing_range_provider
31
+ @attributes[:callHierarchyProvider] = call_hierarchy_provider if call_hierarchy_provider
32
+ @attributes[:semanticTokensProvider] = semantic_tokens_provider if semantic_tokens_provider
33
+ @attributes[:monikerProvider] = moniker_provider if moniker_provider
30
34
  @attributes[:workspaceSymbolProvider] = workspace_symbol_provider if workspace_symbol_provider
31
35
  @attributes[:workspace] = workspace if workspace
32
36
  @attributes[:experimental] = experimental if experimental
@@ -35,10 +39,12 @@ module LanguageServer
35
39
  end
36
40
 
37
41
  #
38
- # Defines how text documents are synced. Is either a detailed structure defining each notification or
39
- # for backwards compatibility the TextDocumentSyncKind number. If omitted it defaults to `TextDocumentSyncKind.None`.
42
+ # Defines how text documents are synced. Is either a detailed structure
43
+ # defining each notification or for backwards compatibility the
44
+ # TextDocumentSyncKind number. If omitted it defaults to
45
+ # `TextDocumentSyncKind.None`.
40
46
  #
41
- # @return [number | TextDocumentSyncOptions]
47
+ # @return [TextDocumentSyncOptions | TextDocumentSyncKind]
42
48
  def text_document_sync
43
49
  attributes.fetch(:textDocumentSync)
44
50
  end
@@ -124,9 +130,9 @@ module LanguageServer
124
130
  end
125
131
 
126
132
  #
127
- # The server provides code actions. The `CodeActionOptions` return type is only
128
- # valid if the client signals code action literal support via the property
129
- # `textDocument.codeAction.codeActionLiteralSupport`.
133
+ # The server provides code actions. The `CodeActionOptions` return type is
134
+ # only valid if the client signals code action literal support via the
135
+ # property `textDocument.codeAction.codeActionLiteralSupport`.
130
136
  #
131
137
  # @return [boolean | CodeActionOptions]
132
138
  def code_action_provider
@@ -215,10 +221,42 @@ module LanguageServer
215
221
  attributes.fetch(:selectionRangeProvider)
216
222
  end
217
223
 
224
+ #
225
+ # The server provides linked editing range support.
226
+ #
227
+ # @return [boolean | LinkedEditingRangeOptions | LinkedEditingRangeRegistrationOptions]
228
+ def linked_editing_range_provider
229
+ attributes.fetch(:linkedEditingRangeProvider)
230
+ end
231
+
232
+ #
233
+ # The server provides call hierarchy support.
234
+ #
235
+ # @return [boolean | CallHierarchyOptions | CallHierarchyRegistrationOptions]
236
+ def call_hierarchy_provider
237
+ attributes.fetch(:callHierarchyProvider)
238
+ end
239
+
240
+ #
241
+ # The server provides semantic tokens support.
242
+ #
243
+ # @return [SemanticTokensOptions | SemanticTokensRegistrationOptions]
244
+ def semantic_tokens_provider
245
+ attributes.fetch(:semanticTokensProvider)
246
+ end
247
+
248
+ #
249
+ # Whether server provides moniker support.
250
+ #
251
+ # @return [boolean | MonikerOptions | MonikerRegistrationOptions]
252
+ def moniker_provider
253
+ attributes.fetch(:monikerProvider)
254
+ end
255
+
218
256
  #
219
257
  # The server provides workspace symbol support.
220
258
  #
221
- # @return [boolean]
259
+ # @return [boolean | WorkspaceSymbolOptions]
222
260
  def workspace_symbol_provider
223
261
  attributes.fetch(:workspaceSymbolProvider)
224
262
  end
@@ -226,7 +264,7 @@ module LanguageServer
226
264
  #
227
265
  # Workspace specific server capabilities
228
266
  #
229
- # @return [{ workspaceFolders?: WorkspaceFoldersServerCapabilities; }]
267
+ # @return [{ workspaceFolders?: WorkspaceFoldersServerCapabilities; fileOperations?: { didCreate?: FileOperationRegistrationOptions; ... 4 more ...; willDelete?: FileOperationRegistrationOptions; }; }]
230
268
  def workspace
231
269
  attributes.fetch(:workspace)
232
270
  end