language_server-protocol 3.16.0.2 → 3.17.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/lib/language_server/protocol/constant/code_action_kind.rb +8 -0
  3. data/lib/language_server/protocol/constant/code_action_trigger_kind.rb +22 -0
  4. data/lib/language_server/protocol/constant/document_diagnostic_report_kind.rb +21 -0
  5. data/lib/language_server/protocol/constant/error_codes.rb +33 -2
  6. data/lib/language_server/protocol/constant/folding_range_kind.rb +24 -0
  7. data/lib/language_server/protocol/constant/{initialize_error.rb → initialize_error_codes.rb} +4 -4
  8. data/lib/language_server/protocol/constant/inlay_hint_kind.rb +19 -0
  9. data/lib/language_server/protocol/constant/moniker_kind.rb +24 -0
  10. data/lib/language_server/protocol/constant/notebook_cell_kind.rb +19 -0
  11. data/lib/language_server/protocol/constant/position_encoding_kind.rb +32 -0
  12. data/lib/language_server/protocol/constant/prepare_support_default_behavior.rb +1 -1
  13. data/lib/language_server/protocol/constant/semantic_token_modifiers.rb +18 -0
  14. data/lib/language_server/protocol/constant/semantic_token_types.rb +35 -0
  15. data/lib/language_server/protocol/constant/uniqueness_level.rb +31 -0
  16. data/lib/language_server/protocol/constant.rb +22 -2
  17. data/lib/language_server/protocol/interface/{apply_workspace_edit_response.rb → apply_workspace_edit_result.rb} +2 -2
  18. data/lib/language_server/protocol/interface/call_hierarchy_item.rb +1 -1
  19. data/lib/language_server/protocol/interface/client_capabilities.rb +13 -4
  20. data/lib/language_server/protocol/interface/code_action.rb +1 -1
  21. data/lib/language_server/protocol/interface/code_action_context.rb +10 -1
  22. data/lib/language_server/protocol/interface/code_lens.rb +1 -1
  23. data/lib/language_server/protocol/interface/color_presentation.rb +1 -1
  24. data/lib/language_server/protocol/interface/command.rb +1 -1
  25. data/lib/language_server/protocol/interface/completion_client_capabilities.rb +23 -3
  26. data/lib/language_server/protocol/interface/completion_item.rb +41 -9
  27. data/lib/language_server/protocol/interface/completion_item_label_details.rb +49 -0
  28. data/lib/language_server/protocol/interface/completion_list.rb +24 -2
  29. data/lib/language_server/protocol/interface/completion_options.rb +11 -1
  30. data/lib/language_server/protocol/interface/completion_registration_options.rb +11 -1
  31. data/lib/language_server/protocol/interface/create_file.rb +1 -1
  32. data/lib/language_server/protocol/interface/delete_file.rb +1 -1
  33. data/lib/language_server/protocol/interface/diagnostic_client_capabilities.rb +49 -0
  34. data/lib/language_server/protocol/interface/diagnostic_options.rb +64 -0
  35. data/lib/language_server/protocol/interface/diagnostic_registration_options.rb +84 -0
  36. data/lib/language_server/protocol/interface/diagnostic_server_cancellation_data.rb +33 -0
  37. data/lib/language_server/protocol/interface/diagnostic_workspace_client_capabilities.rb +42 -0
  38. data/lib/language_server/protocol/interface/did_change_configuration_params.rb +1 -1
  39. data/lib/language_server/protocol/interface/did_change_notebook_document_params.rb +56 -0
  40. data/lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb +11 -1
  41. data/lib/language_server/protocol/interface/did_close_notebook_document_params.rb +46 -0
  42. data/lib/language_server/protocol/interface/did_open_notebook_document_params.rb +46 -0
  43. data/lib/language_server/protocol/interface/did_save_notebook_document_params.rb +36 -0
  44. data/lib/language_server/protocol/interface/document_diagnostic_params.rb +73 -0
  45. data/lib/language_server/protocol/interface/document_diagnostic_report_partial_result.rb +33 -0
  46. data/lib/language_server/protocol/interface/document_link.rb +1 -1
  47. data/lib/language_server/protocol/interface/document_on_type_formatting_options.rb +1 -1
  48. data/lib/language_server/protocol/interface/document_on_type_formatting_params.rb +9 -4
  49. data/lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb +1 -1
  50. data/lib/language_server/protocol/interface/document_symbol.rb +1 -1
  51. data/lib/language_server/protocol/interface/document_symbol_client_capabilities.rb +1 -1
  52. data/lib/language_server/protocol/interface/execute_command_params.rb +1 -1
  53. data/lib/language_server/protocol/interface/execution_summary.rb +45 -0
  54. data/lib/language_server/protocol/interface/file_system_watcher.rb +3 -14
  55. data/lib/language_server/protocol/interface/folding_range.rb +12 -1
  56. data/lib/language_server/protocol/interface/folding_range_client_capabilities.rb +19 -1
  57. data/lib/language_server/protocol/interface/full_document_diagnostic_report.rb +56 -0
  58. data/lib/language_server/protocol/interface/hover_client_capabilities.rb +1 -1
  59. data/lib/language_server/protocol/interface/hover_result.rb +30 -0
  60. data/lib/language_server/protocol/interface/initialize_error.rb +0 -3
  61. data/lib/language_server/protocol/interface/initialize_params.rb +1 -1
  62. data/lib/language_server/protocol/interface/inlay_hint.rb +122 -0
  63. data/lib/language_server/protocol/interface/inlay_hint_client_capabilities.rb +46 -0
  64. data/lib/language_server/protocol/interface/inlay_hint_label_part.rb +79 -0
  65. data/lib/language_server/protocol/interface/inlay_hint_options.rb +43 -0
  66. data/lib/language_server/protocol/interface/inlay_hint_params.rb +54 -0
  67. data/lib/language_server/protocol/interface/inlay_hint_registration_options.rb +63 -0
  68. data/lib/language_server/protocol/interface/inlay_hint_workspace_client_capabilities.rb +42 -0
  69. data/lib/language_server/protocol/interface/inline_value_client_capabilities.rb +37 -0
  70. data/lib/language_server/protocol/interface/inline_value_context.rb +44 -0
  71. data/lib/language_server/protocol/interface/inline_value_evaluatable_expression.rb +52 -0
  72. data/lib/language_server/protocol/interface/inline_value_options.rb +33 -0
  73. data/lib/language_server/protocol/interface/inline_value_params.rb +64 -0
  74. data/lib/language_server/protocol/interface/inline_value_registration_options.rb +53 -0
  75. data/lib/language_server/protocol/interface/inline_value_text.rb +45 -0
  76. data/lib/language_server/protocol/interface/inline_value_variable_lookup.rb +61 -0
  77. data/lib/language_server/protocol/interface/inline_value_workspace_client_capabilities.rb +42 -0
  78. data/lib/language_server/protocol/interface/linked_editing_ranges.rb +5 -4
  79. data/lib/language_server/protocol/interface/location_link.rb +1 -1
  80. data/lib/language_server/protocol/interface/notebook_cell.rb +69 -0
  81. data/lib/language_server/protocol/interface/notebook_cell_array_change.rb +55 -0
  82. data/lib/language_server/protocol/interface/notebook_cell_text_document_filter.rb +52 -0
  83. data/lib/language_server/protocol/interface/notebook_document.rb +74 -0
  84. data/lib/language_server/protocol/interface/notebook_document_change_event.rb +45 -0
  85. data/lib/language_server/protocol/interface/notebook_document_client_capabilities.rb +36 -0
  86. data/lib/language_server/protocol/interface/notebook_document_filter.rb +79 -0
  87. data/lib/language_server/protocol/interface/notebook_document_identifier.rb +36 -0
  88. data/lib/language_server/protocol/interface/notebook_document_sync_client_capabilities.rb +48 -0
  89. data/lib/language_server/protocol/interface/notebook_document_sync_options.rb +56 -0
  90. data/lib/language_server/protocol/interface/notebook_document_sync_registration_options.rb +56 -0
  91. data/lib/language_server/protocol/interface/position.rb +2 -3
  92. data/lib/language_server/protocol/interface/prepare_rename_params.rb +10 -1
  93. data/lib/language_server/protocol/interface/previous_result_id.rb +46 -0
  94. data/lib/language_server/protocol/interface/registration.rb +1 -1
  95. data/lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb +69 -0
  96. data/lib/language_server/protocol/interface/related_unchanged_document_diagnostic_report.rb +62 -0
  97. data/lib/language_server/protocol/interface/relative_pattern.rb +48 -0
  98. data/lib/language_server/protocol/interface/rename_client_capabilities.rb +1 -1
  99. data/lib/language_server/protocol/interface/rename_file.rb +1 -1
  100. data/lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb +29 -1
  101. data/lib/language_server/protocol/interface/server_capabilities.rb +62 -2
  102. data/lib/language_server/protocol/interface/signature_help.rb +2 -2
  103. data/lib/language_server/protocol/interface/symbol_information.rb +1 -1
  104. data/lib/language_server/protocol/interface/text_document_client_capabilities.rb +37 -1
  105. data/lib/language_server/protocol/interface/text_document_content_change_event.rb +2 -2
  106. data/lib/language_server/protocol/interface/text_document_sync_options.rb +2 -0
  107. data/lib/language_server/protocol/interface/type_hierarchy_item.rb +102 -0
  108. data/lib/language_server/protocol/interface/type_hierarchy_options.rb +30 -0
  109. data/lib/language_server/protocol/interface/type_hierarchy_prepare_params.rb +51 -0
  110. data/lib/language_server/protocol/interface/type_hierarchy_registration_options.rb +50 -0
  111. data/lib/language_server/protocol/interface/type_hierarchy_subtypes_params.rb +49 -0
  112. data/lib/language_server/protocol/interface/type_hierarchy_supertypes_params.rb +49 -0
  113. data/lib/language_server/protocol/interface/unchanged_document_diagnostic_report.rb +50 -0
  114. data/lib/language_server/protocol/interface/{markdown_client_capabilities.rb → versioned_notebook_document_identifier.rb} +12 -12
  115. data/lib/language_server/protocol/interface/work_done_progress_report.rb +1 -1
  116. data/lib/language_server/protocol/interface/workspace_diagnostic_params.rb +65 -0
  117. data/lib/language_server/protocol/interface/workspace_diagnostic_report.rb +33 -0
  118. data/lib/language_server/protocol/interface/workspace_diagnostic_report_partial_result.rb +33 -0
  119. data/lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb +75 -0
  120. data/lib/language_server/protocol/interface/workspace_symbol.rb +89 -0
  121. data/lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb +14 -3
  122. data/lib/language_server/protocol/interface/workspace_symbol_options.rb +11 -1
  123. data/lib/language_server/protocol/interface/workspace_symbol_registration_options.rb +11 -1
  124. data/lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb +68 -0
  125. data/lib/language_server/protocol/interface.rb +124 -4
  126. data/lib/language_server/protocol/transport/io/reader.rb +7 -24
  127. data/lib/language_server/protocol/version.rb +1 -1
  128. metadata +75 -20
