language_server-protocol 3.12.0.0 → 3.15.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 (193) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -1
  3. data/lib/language_server/protocol/constant.rb +12 -0
  4. data/lib/language_server/protocol/constant/code_action_kind.rb +12 -8
  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 +174 -8
  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 +14 -1
  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 +5 -1
  18. data/lib/language_server/protocol/interface/code_action_options.rb +3 -5
  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 +3 -1
  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 +16 -5
  28. data/lib/language_server/protocol/interface/completion_options.rb +33 -11
  29. data/lib/language_server/protocol/interface/completion_params.rb +3 -2
  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/{folding_range_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 +1 -1
  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_request_param.rb → folding_range_params.rb} +3 -2
  89. data/lib/language_server/protocol/interface/{color_provider_options.rb → folding_range_registration_options.rb} +3 -5
  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 +3 -5
  118. data/lib/language_server/protocol/interface/rename_params.rb +3 -20
  119. data/lib/language_server/protocol/interface/rename_registration_options.rb +3 -10
  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 +66 -56
  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 +90 -79
  139. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +8 -4
  140. data/lib/language_server/protocol/interface/text_document_registration_options.rb +3 -0
  141. data/lib/language_server/protocol/interface/text_document_save_registration_options.rb +1 -0
  142. data/lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb +62 -0
  143. data/lib/language_server/protocol/interface/text_document_sync_options.rb +14 -6
  144. data/lib/language_server/protocol/interface/type_definition_client_capabilities.rb +44 -0
  145. data/lib/language_server/protocol/interface/type_definition_options.rb +25 -0
  146. data/lib/language_server/protocol/interface/type_definition_params.rb +25 -0
  147. data/lib/language_server/protocol/interface/type_definition_registration_options.rb +25 -0
  148. data/lib/language_server/protocol/interface/versioned_text_document_identifier.rb +5 -1
  149. data/lib/language_server/protocol/interface/work_done_progress_begin.rb +80 -0
  150. data/lib/language_server/protocol/interface/work_done_progress_cancel_params.rb +33 -0
  151. data/lib/language_server/protocol/interface/work_done_progress_create_params.rb +33 -0
  152. data/lib/language_server/protocol/interface/work_done_progress_end.rb +40 -0
  153. data/lib/language_server/protocol/interface/work_done_progress_options.rb +30 -0
  154. data/lib/language_server/protocol/interface/work_done_progress_params.rb +33 -0
  155. data/lib/language_server/protocol/interface/work_done_progress_report.rb +70 -0
  156. data/lib/language_server/protocol/interface/workspace_edit.rb +11 -5
  157. data/lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb +53 -0
  158. data/lib/language_server/protocol/interface/workspace_folder.rb +2 -2
  159. data/lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb +48 -0
  160. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +42 -0
  161. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +25 -0
  162. data/lib/language_server/protocol/interface/workspace_symbol_params.rb +5 -3
  163. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +25 -0
  164. data/lib/language_server/protocol/transport.rb +1 -0
  165. data/lib/language_server/protocol/transport/io.rb +2 -0
  166. data/lib/language_server/protocol/transport/io/reader.rb +47 -0
  167. data/lib/language_server/protocol/transport/io/writer.rb +34 -0
  168. data/lib/language_server/protocol/transport/stdio/reader.rb +3 -29
  169. data/lib/language_server/protocol/transport/stdio/writer.rb +3 -18
  170. data/lib/language_server/protocol/version.rb +1 -1
  171. metadata +98 -30
  172. data/.gitignore +0 -10
  173. data/.travis.yml +0 -5
  174. data/CHANGELOG.md +0 -17
  175. data/CODE_OF_CONDUCT.md +0 -74
  176. data/Dockerfile-node.development +0 -6
  177. data/Dockerfile.development +0 -24
  178. data/Gemfile +0 -6
  179. data/Rakefile +0 -10
  180. data/bin/console +0 -14
  181. data/bin/generate_files +0 -5
  182. data/bin/m +0 -17
  183. data/bin/setup +0 -6
  184. data/circle.yml +0 -28
  185. data/docker-compose.ci.yml +0 -16
  186. data/docker-compose.override.yml +0 -15
  187. data/docker-compose.yml +0 -37
  188. data/language_server-protocol.gemspec +0 -31
  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 -320
  193. data/yarn.lock +0 -293
