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,40 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkDoneProgressEnd
5
+ def initialize(kind:, message: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:kind] = kind
9
+ @attributes[:message] = message if message
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ # @return ["end"]
15
+ def kind
16
+ attributes.fetch(:kind)
17
+ end
18
+
19
+ #
20
+ # Optional, a final message indicating to for example indicate the outcome
21
+ # of the operation.
22
+ #
23
+ # @return [string]
24
+ def message
25
+ attributes.fetch(:message)
26
+ end
27
+
28
+ attr_reader :attributes
29
+
30
+ def to_hash
31
+ attributes
32
+ end
33
+
34
+ def to_json(*args)
35
+ to_hash.to_json(*args)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,30 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class 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
+ # @return [boolean]
14
+ def work_done_progress
15
+ attributes.fetch(:workDoneProgress)
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,33 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkDoneProgressParams
5
+ def initialize(work_done_token: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:workDoneToken] = work_done_token if work_done_token
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # An optional token that a server can use to report work done progress.
15
+ #
16
+ # @return [string | number]
17
+ def work_done_token
18
+ attributes.fetch(:workDoneToken)
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
@@ -0,0 +1,70 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkDoneProgressReport
5
+ def initialize(kind:, cancellable: nil, message: nil, percentage: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:kind] = kind
9
+ @attributes[:cancellable] = cancellable if cancellable
10
+ @attributes[:message] = message if message
11
+ @attributes[:percentage] = percentage if percentage
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ # @return ["report"]
17
+ def kind
18
+ attributes.fetch(:kind)
19
+ end
20
+
21
+ #
22
+ # Controls enablement state of a cancel button. This property is only valid if a cancel
23
+ # button got requested in the `WorkDoneProgressStart` payload.
24
+ #
25
+ # Clients that don't support cancellation or don't support control the button's
26
+ # enablement state are allowed to ignore the setting.
27
+ #
28
+ # @return [boolean]
29
+ def cancellable
30
+ attributes.fetch(:cancellable)
31
+ end
32
+
33
+ #
34
+ # Optional, more detailed associated progress message. Contains
35
+ # complementary information to the `title`.
36
+ #
37
+ # Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
38
+ # If unset, the previous progress message (if any) is still valid.
39
+ #
40
+ # @return [string]
41
+ def message
42
+ attributes.fetch(:message)
43
+ end
44
+
45
+ #
46
+ # Optional progress percentage to display (value 100 is considered 100%).
47
+ # If not provided infinite progress is assumed and clients are allowed
48
+ # to ignore the `percentage` value in subsequent in report notifications.
49
+ #
50
+ # The value should be steadily rising. Clients are free to ignore values
51
+ # that are not following this rule.
52
+ #
53
+ # @return [number]
54
+ def percentage
55
+ attributes.fetch(:percentage)
56
+ end
57
+
58
+ attr_reader :attributes
59
+
60
+ def to_hash
61
+ attributes
62
+ end
63
+
64
+ def to_json(*args)
65
+ to_hash.to_json(*args)
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -14,18 +14,24 @@ module LanguageServer
14
14
  #
15
15
  # Holds changes to existing resources.
16
16
  #
17
- # @return [{ [uri: string]: TextEdit[]; }]
17
+ # @return [{}]
18
18
  def changes
19
19
  attributes.fetch(:changes)
20
20
  end
21
21
 
22
22
  #
23
- # An array of `TextDocumentEdit`s to express changes to n different text documents
24
- # where each text document edit addresses a specific version of a text document.
23
+ # Depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes
24
+ # are either an array of `TextDocumentEdit`s to express changes to n different text documents
25
+ # where each text document edit addresses a specific version of a text document. Or it can contain
26
+ # above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations.
27
+ #
25
28
  # Whether a client supports versioned document edits is expressed via
26
- # `WorkspaceClientCapabilities.workspaceEdit.documentChanges`.
29
+ # `workspace.workspaceEdit.documentChanges` client capability.
30
+ #
31
+ # If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then
32
+ # only plain `TextEdit`s using the `changes` property are supported.
27
33
  #
28
- # @return [TextDocumentEdit[]]
34
+ # @return [TextDocumentEdit[] | (TextDocumentEdit | CreateFile | RenameFile | DeleteFile)[]]
29
35
  def document_changes