@@ -0,0 +1,56 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # The params sent in a change notebook document notification.
6
+ #
7
+ class DidChangeNotebookDocumentParams
8
+ def initialize(notebook_document:, change:)
9
+ @attributes = {}
10
+
11
+ @attributes[:notebookDocument] = notebook_document
12
+ @attributes[:change] = change
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # The notebook document that did change. The version number points
19
+ # to the version after all provided changes have been applied.
20
+ #
21
+ # @return [VersionedNotebookDocumentIdentifier]
22
+ def notebook_document
23
+ attributes.fetch(:notebookDocument)
24
+ end
25
+
26
+ #
27
+ # The actual changes to the notebook document.
28
+ #
29
+ # The change describes single state change to the notebook document.
30
+ # So it moves a notebook document, its cells and its cell text document
31
+ # contents from state S to S'.
32
+ #
33
+ # To mirror the content of a notebook using change events use the
34
+ # following approach:
35
+ # - start with the same initial content
36
+ # - apply the 'notebookDocument/didChange' notifications in the order
37
+ # you receive them.
38
+ #
39
+ # @return [NotebookDocumentChangeEvent]
40
+ def change
41
+ attributes.fetch(:change)
42
+ end
43
+
44
+ attr_reader :attributes
45
+
46
+ def to_hash
47
+ attributes
48
+ end
49
+
50
+ def to_json(*args)
51
+ to_hash.to_json(*args)
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -2,10 +2,11 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  class DidChangeWatchedFilesClientCapabilities
5
- def initialize(dynamic_registration: nil)
5
+ def initialize(dynamic_registration: nil, relative_pattern_support: nil)
6
6
  @attributes = {}
