language_server-protocol 3.7.0.0 → 3.15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -1
  3. data/lib/language_server/protocol/constant.rb +14 -0
  4. data/lib/language_server/protocol/constant/code_action_kind.rb +75 -0
  5. data/lib/language_server/protocol/constant/completion_item_tag.rb +16 -0
  6. data/lib/language_server/protocol/constant/diagnostic_tag.rb +24 -0
  7. data/lib/language_server/protocol/constant/error_codes.rb +1 -0
  8. data/lib/language_server/protocol/constant/failure_handling_kind.rb +29 -0
  9. data/lib/language_server/protocol/constant/resource_operation_kind.rb +23 -0
  10. data/lib/language_server/protocol/constant/signature_help_trigger_kind.rb +23 -0
  11. data/lib/language_server/protocol/constant/text_document_sync_kind.rb +1 -0
  12. data/lib/language_server/protocol/interface.rb +186 -6
  13. data/lib/language_server/protocol/interface/apply_workspace_edit_response.rb +13 -1
  14. data/lib/language_server/protocol/interface/client_capabilities.rb +11 -2
  15. data/lib/language_server/protocol/interface/code_action.rb +92 -0
  16. data/lib/language_server/protocol/interface/code_action_client_capabilities.rb +52 -0
  17. data/lib/language_server/protocol/interface/code_action_context.rb +18 -2
  18. data/lib/language_server/protocol/interface/code_action_options.rb +37 -0
  19. data/lib/language_server/protocol/interface/code_action_params.rb +3 -2
  20. data/lib/language_server/protocol/interface/code_action_registration_options.rb +26 -0
  21. data/lib/language_server/protocol/interface/code_lens_client_capabilities.rb +33 -0
  22. data/lib/language_server/protocol/interface/code_lens_options.rb +3 -5
  23. data/lib/language_server/protocol/interface/code_lens_params.rb +3 -2
  24. data/lib/language_server/protocol/interface/code_lens_registration_options.rb +3 -10
  25. data/lib/language_server/protocol/interface/color_presentation_params.rb +3 -2
  26. data/lib/language_server/protocol/interface/completion_client_capabilities.rb +59 -0
  27. data/lib/language_server/protocol/interface/completion_item.rb +29 -5
  28. data/lib/language_server/protocol/interface/completion_options.rb +33 -11
  29. data/lib/language_server/protocol/interface/completion_params.rb +4 -3
  30. data/lib/language_server/protocol/interface/completion_registration_options.rb +4 -26
  31. data/lib/language_server/protocol/interface/create_file.rb +54 -0
  32. data/lib/language_server/protocol/interface/create_file_options.rb +45 -0
  33. data/lib/language_server/protocol/interface/declaration_client_capabilities.rb +44 -0
  34. data/lib/language_server/protocol/interface/declaration_options.rb +25 -0
  35. data/lib/language_server/protocol/interface/declaration_params.rb +25 -0
  36. data/lib/language_server/protocol/interface/{color_provider_options.rb → declaration_registration_options.rb} +3 -5
  37. data/lib/language_server/protocol/interface/definition_client_capabilities.rb +42 -0
  38. data/lib/language_server/protocol/interface/definition_options.rb +25 -0
  39. data/lib/language_server/protocol/interface/definition_params.rb +25 -0
  40. data/lib/language_server/protocol/interface/definition_registration_options.rb +25 -0
  41. data/lib/language_server/protocol/interface/delete_file.rb +54 -0
  42. data/lib/language_server/protocol/interface/delete_file_options.rb +45 -0
  43. data/lib/language_server/protocol/interface/diagnostic.rb +11 -2
  44. data/lib/language_server/protocol/interface/diagnostic_related_information.rb +1 -1
  45. data/lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb +33 -0
  46. data/lib/language_server/protocol/interface/did_change_text_document_params.rb +10 -2
  47. data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +35 -0
  48. data/lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb +1 -1
  49. data/lib/language_server/protocol/interface/document_color_client_capabilities.rb +33 -0
  50. data/lib/language_server/protocol/interface/document_color_options.rb +25 -0
  51. data/lib/language_server/protocol/interface/document_color_params.rb +34 -0
  52. data/lib/language_server/protocol/interface/document_color_registration_options.rb +25 -0
  53. data/lib/language_server/protocol/interface/document_filter.rb +8 -0
  54. data/lib/language_server/protocol/interface/document_formatting_client_capabilities.rb +33 -0
  55. data/lib/language_server/protocol/interface/document_formatting_options.rb +25 -0
  56. data/lib/language_server/protocol/interface/document_formatting_params.rb +3 -2
  57. data/lib/language_server/protocol/interface/document_formatting_registration_options.rb +25 -0
  58. data/lib/language_server/protocol/interface/document_highlight_client_capabilities.rb +33 -0
  59. data/lib/language_server/protocol/interface/document_highlight_options.rb +25 -0
  60. data/lib/language_server/protocol/interface/document_highlight_params.rb +25 -0
  61. data/lib/language_server/protocol/interface/document_highlight_registration_options.rb +25 -0
  62. data/lib/language_server/protocol/interface/document_link.rb +14 -1
  63. data/lib/language_server/protocol/interface/document_link_client_capabilities.rb +42 -0
  64. data/lib/language_server/protocol/interface/document_link_options.rb +3 -5
  65. data/lib/language_server/protocol/interface/document_link_params.rb +3 -2
  66. data/lib/language_server/protocol/interface/document_link_registration_options.rb +3 -10
  67. data/lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb +33 -0
  68. data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +0 -3
  69. data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +1 -17
  70. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +2 -18
  71. data/lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb +33 -0
  72. data/lib/language_server/protocol/interface/document_range_formatting_options.rb +25 -0
  73. data/lib/language_server/protocol/interface/document_range_formatting_params.rb +3 -2
  74. data/lib/language_server/protocol/interface/document_range_formatting_registration_options.rb +25 -0
  75. data/lib/language_server/protocol/interface/document_symbol.rb +96 -0
  76. data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +51 -0
  77. data/lib/language_server/protocol/interface/document_symbol_options.rb +25 -0
  78. data/lib/language_server/protocol/interface/document_symbol_params.rb +3 -2
  79. data/lib/language_server/protocol/interface/document_symbol_registration_options.rb +25 -0
  80. data/lib/language_server/protocol/interface/execute_command_client_capabilities.rb +33 -0
  81. data/lib/language_server/protocol/interface/execute_command_options.rb +3 -5
  82. data/lib/language_server/protocol/interface/execute_command_params.rb +3 -2
  83. data/lib/language_server/protocol/interface/execute_command_registration_options.rb +3 -10
  84. data/lib/language_server/protocol/interface/file_system_watcher.rb +9 -1
  85. data/lib/language_server/protocol/interface/folding_range.rb +74 -0
  86. data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +55 -0
  87. data/lib/language_server/protocol/interface/folding_range_options.rb +25 -0
  88. data/lib/language_server/protocol/interface/folding_range_params.rb +34 -0
  89. data/lib/language_server/protocol/interface/folding_range_registration_options.rb +25 -0
  90. data/lib/language_server/protocol/interface/formatting_options.rb +28 -1
  91. data/lib/language_server/protocol/interface/hover_client_capabilities.rb +43 -0
  92. data/lib/language_server/protocol/interface/hover_options.rb +25 -0
  93. data/lib/language_server/protocol/interface/hover_params.rb +25 -0
  94. data/lib/language_server/protocol/interface/hover_registration_options.rb +25 -0
  95. data/lib/language_server/protocol/interface/implementation_client_capabilities.rb +44 -0
  96. data/lib/language_server/protocol/interface/implementation_options.rb +25 -0
  97. data/lib/language_server/protocol/interface/implementation_params.rb +25 -0
  98. data/lib/language_server/protocol/interface/implementation_registration_options.rb +25 -0
  99. data/lib/language_server/protocol/interface/initialize_params.rb +12 -4
  100. data/lib/language_server/protocol/interface/initialize_result.rb +10 -1
  101. data/lib/language_server/protocol/interface/location_link.rb +66 -0
  102. data/lib/language_server/protocol/interface/markup_content.rb +1 -1
  103. data/lib/language_server/protocol/interface/notification_message.rb +2 -1
  104. data/lib/language_server/protocol/interface/parameter_information.rb +9 -3
  105. data/lib/language_server/protocol/interface/partial_result_params.rb +34 -0
  106. data/lib/language_server/protocol/interface/prepare_rename_params.rb +26 -0
  107. data/lib/language_server/protocol/interface/progress_params.rb +42 -0
  108. data/lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb +53 -0
  109. data/lib/language_server/protocol/interface/publish_diagnostics_params.rb +10 -1
  110. data/lib/language_server/protocol/interface/reference_client_capabilities.rb +33 -0
  111. data/lib/language_server/protocol/interface/reference_options.rb +25 -0
  112. data/lib/language_server/protocol/interface/reference_params.rb +3 -2
  113. data/lib/language_server/protocol/interface/reference_registration_options.rb +25 -0
  114. data/lib/language_server/protocol/interface/rename_client_capabilities.rb +43 -0
  115. data/lib/language_server/protocol/interface/rename_file.rb +63 -0
  116. data/lib/language_server/protocol/interface/rename_file_options.rb +45 -0
  117. data/lib/language_server/protocol/interface/rename_options.rb +34 -0
  118. data/lib/language_server/protocol/interface/rename_params.rb +3 -20
  119. data/lib/language_server/protocol/interface/rename_registration_options.rb +26 -0
  120. data/lib/language_server/protocol/interface/request_message.rb +2 -1
  121. data/lib/language_server/protocol/interface/response_error.rb +2 -2
  122. data/lib/language_server/protocol/interface/response_message.rb +5 -4
  123. data/lib/language_server/protocol/interface/save_options.rb +0 -3
  124. data/lib/language_server/protocol/interface/selection_range.rb +42 -0
  125. data/lib/language_server/protocol/interface/selection_range_client_capabilities.rb +35 -0
  126. data/lib/language_server/protocol/interface/selection_range_options.rb +25 -0
  127. data/lib/language_server/protocol/interface/selection_range_params.rb +43 -0
  128. data/lib/language_server/protocol/interface/selection_range_registration_options.rb +25 -0
  129. data/lib/language_server/protocol/interface/server_capabilities.rb +78 -53
  130. data/lib/language_server/protocol/interface/signature_help.rb +8 -5
  131. data/lib/language_server/protocol/interface/signature_help_client_capabilities.rb +55 -0
  132. data/lib/language_server/protocol/interface/signature_help_context.rb +71 -0
  133. data/lib/language_server/protocol/interface/signature_help_options.rb +15 -5
  134. data/lib/language_server/protocol/interface/signature_help_params.rb +35 -0
  135. data/lib/language_server/protocol/interface/signature_help_registration_options.rb +4 -11
  136. data/lib/language_server/protocol/interface/symbol_information.rb +1 -1
  137. data/lib/language_server/protocol/interface/text_document_change_registration_options.rb +2 -1
  138. data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +97 -75
  139. data/lib/language_server/protocol/interface/text_document_registration_options.rb +3 -0
  140. data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +1 -0
  141. data/lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb +62 -0
  142. data/lib/language_server/protocol/interface/text_document_sync_options.rb +14 -6
  143. data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +44 -0
  144. data/lib/language_server/protocol/interface/type_definition_options.rb +25 -0
  145. data/lib/language_server/protocol/interface/type_definition_params.rb +25 -0
  146. data/lib/language_server/protocol/interface/type_definition_registration_options.rb +25 -0
  147. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +5 -1
  148. data/lib/language_server/protocol/interface/work_done_progress_begin.rb +80 -0
  149. data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +33 -0
  150. data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +33 -0
  151. data/lib/language_server/protocol/interface/work_done_progress_end.rb +40 -0
  152. data/lib/language_server/protocol/interface/work_done_progress_options.rb +30 -0
  153. data/lib/language_server/protocol/interface/work_done_progress_params.rb +33 -0
  154. data/lib/language_server/protocol/interface/work_done_progress_report.rb +70 -0
  155. data/lib/language_server/protocol/interface/workspace_edit.rb +11 -5
  156. data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +53 -0
  157. data/lib/language_server/protocol/interface/workspace_folder.rb +2 -2
  158. data/lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb +48 -0
  159. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +42 -0
  160. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +25 -0
  161. data/lib/language_server/protocol/interface/workspace_symbol_params.rb +5 -3
  162. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +25 -0
  163. data/lib/language_server/protocol/transport.rb +1 -0
  164. data/lib/language_server/protocol/transport/io.rb +2 -0
  165. data/lib/language_server/protocol/transport/io/reader.rb +47 -0
  166. data/lib/language_server/protocol/transport/io/writer.rb +34 -0
  167. data/lib/language_server/protocol/transport/stdio/reader.rb +3 -29
  168. data/lib/language_server/protocol/transport/stdio/writer.rb +3 -18
  169. data/lib/language_server/protocol/version.rb +1 -1
  170. metadata +105 -29
  171. data/.gitignore +0 -10
  172. data/.travis.yml +0 -5
  173. data/CHANGELOG.md +0 -13
  174. data/CODE_OF_CONDUCT.md +0 -74
  175. data/Dockerfile-node.development +0 -6
  176. data/Dockerfile.development +0 -24
  177. data/Gemfile +0 -6
  178. data/Rakefile +0 -10
  179. data/bin/console +0 -14
  180. data/bin/generate_files +0 -5
  181. data/bin/m +0 -17
  182. data/bin/setup +0 -6
  183. data/circle.yml +0 -27
  184. data/docker-compose.ci.yml +0 -14
  185. data/docker-compose.override.yml +0 -15
  186. data/docker-compose.yml +0 -31
  187. data/language_server-protocol.gemspec +0 -31
  188. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +0 -55
  189. data/lib/language_server/protocol/interface/workspace_client_capabilites.rb +0 -82
  190. data/lib/language_server/protocol/interface/workspace_client_capabilities.rb +0 -104
  191. data/package.json +0 -10
  192. data/scripts/generateFiles.ts +0 -252
  193. data/yarn.lock +0 -293