30
36
  attributes.fetch(:documentChanges)
31
37
  end
@@ -0,0 +1,53 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkspaceEditClientCapabilities
5
+ def initialize(document_changes: nil, resource_operations: nil, failure_handling: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:documentChanges] = document_changes if document_changes
9
+ @attributes[:resourceOperations] = resource_operations if resource_operations
10
+ @attributes[:failureHandling] = failure_handling if failure_handling
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # The client supports versioned document changes in `WorkspaceEdit`s
17
+ #
18
+ # @return [boolean]
19
+ def document_changes
20
+ attributes.fetch(:documentChanges)
21
+ end
22
+
23
+ #
24
+ # The resource operations the client supports. Clients should at least
25
+ # support 'create', 'rename' and 'delete' files and folders.
26
+ #
27
+ # @return [ResourceOperationKind[]]
28
+ def resource_operations
29
+ attributes.fetch(:resourceOperations)
30
+ end
31
+
32
+ #
33
+ # The failure handling strategy of a client if applying the workspace edit
34
+ # fails.
35
+ #
36
+ # @return [FailureHandlingKind]
37
+ def failure_handling
38
+ attributes.fetch(:failureHandling)
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
@@ -20,8 +20,8 @@ module LanguageServer
20
20
  end
21
21
 
22
22
  #
23
- # The name of the workspace folder. Defaults to the
24
- # uri's basename.
23
+ # The name of the workspace folder. Used to refer to this
24
+ # workspace folder in the user interface.
25
25
  #
26
26
  # @return [string]
27
27
  def name
@@ -0,0 +1,48 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkspaceFoldersServerCapabilities
5
+ def initialize(supported: nil, change_notifications: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:supported] = supported if supported
9
+ @attributes[:changeNotifications] = change_notifications if change_notifications
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The server has support for workspace folders
16
+ #
17
+ # @return [boolean]
18
+ def supported
19
+ attributes.fetch(:supported)
20
+ end
21
+
22
+ #
23
+ # Whether the server wants to receive workspace folder
24
+ # change notifications.
25
+ #
26
+ # If a string is provided, the string is treated as an ID
27
+ # under which the notification is registered on the client
28
+ # side. The ID can be used to unregister for these events
29
+ # using the `client/unregisterCapability` request.
30
+ #
31
+ # @return [string | boolean]
32
+ def change_notifications
33
+ attributes.fetch(:changeNotifications)
34
+ end
35
+
36
+ attr_reader :attributes
37
+
38
+ def to_hash
39
+ attributes
40
+ end
41
+
42
+ def to_json(*args)
43
+ to_hash.to_json(*args)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,42 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkspaceSymbolClientCapabilities
5
+ def initialize(dynamic_registration: nil, symbol_kind: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+ @attributes[:symbolKind] = symbol_kind if symbol_kind
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # Symbol request supports dynamic registration.
16
+ #
17
+ # @return [boolean]
18
+ def dynamic_registration
19
+ attributes.fetch(:dynamicRegistration)
20
+ end
21
+
22
+ #
23
+ # Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
24
+ #
25
+ # @return [{ valueSet?: any[]; }]
26
+ def symbol_kind
27
+ attributes.fetch(:symbolKind)
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,25 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkspaceSymbolOptions < 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
@@ -4,17 +4,19 @@ module LanguageServer
4
4
  #
5
5
  # The parameters of a Workspace Symbol Request.
6
6
  #
7
- class WorkspaceSymbolParams
8
- def initialize(query:)
7
+ class WorkspaceSymbolParams < PartialResultParams
8
+ def initialize(partial_result_token: nil, query:)
9
9
  @attributes = {}
10
10
 
11
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
11
12
  @attributes[:query] = query
12
13
 
13
14
  @attributes.freeze
14
15
  end
15
16
 
16
17
  #
17
- # A non-empty query string
18
+ # A query string to filter symbols by. Clients may send an empty
19
+ # string here to request all symbols.
18
20
  #
19
21
  # @return [string]
20
22
  def query
@@ -0,0 +1,25 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class WorkspaceSymbolRegistrationOptions < WorkspaceSymbolOptions
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 +1,2 @@
1
+ require "language_server/protocol/transport/io"
1
2
  require "language_server/protocol/transport/stdio"