7
7
 
8
8
  @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
+ @attributes[:relativePatternSupport] = relative_pattern_support if relative_pattern_support
9
10
 
10
11
  @attributes.freeze
11
12
  end
@@ -20,6 +21,15 @@ module LanguageServer
20
21
  attributes.fetch(:dynamicRegistration)
21
22
  end
22
23
 
24
+ #
25
+ # Whether the client has support for relative patterns
26
+ # or not.
27
+ #
28
+ # @return [boolean]
29
+ def relative_pattern_support
30
+ attributes.fetch(:relativePatternSupport)
31
+ end
32
+
23
33
  attr_reader :attributes
24
34
 
25
35
  def to_hash
@@ -0,0 +1,46 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # The params sent in a close notebook document notification.
6
+ #
7
+ class DidCloseNotebookDocumentParams
8
+ def initialize(notebook_document:, cell_text_documents:)
9
+ @attributes = {}
10
+
11
+ @attributes[:notebookDocument] = notebook_document
12
+ @attributes[:cellTextDocuments] = cell_text_documents
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # The notebook document that got closed.
19
+ #
20
+ # @return [NotebookDocumentIdentifier]
21
+ def notebook_document
22
+ attributes.fetch(:notebookDocument)
23
+ end
24
+
25
+ #
26
+ # The text documents that represent the content
27
+ # of a notebook cell that got closed.
28
+ #
29
+ # @return [TextDocumentIdentifier[]]
30
+ def cell_text_documents
31
+ attributes.fetch(:cellTextDocuments)
32
+ end
33
+
34
+ attr_reader :attributes
35
+
36
+ def to_hash
37
+ attributes
38
+ end
39
+
40
+ def to_json(*args)
41
+ to_hash.to_json(*args)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,46 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # The params sent in an open notebook document notification.
6
+ #
7
+ class DidOpenNotebookDocumentParams
8
+ def initialize(notebook_document:, cell_text_documents:)
9
+ @attributes = {}
10
+
11
+ @attributes[:notebookDocument] = notebook_document
12
+ @attributes[:cellTextDocuments] = cell_text_documents
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # The notebook document that got opened.
19
+ #
20
+ # @return [NotebookDocument]
21
+ def notebook_document
22
+ attributes.fetch(:notebookDocument)
23
+ end
24
+
25
+ #
26
+ # The text documents that represent the content
27
+ # of a notebook cell.
28
+ #
29
+ # @return [TextDocumentItem[]]
30
+ def cell_text_documents
31
+ attributes.fetch(:cellTextDocuments)
32
+ end
33
+
34
+ attr_reader :attributes
35
+
36
+ def to_hash
37
+ attributes
38
+ end
39
+
40
+ def to_json(*args)
41
+ to_hash.to_json(*args)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,36 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # The params sent in a save notebook document notification.
6
+ #
7
+ class DidSaveNotebookDocumentParams
8
+ def initialize(notebook_document:)
9
+ @attributes = {}
10
+
11
+ @attributes[:notebookDocument] = notebook_document
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # The notebook document that got saved.
18
+ #
19
+ # @return [NotebookDocumentIdentifier]
20
+ def notebook_document
21
+ attributes.fetch(:notebookDocument)
22
+ end
23
+
24
+ attr_reader :attributes
25
+
26
+ def to_hash
27
+ attributes
28
+ end
29
+
30
+ def to_json(*args)
31
+ to_hash.to_json(*args)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,73 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # Parameters of the document diagnostic request.
6
+ #
7
+ class DocumentDiagnosticParams
8
+ def initialize(work_done_token: nil, partial_result_token: nil, text_document:, identifier: nil, previous_result_id: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:workDoneToken] = work_done_token if work_done_token
12
+ @attributes[:partialResultToken] = partial_result_token if partial_result_token
13
+ @attributes[:textDocument] = text_document
14
+ @attributes[:identifier] = identifier if identifier
15
+ @attributes[:previousResultId] = previous_result_id if previous_result_id
16
+
17
+ @attributes.freeze
18
+ end
19
+
20
+ #
21
+ # An optional token that a server can use to report work done progress.
22
+ #
23
+ # @return [ProgressToken]
24
+ def work_done_token
25
+ attributes.fetch(:workDoneToken)
26
+ end
27
+
28
+ #
29
+ # An optional token that a server can use to report partial results (e.g.
30
+ # streaming) to the client.
31
+ #
32
+ # @return [ProgressToken]
33
+ def partial_result_token
34
+ attributes.fetch(:partialResultToken)
35
+ end
36
+
37
+ #
38
+ # The text document.
39
+ #
40
+ # @return [TextDocumentIdentifier]
41
+ def text_document
42
+ attributes.fetch(:textDocument)
43
+ end
44
+
45
+ #
46
+ # The additional identifier provided during registration.
47
+ #
48
+ # @return [string]
49
+ def identifier
50
+ attributes.fetch(:identifier)
51
+ end
52
+
53
+ #
54
+ # The result id of a previous response if provided.
55
+ #
56
+ # @return [string]
57
+ def previous_result_id
58
+ attributes.fetch(:previousResultId)
59
+ end
60
+
61
+ attr_reader :attributes
62
+
63
+ def to_hash
64
+ attributes
65
+ end
66
+
67
+ def to_json(*args)
68
+ to_hash.to_json(*args)
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,33 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # A partial result for a document diagnostic report.
6
+ #
7
+ class DocumentDiagnosticReportPartialResult
8
+ def initialize(related_documents:)
9
+ @attributes = {}
10
+
11
+ @attributes[:relatedDocuments] = related_documents
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ # @return [{ [uri: string]: FullDocumentDiagnosticReport | UnchangedDocumentDiagnosticReport; }]
17
+ def related_documents
18
+ attributes.fetch(:relatedDocuments)
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
@@ -50,7 +50,7 @@ module LanguageServer
50
50
  # A data entry field that is preserved on a document link between a
