language_server-protocol 3.16.0.2 → 3.17.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 (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