language_server-protocol 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +5 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Dockerfile-node.development +6 -0
  6. data/Dockerfile.development +14 -0
  7. data/Gemfile +6 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +43 -0
  10. data/Rakefile +10 -0
  11. data/bin/console +14 -0
  12. data/bin/generate_files +5 -0
  13. data/bin/setup +8 -0
  14. data/language_server-protocol.gemspec +27 -0
  15. data/lib/language_server/protocol/constants/completion_item_kind.rb +29 -0
  16. data/lib/language_server/protocol/constants/diagnostic_severity.rb +24 -0
  17. data/lib/language_server/protocol/constants/document_highlight_kind.rb +23 -0
  18. data/lib/language_server/protocol/constants/error_codes.rb +18 -0
  19. data/lib/language_server/protocol/constants/file_change_type.rb +23 -0
  20. data/lib/language_server/protocol/constants/initialize_error.rb +15 -0
  21. data/lib/language_server/protocol/constants/insert_text_format.rb +27 -0
  22. data/lib/language_server/protocol/constants/message_type.rb +24 -0
  23. data/lib/language_server/protocol/constants/symbol_kind.rb +29 -0
  24. data/lib/language_server/protocol/constants/text_document_save_reason.rb +24 -0
  25. data/lib/language_server/protocol/constants/text_document_sync_kind.rb +26 -0
  26. data/lib/language_server/protocol/constants.rb +11 -0
  27. data/lib/language_server/protocol/interfaces/apply_workspace_edit_params.rb +29 -0
  28. data/lib/language_server/protocol/interfaces/apply_workspace_edit_response.rb +29 -0
  29. data/lib/language_server/protocol/interfaces/cancel_params.rb +29 -0
  30. data/lib/language_server/protocol/interfaces/client_capabilities.rb +47 -0
  31. data/lib/language_server/protocol/interfaces/code_action_context.rb +33 -0
  32. data/lib/language_server/protocol/interfaces/code_action_params.rb +50 -0
  33. data/lib/language_server/protocol/interfaces/code_lens.rb +55 -0
  34. data/lib/language_server/protocol/interfaces/code_lens_options.rb +32 -0
  35. data/lib/language_server/protocol/interfaces/code_lens_params.rb +29 -0
  36. data/lib/language_server/protocol/interfaces/code_lens_registration_options.rb +29 -0
  37. data/lib/language_server/protocol/interfaces/command.rb +48 -0
  38. data/lib/language_server/protocol/interfaces/completion_item.rb +145 -0
  39. data/lib/language_server/protocol/interfaces/completion_list.rb +43 -0
  40. data/lib/language_server/protocol/interfaces/completion_options.rb +42 -0
  41. data/lib/language_server/protocol/interfaces/completion_registration_options.rb +39 -0
  42. data/lib/language_server/protocol/interfaces/diagnostic.rb +67 -0
  43. data/lib/language_server/protocol/interfaces/did_change_configuration_params.rb +29 -0
  44. data/lib/language_server/protocol/interfaces/did_change_text_document_params.rb +40 -0
  45. data/lib/language_server/protocol/interfaces/did_change_watched_files_params.rb +29 -0
  46. data/lib/language_server/protocol/interfaces/did_close_text_document_params.rb +29 -0
  47. data/lib/language_server/protocol/interfaces/did_open_text_document_params.rb +29 -0
  48. data/lib/language_server/protocol/interfaces/did_save_text_document_params.rb +39 -0
  49. data/lib/language_server/protocol/interfaces/document_filter.rb +47 -0
  50. data/lib/language_server/protocol/interfaces/document_formatting_params.rb +38 -0
  51. data/lib/language_server/protocol/interfaces/document_highlight.rb +43 -0
  52. data/lib/language_server/protocol/interfaces/document_link.rb +42 -0
  53. data/lib/language_server/protocol/interfaces/document_link_options.rb +32 -0
  54. data/lib/language_server/protocol/interfaces/document_link_params.rb +29 -0
  55. data/lib/language_server/protocol/interfaces/document_link_registration_options.rb +29 -0
  56. data/lib/language_server/protocol/interfaces/document_on_type_formatting_options.rb +41 -0
  57. data/lib/language_server/protocol/interfaces/document_on_type_formatting_params.rb +56 -0
  58. data/lib/language_server/protocol/interfaces/document_on_type_formatting_registration_options.rb +38 -0
  59. data/lib/language_server/protocol/interfaces/document_range_formatting_params.rb +47 -0
  60. data/lib/language_server/protocol/interfaces/document_symbol_params.rb +29 -0
  61. data/lib/language_server/protocol/interfaces/execute_command_options.rb +32 -0
  62. data/lib/language_server/protocol/interfaces/execute_command_params.rb +38 -0
  63. data/lib/language_server/protocol/interfaces/execute_command_registration_options.rb +32 -0
  64. data/lib/language_server/protocol/interfaces/file_event.rb +41 -0
  65. data/lib/language_server/protocol/interfaces/formatting_options.rb +41 -0
  66. data/lib/language_server/protocol/interfaces/hover.rb +42 -0
  67. data/lib/language_server/protocol/interfaces/initialize_error.rb +35 -0
  68. data/lib/language_server/protocol/interfaces/initialize_params.rb +79 -0
  69. data/lib/language_server/protocol/interfaces/initialize_result.rb +29 -0
  70. data/lib/language_server/protocol/interfaces/location.rb +32 -0
  71. data/lib/language_server/protocol/interfaces/log_message_params.rb +38 -0
  72. data/lib/language_server/protocol/interfaces/message.rb +26 -0
  73. data/lib/language_server/protocol/interfaces/message_action_item.rb +29 -0
  74. data/lib/language_server/protocol/interfaces/notification_message.rb +38 -0
  75. data/lib/language_server/protocol/interfaces/parameter_information.rb +44 -0
  76. data/lib/language_server/protocol/interfaces/position.rb +38 -0
  77. data/lib/language_server/protocol/interfaces/publish_diagnostics_params.rb +38 -0
  78. data/lib/language_server/protocol/interfaces/range.rb +38 -0
  79. data/lib/language_server/protocol/interfaces/reference_context.rb +29 -0
  80. data/lib/language_server/protocol/interfaces/reference_params.rb +26 -0
  81. data/lib/language_server/protocol/interfaces/registration.rb +51 -0
  82. data/lib/language_server/protocol/interfaces/registration_params.rb +26 -0
  83. data/lib/language_server/protocol/interfaces/rename_params.rb +49 -0
  84. data/lib/language_server/protocol/interfaces/request_message.rb +47 -0
  85. data/lib/language_server/protocol/interfaces/response_error.rb +48 -0
  86. data/lib/language_server/protocol/interfaces/response_message.rb +48 -0
  87. data/lib/language_server/protocol/interfaces/save_options.rb +32 -0
  88. data/lib/language_server/protocol/interfaces/server_capabilities.rb +183 -0
  89. data/lib/language_server/protocol/interfaces/show_message_params.rb +38 -0
  90. data/lib/language_server/protocol/interfaces/show_message_request_params.rb +47 -0
  91. data/lib/language_server/protocol/interfaces/signature_help.rb +64 -0
  92. data/lib/language_server/protocol/interfaces/signature_help_options.rb +33 -0
  93. data/lib/language_server/protocol/interfaces/signature_help_registration_options.rb +30 -0
  94. data/lib/language_server/protocol/interfaces/signature_information.rb +54 -0
  95. data/lib/language_server/protocol/interfaces/symbol_information.rb +60 -0
  96. data/lib/language_server/protocol/interfaces/text_document_change_registration_options.rb +33 -0
  97. data/lib/language_server/protocol/interfaces/text_document_client_capabilities.rb +155 -0
  98. data/lib/language_server/protocol/interfaces/text_document_content_change_event.rb +51 -0
  99. data/lib/language_server/protocol/interfaces/text_document_edit.rb +38 -0
  100. data/lib/language_server/protocol/interfaces/text_document_identifier.rb +29 -0
  101. data/lib/language_server/protocol/interfaces/text_document_item.rb +57 -0
  102. data/lib/language_server/protocol/interfaces/text_document_position_params.rb +38 -0
  103. data/lib/language_server/protocol/interfaces/text_document_registration_options.rb +30 -0
  104. data/lib/language_server/protocol/interfaces/text_document_save_registration_options.rb +29 -0
  105. data/lib/language_server/protocol/interfaces/text_document_sync_options.rb +66 -0
  106. data/lib/language_server/protocol/interfaces/text_edit.rb +40 -0
  107. data/lib/language_server/protocol/interfaces/unregistration.rb +42 -0
  108. data/lib/language_server/protocol/interfaces/unregistration_params.rb +26 -0
  109. data/lib/language_server/protocol/interfaces/versioned_text_document_identifier.rb +29 -0
  110. data/lib/language_server/protocol/interfaces/will_save_text_document_params.rb +41 -0
  111. data/lib/language_server/protocol/interfaces/workspace_client_capabilites.rb +78 -0
  112. data/lib/language_server/protocol/interfaces/workspace_edit.rb +40 -0
  113. data/lib/language_server/protocol/interfaces/workspace_symbol_params.rb +32 -0
  114. data/lib/language_server/protocol/interfaces.rb +87 -0
  115. data/lib/language_server/protocol/transport/stdio/reader.rb +39 -0
  116. data/lib/language_server/protocol/transport/stdio/writer.rb +38 -0
  117. data/lib/language_server/protocol/transport/stdio.rb +2 -0
  118. data/lib/language_server/protocol/version.rb +5 -0
  119. data/lib/language_server/protocol.rb +7 -0
  120. data/package.json +10 -0
  121. data/scripts/generateFiles.ts +224 -0
  122. data/yarn.lock +293 -0
  123. metadata +207 -0