51
51
  # DocumentLinkRequest and a DocumentLinkResolveRequest.
52
52
  #
53
- # @return [any]
53
+ # @return [LSPAny]
54
54
  def data
55
55
  attributes.fetch(:data)
56
56
  end
@@ -12,7 +12,7 @@ module LanguageServer
12
12
  end
13
13
 
14
14
  #
15
- # A character on which formatting should be triggered, like `}`.
15
+ # A character on which formatting should be triggered, like `{`.
16
16
  #
17
17
  # @return [string]
18
18
  def first_trigger_character
@@ -14,7 +14,7 @@ module LanguageServer
14
14
  end
15
15
 
16
16
  #
17
- # The text document.
17
+ # The document to format.
18
18
  #
19
19
  # @return [TextDocumentIdentifier]
20
20
  def text_document
@@ -22,7 +22,9 @@ module LanguageServer
22
22
  end
23
23
 
24
24
  #
25
- # The position inside the text document.
25
+ # The position around which the on type formatting should happen.
26
+ # This is not necessarily the exact position where the character denoted
27
+ # by the property `ch` got typed.
26
28
  #
27
29
  # @return [Position]
28
30
  def position
@@ -30,7 +32,10 @@ module LanguageServer
30
32
  end
31
33
 
32
34
  #