@@ -0,0 +1,25 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class ImplementationOptions < WorkDoneProgressOptions
5
+ def initialize(work_done_progress: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ attr_reader :attributes
14
+
15
+ def to_hash
16
+ attributes
17
+ end
18
+
19
+ def to_json(*args)
20
+ to_hash.to_json(*args)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class ImplementationParams < PartialResultParams
5
+ def initialize(partial_result_token: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ attr_reader :attributes
14
+
15
+ def to_hash
16
+ attributes
17
+ end
18
+
19
+ def to_json(*args)
20
+ to_hash.to_json(*args)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class ImplementationRegistrationOptions < StaticRegistrationOptions
5
+ def initialize(id: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:id] = id if id
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ attr_reader :attributes
14
+
15
+ def to_hash
16
+ attributes
17
+ end
18
+
19
+ def to_json(*args)
20
+ to_hash.to_json(*args)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,11 +1,13 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class InitializeParams
5
- def initialize(process_id:, root_path: nil, root_uri:, initialization_options: nil, capabilities:, trace: nil, workspace_folders: nil)
4
+ class InitializeParams < WorkDoneProgressParams
5
+ def initialize(work_done_token: nil, process_id:, client_info: nil, root_path: nil, root_uri:, initialization_options: nil, capabilities:, trace: nil, workspace_folders: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:workDoneToken] = work_done_token if work_done_token
8
9
  @attributes[:processId] = process_id
10
+ @attributes[:clientInfo] = client_info if client_info
9
11
  @attributes[:rootPath] = root_path if root_path
10
12
  @attributes[:rootUri] = root_uri
11
13
  @attributes[:initializationOptions] = initialization_options if initialization_options
@@ -26,6 +28,14 @@ module LanguageServer
26
28
  attributes.fetch(:processId)
27
29
  end
28
30
 
31
+ #
32
+ # Information about the client
33
+ #
34
+ # @return [{ name: string; version?: string; }]
35
+ def client_info
36
+ attributes.fetch(:clientInfo)
37
+ end
38
+
29
39
  #
30
40
  # The rootPath of the workspace. Is null
31
41
  # if no folder is open.
@@ -75,8 +85,6 @@ module LanguageServer
75
85
  # It can be `null` if the client supports workspace folders but none are
76
86
  # configured.
77
87
  #
78
- # Since 3.6.0
79
- #
80
88
  # @return [WorkspaceFolder[]]
81
89
  def workspace_folders
82
90
  attributes.fetch(:workspaceFolders)
@@ -2,10 +2,11 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  class InitializeResult
5
- def initialize(capabilities:)
5
+ def initialize(capabilities:, server_info: nil)
6
6
  @attributes = {}
7
7
 
8
8
  @attributes[:capabilities] = capabilities
9
+ @attributes[:serverInfo] = server_info if server_info
9
10
 
10
11
  @attributes.freeze
11
12
  end
@@ -18,6 +19,14 @@ module LanguageServer
18
19
  attributes.fetch(:capabilities)
19
20
  end
20
21
 
22
+ #
23
+ # Information about the server.
24
+ #
25
+ # @return [{ name: string; version?: string; }]
26
+ def server_info
27
+ attributes.fetch(:serverInfo)
28
+ end
29
+
21
30
  attr_reader :attributes
22
31
 
23
32
  def to_hash
@@ -0,0 +1,66 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class LocationLink
5
+ def initialize(origin_selection_range: nil, target_uri:, target_range:, target_selection_range:)
6
+ @attributes = {}
7
+
8
+ @attributes[:originSelectionRange] = origin_selection_range if origin_selection_range
9
+ @attributes[:targetUri] = target_uri
10
+ @attributes[:targetRange] = target_range
11
+ @attributes[:targetSelectionRange] = target_selection_range
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # Span of the origin of this link.
18
+ #
19
+ # Used as the underlined span for mouse interaction. Defaults to the word range at
20
+ # the mouse position.
21
+ #
22
+ # @return [Range]
23
+ def origin_selection_range
24
+ attributes.fetch(:originSelectionRange)
25
+ end
26
+
27
+ #
28
+ # The target resource identifier of this link.
29
+ #
30
+ # @return [string]
31
+ def target_uri
32
+ attributes.fetch(:targetUri)
33
+ end
34
+
35
+ #
36
+ # The full target range of this link. If the target for example is a symbol then target range is the
37
+ # range enclosing this symbol not including leading/trailing whitespace but everything else
38
+ # like comments. This information is typically used to highlight the range in the editor.
39
+ #
40
+ # @return [Range]
41
+ def target_range
42
+ attributes.fetch(:targetRange)
43
+ end
44
+
45
+ #
46
+ # The range that should be selected and revealed when this link is being followed, e.g the name of a function.
47
+ # Must be contained by the the `targetRange`. See also `DocumentSymbol#range`
48
+ #
49
+ # @return [Range]
50
+ def target_selection_range
51
+ attributes.fetch(:targetSelectionRange)
52
+ end
53
+
54
+ attr_reader :attributes
55
+
56
+ def to_hash
57
+ attributes
58
+ end
59
+
60
+ def to_json(*args)
61
+ to_hash.to_json(*args)
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -9,7 +9,7 @@ module LanguageServer
9
9
  # See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
10
10
  #
11
11
  # Here is an example how such a string can be constructed using JavaScript / TypeScript:
12
- # ```ts
12
+ # ```typescript
13
13
  # let markdown: MarkdownContent = {
14
14
  # kind: MarkupKind.Markdown,
15
15
  # value: [
@@ -5,6 +5,7 @@ module LanguageServer
5
5
  def initialize(jsonrpc:, method:, params: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:jsonrpc] = jsonrpc
8
9
  @attributes[:method] = method
9
10
  @attributes[:params] = params if params
10
11
 
@@ -22,7 +23,7 @@ module LanguageServer
22
23
  #
23
24
  # The notification's params.
24
25
  #
25
- # @return [object | any[]]
26
+ # @return [any]
26
27
  def params
27
28
  attributes.fetch(:params)
28
29
  end
@@ -16,10 +16,16 @@ module LanguageServer
16
16
  end
17
17
 
18
18
  #
19
- # The label of this parameter. Will be shown in
20
- # the UI.
19
+ # The label of this parameter information.
21
20
  #
22
- # @return [string]
21
+ # Either a string or an inclusive start and exclusive end offsets within its containing
22
+ # signature label. (see SignatureInformation.label). The offsets are based on a UTF-16
23
+ # string representation as `Position` and `Range` does.
24
+ #
25
+ # *Note*: a label of type string should be a substring of its containing signature label.
26
+ # Its intended use case is to highlight the parameter label part in the `SignatureInformation.label`.
27
+ #
28
+ # @return [string | [number, number]]
23
29
  def label
24
30
  attributes.fetch(:label)
25
31
  end
@@ -0,0 +1,34 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class PartialResultParams
5
+ def initialize(partial_result_token: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # An optional token that a server can use to report partial results (e.g. streaming) to
15
+ # the client.
16
+ #
17
+ # @return [string | number]
18
+ def partial_result_token
19
+ attributes.fetch(:partialResultToken)
20
+ end
21
+
22
+ attr_reader :attributes
23
+
24
+ def to_hash
25
+ attributes
26
+ end
27
+
28
+ def to_json(*args)
29
+ to_hash.to_json(*args)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,26 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class PrepareRenameParams < TextDocumentPositionParams
5
+ def initialize(text_document:, position:)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+ @attributes[:position] = position
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ attr_reader :attributes
15
+
16
+ def to_hash
17
+ attributes
18
+ end
19
+
20
+ def to_json(*args)
21
+ to_hash.to_json(*args)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,42 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class ProgressParams
5
+ def initialize(token:, value:)
6
+ @attributes = {}
7
+
8
+ @attributes[:token] = token
9
+ @attributes[:value] = value
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The progress token provided by the client or server.
16
+ #
17
+ # @return [string | number]
18
+ def token
19
+ attributes.fetch(:token)
20
+ end
21
+
22
+ #
23
+ # The progress data.
24
+ #
25
+ # @return [T]
26
+ def value
27
+ attributes.fetch(:value)
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,53 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class PublishDiagnosticsClientCapabilities
5
+ def initialize(related_information: nil, tag_support: nil, version_support: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:relatedInformation] = related_information if related_information
9
+ @attributes[:tagSupport] = tag_support if tag_support
10
+ @attributes[:versionSupport] = version_support if version_support
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # Whether the clients accepts diagnostics with related information.
17
+ #
18
+ # @return [boolean]
19
+ def related_information
20
+ attributes.fetch(:relatedInformation)
21
+ end
22
+
23
+ #
24
+ # Client supports the tag property to provide meta data about a diagnostic.
25
+ # Clients supporting tags have to handle unknown tags gracefully.
26
+ #
27
+ # @return [{ valueSet: DiagnosticTag[]; }]
28
+ def tag_support
29
+ attributes.fetch(:tagSupport)
30
+ end
31
+
32
+ #
33
+ # Whether the client interprets the version property of the
34
+ # `textDocument/publishDiagnostics` notification's parameter.
35
+ #
36
+ # @return [boolean]
37
+ def version_support
38
+ attributes.fetch(:versionSupport)
39
+ end
40
+
41
+ attr_reader :attributes
42
+
43
+ def to_hash
44
+ attributes
45
+ end
46
+
47
+ def to_json(*args)
48
+ to_hash.to_json(*args)
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -2,10 +2,11 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  class PublishDiagnosticsParams
5
- def initialize(uri:, diagnostics:)
5
+ def initialize(uri:, version: nil, diagnostics:)
6
6
  @attributes = {}
7
7
 
8
8
  @attributes[:uri] = uri
9
+ @attributes[:version] = version if version
9
10
  @attributes[:diagnostics] = diagnostics
10
11
 
11
12
  @attributes.freeze
@@ -19,6 +20,14 @@ module LanguageServer
19
20
  attributes.fetch(:uri)
20
21
  end
21
22
 
23
+ #
24
+ # Optional the version number of the document the diagnostics are published for.
25
+ #
26
+ # @return [number]
27
+ def version
28
+ attributes.fetch(:version)
29
+ end
30
+
22
31
  #
23
32
  # An array of diagnostic information items.
24
33
  #