@@ -0,0 +1,51 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # An event describing a change to a text document. If range and rangeLength are omitted
6
+ # the new text is considered to be the full content of the document.
7
+ #
8
+ class TextDocumentContentChangeEvent
9
+ def initialize(range: nil, range_length: nil, text:)
10
+ @attributes = {}
11
+
12
+ @attributes[:range] = range if range
13
+ @attributes[:rangeLength] = range_length if range_length
14
+ @attributes[:text] = text
15
+
16
+ @attributes.freeze
17
+ end
18
+
19
+ #
20
+ # The range of the document that changed.
21
+ #
22
+ # @return [Range]
23
+ def range
24
+ attributes.fetch(:range)
25
+ end
26
+
27
+ #
28
+ # The length of the range that got replaced.
29
+ #
30
+ # @return [number]
31
+ def range_length
32
+ attributes.fetch(:rangeLength)
33
+ end
34
+
35
+ #
36
+ # The new text of the range/document.
37
+ #
38
+ # @return [string]
39
+ def text
40
+ attributes.fetch(:text)
41
+ end
42
+
43
+ attr_reader :attributes
44
+
45
+ def to_json(*args)
46
+ attributes.to_json(*args)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,38 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class TextDocumentEdit
5
+ def initialize(text_document:, edits:)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+ @attributes[:edits] = edits
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The text document to change.
16
+ #
17
+ # @return [VersionedTextDocumentIdentifier]
18
+ def text_document
19
+ attributes.fetch(:textDocument)
20
+ end
21
+
22
+ #
23
+ # The edits to be applied.
24
+ #
25
+ # @return [TextEdit[]]
26
+ def edits
27
+ attributes.fetch(:edits)
28
+ end
29
+
30
+ attr_reader :attributes
31
+
32
+ def to_json(*args)
33
+ attributes.to_json(*args)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,29 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class TextDocumentIdentifier
5
+ def initialize(uri:)
6
+ @attributes = {}
7
+
8
+ @attributes[:uri] = uri
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # The text document's URI.
15
+ #
16
+ # @return [string]
17
+ def uri
18
+ attributes.fetch(:uri)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_json(*args)
24
+ attributes.to_json(*args)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,57 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class TextDocumentItem
5
+ def initialize(uri:, language_id:, version:, text:)
6
+ @attributes = {}
7
+
8
+ @attributes[:uri] = uri
9
+ @attributes[:languageId] = language_id
10
+ @attributes[:version] = version
11
+ @attributes[:text] = text
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # The text document's URI.
18
+ #
19
+ # @return [string]
20
+ def uri
21
+ attributes.fetch(:uri)
22
+ end
23
+
24
+ #
25
+ # The text document's language identifier.
26
+ #
27
+ # @return [string]
28
+ def language_id
29
+ attributes.fetch(:languageId)
30
+ end
31
+
32
+ #
33
+ # The version number of this document (it will strictly increase after each
34
+ # change, including undo/redo).
35
+ #
36
+ # @return [number]
37
+ def version
38
+ attributes.fetch(:version)
39
+ end
40
+
41
+ #
42
+ # The content of the opened text document.
43
+ #
44
+ # @return [string]
45
+ def text
46
+ attributes.fetch(:text)
47
+ end
48
+
49
+ attr_reader :attributes
50
+
51
+ def to_json(*args)
52
+ attributes.to_json(*args)
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,38 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class TextDocumentPositionParams
5
+ def initialize(text_document:, position:)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+ @attributes[:position] = position
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The text document.
16
+ #
17
+ # @return [TextDocumentIdentifier]
18
+ def text_document
19
+ attributes.fetch(:textDocument)
20
+ end
21
+
22
+ #
23
+ # The position inside the text document.
24
+ #
25
+ # @return [Position]
26
+ def position
27
+ attributes.fetch(:position)
28
+ end
29
+
30
+ attr_reader :attributes
31
+
32
+ def to_json(*args)
33
+ attributes.to_json(*args)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,30 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class TextDocumentRegistrationOptions
5
+ def initialize(document_selector:)
6
+ @attributes = {}
7
+
8
+ @attributes[:documentSelector] = document_selector
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # A document selector to identify the scope of the registration. If set to null
15
+ # the document selector provided on the client side will be used.
16
+ #
17
+ # @return [DocumentFilter[]]
18
+ def document_selector
19
+ attributes.fetch(:documentSelector)
20
+ end
21
+
22
+ attr_reader :attributes
23
+
24
+ def to_json(*args)
25
+ attributes.to_json(*args)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,29 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class TextDocumentSaveRegistrationOptions
5
+ def initialize(include_text: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:includeText] = include_text if include_text
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # The client is supposed to include the content on save.
15
+ #
16
+ # @return [boolean]
17
+ def include_text
18
+ attributes.fetch(:includeText)
19
+ end
20
+
21
+ attr_reader :attributes
22
+
23
+ def to_json(*args)
24
+ attributes.to_json(*args)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,66 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class TextDocumentSyncOptions
5
+ def initialize(open_close: nil, change: nil, will_save: nil, will_save_wait_until: nil, save: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:openClose] = open_close if open_close
9
+ @attributes[:change] = change if change
10
+ @attributes[:willSave] = will_save if will_save
11
+ @attributes[:willSaveWaitUntil] = will_save_wait_until if will_save_wait_until
12
+ @attributes[:save] = save if save
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # Open and close notifications are sent to the server.
19
+ #
20
+ # @return [boolean]
21
+ def open_close
22
+ attributes.fetch(:openClose)
23
+ end
24
+
25
+ #
26
+ # Change notificatins are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full
27
+ # and TextDocumentSyncKindIncremental.
28
+ #
29
+ # @return [number]
30
+ def change
31
+ attributes.fetch(:change)
32
+ end
33
+
34
+ #
35
+ # Will save notifications are sent to the server.
36
+ #
37
+ # @return [boolean]
38
+ def will_save
39
+ attributes.fetch(:willSave)
40
+ end
41
+
42
+ #
43
+ # Will save wait until requests are sent to the server.
44
+ #
45
+ # @return [boolean]
46
+ def will_save_wait_until
47
+ attributes.fetch(:willSaveWaitUntil)
48
+ end
49
+
50
+ #
51
+ # Save notifications are sent to the server.
52
+ #
53
+ # @return [SaveOptions]
54
+ def save
55
+ attributes.fetch(:save)
56
+ end
57
+
58
+ attr_reader :attributes
59
+
60
+ def to_json(*args)
61
+ attributes.to_json(*args)
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,40 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class TextEdit
5
+ def initialize(range:, new_text:)
6
+ @attributes = {}
7
+
8
+ @attributes[:range] = range
9
+ @attributes[:newText] = new_text
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The range of the text document to be manipulated. To insert
16
+ # text into a document create a range where start === end.
17
+ #
18
+ # @return [Range]
19
+ def range
20
+ attributes.fetch(:range)
21
+ end
22
+
23
+ #
24
+ # The string to be inserted. For delete operations use an
25
+ # empty string.
26
+ #
27
+ # @return [string]
28
+ def new_text
29
+ attributes.fetch(:newText)
30
+ end
31
+
32
+ attr_reader :attributes
33
+
34
+ def to_json(*args)
35
+ attributes.to_json(*args)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,42 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # General parameters to unregister a capability.
6
+ #
7
+ class Unregistration
8
+ def initialize(id:, method:)
9
+ @attributes = {}
10
+
11
+ @attributes[:id] = id
12
+ @attributes[:method] = method
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # The id used to unregister the request or notification. Usually an id
19
+ # provided during the register request.
20
+ #
21
+ # @return [string]
22
+ def id
23
+ attributes.fetch(:id)
24
+ end
25
+
26
+ #
27
+ # The method / capability to unregister for.
28
+ #
29
+ # @return [string]
30
+ def method
31
+ attributes.fetch(:method)
32
+ end
33
+
34
+ attr_reader :attributes
35
+
36
+ def to_json(*args)
37
+ attributes.to_json(*args)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,26 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class UnregistrationParams
5
+ def initialize(unregisterations:)
6
+ @attributes = {}
7
+
8
+ @attributes[:unregisterations] = unregisterations
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ # @return [Unregistration[]]
14
+ def unregisterations
15
+ attributes.fetch(:unregisterations)
16
+ end
17
+
18
+ attr_reader :attributes
19
+
20
+ def to_json(*args)
21
+ attributes.to_json(*args)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end