33
- # The character that has been typed.
35
+ # The character that has been typed that triggered the formatting
36
+ # on type request. That is not necessarily the last character that
37
+ # got inserted into the document since the client could auto insert
38
+ # characters as well (e.g. like automatic brace completion).
34
39
  #
35
40
  # @return [string]
36
41
  def ch
@@ -38,7 +43,7 @@ module LanguageServer
38
43
  end
39
44
 
40
45
  #
41
- # The format options.
46
+ # The formatting options.
42
47
  #
43
48
  # @return [FormattingOptions]
44
49
  def options
@@ -22,7 +22,7 @@ module LanguageServer
22
22
  end
23
23
 
24
24
  #
25
- # A character on which formatting should be triggered, like `}`.
25
+ # A character on which formatting should be triggered, like `{`.
26
26
  #
27
27
  # @return [string]
28
28
  def first_trigger_character
@@ -44,7 +44,7 @@ module LanguageServer
44
44
  #
45
45
  # The kind of this symbol.
46
46
  #
47
- # @return [any]
47
+ # @return [SymbolKind]
48
48
  def kind
49
49
  attributes.fetch(:kind)
50
50
  end
@@ -26,7 +26,7 @@ module LanguageServer
26
26
  # Specific capabilities for the `SymbolKind` in the