@@ -0,0 +1,51 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class DocumentSymbolClientCapabilities
5
+ def initialize(dynamic_registration: nil, symbol_kind: nil, hierarchical_document_symbol_support: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+ @attributes[:symbolKind] = symbol_kind if symbol_kind
10
+ @attributes[:hierarchicalDocumentSymbolSupport] = hierarchical_document_symbol_support if hierarchical_document_symbol_support
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # Whether document symbol supports dynamic registration.
17
+ #
18
+ # @return [boolean]
19
+ def dynamic_registration
20
+ attributes.fetch(:dynamicRegistration)
21
+ end
22
+
23
+ #
24
+ # Specific capabilities for the `SymbolKind` in the `textDocument/documentSymbol` request.
25
+ #
26
+ # @return [{ valueSet?: any[]; }]
27
+ def symbol_kind
28
+ attributes.fetch(:symbolKind)
29
+ end
30
+
31
+ #
32
+ # The client supports hierarchical document symbols.
33
+ #
34
+ # @return [boolean]
35
+ def hierarchical_document_symbol_support
36
+ attributes.fetch(:hierarchicalDocumentSymbolSupport)
37
+ end
38
+
39
+ attr_reader :attributes
40
+
41
+ def to_hash
42
+ attributes
43
+ end
44
+
45
+ def to_json(*args)
46
+ to_hash.to_json(*args)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,25 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class DocumentSymbolOptions < 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
@@ -1,10 +1,11 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class DocumentSymbolParams
5
- def initialize(text_document:)
4
+ class DocumentSymbolParams < PartialResultParams
5
+ def initialize(partial_result_token: nil, text_document:)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
8
9
  @attributes[:textDocument] = text_document
9
10
 
10
11
  @attributes.freeze
@@ -0,0 +1,25 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class DocumentSymbolRegistrationOptions < DocumentSymbolOptions
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,33 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class ExecuteCommandClientCapabilities
5
+ def initialize(dynamic_registration: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # Execute command supports dynamic registration.
15
+ #
16
+ # @return [boolean]
17
+ def dynamic_registration
18
+ attributes.fetch(:dynamicRegistration)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_hash
24
+ attributes
25
+ end
26
+
27
+ def to_json(*args)
28
+ to_hash.to_json(*args)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,13 +1,11 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- #
5
- # Execute command options.
6
- #
7
- class ExecuteCommandOptions
8
- def initialize(commands:)
4
+ class ExecuteCommandOptions < WorkDoneProgressOptions
5
+ def initialize(work_done_progress: nil, commands:)
9
6
  @attributes = {}
10
7
 
8
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
11
9
  @attributes[:commands] = commands
12
10
 
13
11
  @attributes.freeze
@@ -1,10 +1,11 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class ExecuteCommandParams
5
- def initialize(command:, arguments: nil)
4
+ class ExecuteCommandParams < WorkDoneProgressParams
5
+ def initialize(work_done_token: nil, command:, arguments: nil)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:workDoneToken] = work_done_token if work_done_token
8
9
  @attributes[:command] = command
9
10
  @attributes[:arguments] = arguments if arguments
10
11
 
@@ -4,23 +4,16 @@ module LanguageServer
4
4
  #
5
5
  # Execute command registration options.
6
6
  #
7
- class ExecuteCommandRegistrationOptions
8
- def initialize(commands:)
7
+ class ExecuteCommandRegistrationOptions < ExecuteCommandOptions
8
+ def initialize(work_done_progress: nil, commands:)
9
9
  @attributes = {}
10
10
 
11
+ @attributes[:workDoneProgress] = work_done_progress if work_done_progress
11
12
  @attributes[:commands] = commands
12
13
 
13
14
  @attributes.freeze
14
15
  end
15
16
 
16
- #
17
- # The commands to be executed on the server
18
- #
19
- # @return [string[]]
20
- def commands
21
- attributes.fetch(:commands)
22
- end
23
-
24
17
  attr_reader :attributes
25
18
 
26
19
  def to_hash
@@ -12,7 +12,15 @@ module LanguageServer
12
12
  end
13
13
 
14
14
  #
15
- # The glob pattern to watch
15
+ # The glob pattern to watch.
16
+ #
17
+ # Glob patterns can have the following syntax:
18
+ # - `*` to match one or more characters in a path segment
19
+ # - `?` to match on one character in a path segment
20
+ # - `**` to match any number of path segments, including none
21
+ # - `{}` to group conditions (e.g. `**​/*.{ts,js}` matches all TypeScript and JavaScript files)
22
+ # - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
23
+ # - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`)
16
24
  #
17
25
  # @return [string]
18
26
  def glob_pattern
@@ -50,7 +50,7 @@ module LanguageServer
50
50
  end
51
51
 
52
52
  #
53
- # Describes the kind of the folding range such as `comment' or 'region'. The kind
53
+ # Describes the kind of the folding range such as `comment` or `region`. The kind
54
54
  # is used to categorize folding ranges and used by commands like 'Fold all comments'. See
55
55
  # [FoldingRangeKind](#FoldingRangeKind) for an enumeration of standardized kinds.
56
56
  #
@@ -0,0 +1,55 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class FoldingRangeClientCapabilities
5
+ def initialize(dynamic_registration: nil, range_limit: nil, line_folding_only: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+ @attributes[:rangeLimit] = range_limit if range_limit
10
+ @attributes[:lineFoldingOnly] = line_folding_only if line_folding_only
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # Whether implementation supports dynamic registration for folding range providers. If this is set to `true`
17
+ # the client supports the new `FoldingRangeRegistrationOptions` return value for the corresponding server
18
+ # capability as well.
19
+ #
20
+ # @return [boolean]
21
+ def dynamic_registration
22
+ attributes.fetch(:dynamicRegistration)
23
+ end
24
+
25
+ #
26
+ # The maximum number of folding ranges that the client prefers to receive per document. The value serves as a
27
+ # hint, servers are free to follow the limit.
28
+ #
29
+ # @return [number]
30
+ def range_limit
31
+ attributes.fetch(:rangeLimit)
32
+ end
33
+
34
+ #
35
+ # If set, the client signals that it only supports folding complete lines. If set, client will
36
+ # ignore specified `startCharacter` and `endCharacter` properties in a FoldingRange.
37
+ #
38
+ # @return [boolean]
39
+ def line_folding_only
40
+ attributes.fetch(:lineFoldingOnly)
41
+ end
42
+
43
+ attr_reader :attributes
44
+
45
+ def to_hash
46
+ attributes
47
+ end
48
+
49
+ def to_json(*args)
50
+ to_hash.to_json(*args)
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,25 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class FoldingRangeOptions < 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
@@ -1,10 +1,11 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- class FoldingRangeRequestParam
5
- def initialize(text_document:)
4
+ class FoldingRangeParams < PartialResultParams
5
+ def initialize(partial_result_token: nil, text_document:)
6
6
  @attributes = {}
7
7
 
8
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
8
9
  @attributes[:textDocument] = text_document
9
10
 
10
11
  @attributes.freeze
@@ -1,13 +1,11 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- #
5
- # Color provider options.
6
- #
7
- class ColorProviderOptions
8
- def initialize()
4
+ class FoldingRangeRegistrationOptions < StaticRegistrationOptions
5
+ def initialize(id: nil)
9
6
  @attributes = {}
10
7
 
8
+ @attributes[:id] = id if id
11
9
 
12
10
  @attributes.freeze
13
11
  end
@@ -5,11 +5,14 @@ module LanguageServer
5
5
  # Value-object describing what options formatting should use.
6
6
  #
7
7
  class FormattingOptions
8
- def initialize(tab_size:, insert_spaces:)
8
+ def initialize(tab_size:, insert_spaces:, trim_trailing_whitespace: nil, insert_final_newline: nil, trim_final_newlines: nil)
9
9
  @attributes = {}
10
10
 
11
11
  @attributes[:tabSize] = tab_size
12
12
  @attributes[:insertSpaces] = insert_spaces
13
+ @attributes[:trimTrailingWhitespace] = trim_trailing_whitespace if trim_trailing_whitespace
14
+ @attributes[:insertFinalNewline] = insert_final_newline if insert_final_newline
15
+ @attributes[:trimFinalNewlines] = trim_final_newlines if trim_final_newlines
13
16
 
14
17
  @attributes.freeze
15
18
  end
@@ -30,6 +33,30 @@ module LanguageServer
30
33
  attributes.fetch(:insertSpaces)
31
34
  end
32
35
 
36
+ #
37
+ # Trim trailing whitespace on a line.
38
+ #
39
+ # @return [boolean]
40
+ def trim_trailing_whitespace
41
+ attributes.fetch(:trimTrailingWhitespace)
42
+ end
43
+
44
+ #
45
+ # Insert a newline character at the end of the file if one does not exist.
46
+ #
47
+ # @return [boolean]
48
+ def insert_final_newline
49
+ attributes.fetch(:insertFinalNewline)
50
+ end
51
+
52
+ #
53
+ # Trim all newlines after the final newline at the end of the file.
54
+ #
55
+ # @return [boolean]
56
+ def trim_final_newlines
57
+ attributes.fetch(:trimFinalNewlines)
58
+ end
59
+
33
60
  attr_reader :attributes
34
61
 
35
62
  def to_hash
@@ -0,0 +1,43 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class HoverClientCapabilities
5
+ def initialize(dynamic_registration: nil, content_format: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+ @attributes[:contentFormat] = content_format if content_format
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # Whether hover supports dynamic registration.
16
+ #
17
+ # @return [boolean]
18
+ def dynamic_registration
19
+ attributes.fetch(:dynamicRegistration)
20
+ end
21
+
22
+ #
23
+ # Client supports the follow content formats for the content
24
+ # property. The order describes the preferred format of the client.
25
+ #
26
+ # @return [MarkupKind[]]
27
+ def content_format
28
+ attributes.fetch(:contentFormat)
29
+ end
30
+
31
+ attr_reader :attributes
32
+
33
+ def to_hash
34
+ attributes
35
+ end
36
+
37
+ def to_json(*args)
38
+ to_hash.to_json(*args)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end