27
27
  # `textDocument/documentSymbol` request.
28
28
  #
29
- # @return [{ valueSet?: any[]; }]
29
+ # @return [{ valueSet?: SymbolKind[]; }]
30
30
  def symbol_kind
31
31
  attributes.fetch(:symbolKind)
32
32
  end
@@ -31,7 +31,7 @@ module LanguageServer
31
31
  #
32
32
  # Arguments that the command should be invoked with.
33
33
  #
34
- # @return [any[]]
34
+ # @return [LSPAny[]]
35
35
  def arguments
36
36
  attributes.fetch(:arguments)
37
37
  end
@@ -0,0 +1,45 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class ExecutionSummary
5
+ def initialize(execution_order:, success: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:executionOrder] = execution_order
9
+ @attributes[:success] = success if success
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # A strict monotonically increasing value
16
+ # indicating the execution order of a cell
17
+ # inside a notebook.
18
+ #
19
+ # @return [number]
20
+ def execution_order
21
+ attributes.fetch(:executionOrder)
22
+ end
23
+
24
+ #
25
+ # Whether the execution was successful or
26
+ # not if known by the client.
27
+ #
28
+ # @return [boolean]
29
+ def success
30
+ attributes.fetch(:success)
31
+ end
32
+
33
+ attr_reader :attributes
34
+
35
+ def to_hash
36
+ attributes
37
+ end
38
+
39
+ def to_json(*args)
40
+ to_hash.to_json(*args)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -12,21 +12,10 @@ module LanguageServer
12
12
  end
13
13
 
14
14
  #
15
- # The glob pattern to watch.
15
+ # The glob pattern to watch. See {@link GlobPattern glob pattern}
16
+ # for more detail.
16
17
  #
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 sub patterns into an OR expression. (e.g. `**​/*.{ts,js}`
22
- # matches all TypeScript and JavaScript files)
23
- # - `[]` to declare a range of characters to match in a path segment
24
- # (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
25
- # - `[!...]` to negate a range of characters to match in a path segment
26
- # (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not
27
- # `example.0`)
28
- #
29
- # @return [string]
18
+ # @return [GlobPattern]
30
19
  def glob_pattern
31
20
  attributes.fetch(:globPattern)
32
21
  end
@@ -7,7 +7,7 @@ module LanguageServer
7
7
  # are free to ignore invalid ranges.
8
8
  #
9
9
  class FoldingRange
10
- def initialize(start_line:, start_character: nil, end_line:, end_character: nil, kind: nil)
10
+ def initialize(start_line:, start_character: nil, end_line:, end_character: nil, kind: nil, collapsed_text: nil)
11
11
  @attributes = {}
12
12
 
13
13
  @attributes[:startLine] = start_line
@@ -15,6 +15,7 @@ module LanguageServer
15
15
  @attributes[:endLine] = end_line
16
16
  @attributes[:endCharacter] = end_character if end_character
17
17
  @attributes[:kind] = kind if kind
18
+ @attributes[:collapsedText] = collapsed_text if collapsed_text
18
19
 
19
20
  @attributes.freeze
20
21
  end
@@ -68,6 +69,16 @@ module LanguageServer
68
69
  attributes.fetch(:kind)
69
70
  end
70
71
 
72
+ #
73
+ # The text that the client should show when the specified range is
74
+ # collapsed. If not defined or not supported by the client, a default
75
+ # will be chosen by the client.
76
+ #
77
+ # @return [string]
78
+ def collapsed_text
79
+ attributes.fetch(:collapsedText)
80
+ end
81
+
71
82
  attr_reader :attributes
72
83
 
73
84
  def to_hash
@@ -2,12 +2,14 @@ module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
4
  class FoldingRangeClientCapabilities
5
- def initialize(dynamic_registration: nil, range_limit: nil, line_folding_only: nil)
5
+ def initialize(dynamic_registration: nil, range_limit: nil, line_folding_only: nil, folding_range_kind: nil, folding_range: nil)
6
6
  @attributes = {}
7
7
 
8
8
  @attributes[:dynamicRegistration] = dynamic_registration if dynamic_registration
9
9
  @attributes[:rangeLimit] = range_limit if range_limit
10
10
  @attributes[:lineFoldingOnly] = line_folding_only if line_folding_only
11
+ @attributes[:foldingRangeKind] = folding_range_kind if folding_range_kind
12
+ @attributes[:foldingRange] = folding_range if folding_range
11
13
 
12
14
  @attributes.freeze
13
15
  end
@@ -43,6 +45,22 @@ module LanguageServer
43
45
  attributes.fetch(:lineFoldingOnly)
44
46
  end
45
47
 
48
+ #
49
+ # Specific options for the folding range kind.
50
+ #
51
+ # @return [{ valueSet?: string[]; }]
52
+ def folding_range_kind
53
+ attributes.fetch(:foldingRangeKind)
54
+ end
55
+
56
+ #
57
+ # Specific options for the folding range.
58
+ #
59
+ # @return [{ collapsedText?: boolean; }]
60
+ def folding_range
61
+ attributes.fetch(:foldingRange)
62
+ end
63
+
46
64
  attr_reader :attributes
47
65
 
48
66
  def to_hash
@@ -0,0 +1,56 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ #
5
+ # A diagnostic report with a full set of problems.
6
+ #
7
+ class FullDocumentDiagnosticReport
8
+ def initialize(kind:, result_id: nil, items:)
9
+ @attributes = {}
10
+
11
+ @attributes[:kind] = kind
12
+ @attributes[:resultId] = result_id if result_id
13
+ @attributes[:items] = items
14
+
15
+ @attributes.freeze
16
+ end
17
+
18
+ #
19
+ # A full document diagnostic report.
20
+ #
21
+ # @return [any]
22
+ def kind
23
+ attributes.fetch(:kind)
24
+ end
25
+
26
+ #
27
+ # An optional result id. If provided it will
28
+ # be sent on the next diagnostic request for the
29
+ # same document.
30
+ #
31
+ # @return [string]
32
+ def result_id
33
+ attributes.fetch(:resultId)
34
+ end
35
+
36
+ #
37
+ # The actual items.
38
+ #
39
+ # @return [Diagnostic[]]
40
+ def items
41
+ attributes.fetch(:items)
42
+ end
43
+
44
+ attr_reader :attributes
45
+
46
+ def to_hash
47
+ attributes
48
+ end
49
+
50
+ def to_json(*args)
51
+ to_hash.to_json(*args)
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -20,7 +20,7 @@ module LanguageServer
20
20
  end
21
21
 
22
22
  #
23
- # Client supports the following content formats if the content
23
+ # Client supports the follow content formats if the content
24
24
  # property refers to a `literal of type MarkupContent`.
25
25
  # The order describes the preferred format of the client.
26
26
  #
@@ -0,0 +1,30 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interface
4
+ class HoverResult
5
+ def initialize(value:)
6
+ @attributes = {}
7
+
8
+ @attributes[:value] = value
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ # @return [string]
14
+ def value
15
+ attributes.fetch(:value)
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
@@ -1,9 +1,6 @@
1
1
  module LanguageServer
2
2
  module Protocol
3
3
  module Interface
4
- #
5
- # Known error codes for an `InitializeError`;
6
- #
7
4
  class InitializeError
8
5
  def initialize(retry:)
9
6
  @attributes = {}
@@ -81,7 +81,7 @@ module LanguageServer
81
81
  #
82
82
  # User provided initialization options.
83
83
  #
84
- # @return [any]
84
+ # @return [LSPAny]
85
85
  def initialization_options
86
86
  attributes.fetch(:initializationOptions)
87
87
  end