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,41 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Format document on type options
6
+ #
7
+ class DocumentOnTypeFormattingOptions
8
+ def initialize(first_trigger_character:, more_trigger_character: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:firstTriggerCharacter] = first_trigger_character
12
+ @attributes[:moreTriggerCharacter] = more_trigger_character if more_trigger_character
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # A character on which formatting should be triggered, like `}`.
19
+ #
20
+ # @return [string]
21
+ def first_trigger_character
22
+ attributes.fetch(:firstTriggerCharacter)
23
+ end
24
+
25
+ #
26
+ # More trigger characters.
27
+ #
28
+ # @return [string[]]
29
+ def more_trigger_character
30
+ attributes.fetch(:moreTriggerCharacter)
31
+ end
32
+
33
+ attr_reader :attributes
34
+
35
+ def to_json(*args)
36
+ attributes.to_json(*args)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,56 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class DocumentOnTypeFormattingParams
5
+ def initialize(text_document:, position:, ch:, options:)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+ @attributes[:position] = position
10
+ @attributes[:ch] = ch
11
+ @attributes[:options] = options
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # The document to format.
18
+ #
19
+ # @return [TextDocumentIdentifier]
20
+ def text_document
21
+ attributes.fetch(:textDocument)
22
+ end
23
+
24
+ #
25
+ # The position at which this request was sent.
26
+ #
27
+ # @return [Position]
28
+ def position
29
+ attributes.fetch(:position)
30
+ end
31
+
32
+ #
33
+ # The character that has been typed.
34
+ #
35
+ # @return [string]
36
+ def ch
37
+ attributes.fetch(:ch)
38
+ end
39
+
40
+ #
41
+ # The format options.
42
+ #
43
+ # @return [FormattingOptions]
44
+ def options
45
+ attributes.fetch(:options)
46
+ end
47
+
48
+ attr_reader :attributes
49
+
50
+ def to_json(*args)
51
+ attributes.to_json(*args)
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,38 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class DocumentOnTypeFormattingRegistrationOptions
5
+ def initialize(first_trigger_character:, more_trigger_character: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:firstTriggerCharacter] = first_trigger_character
9
+ @attributes[:moreTriggerCharacter] = more_trigger_character if more_trigger_character
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # A character on which formatting should be triggered, like `}`.
16
+ #
17
+ # @return [string]
18
+ def first_trigger_character
19
+ attributes.fetch(:firstTriggerCharacter)
20
+ end
21
+
22
+ #
23
+ # More trigger characters.
24
+ #
25
+ # @return [string[]]
26
+ def more_trigger_character
27
+ attributes.fetch(:moreTriggerCharacter)
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,47 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class DocumentRangeFormattingParams
5
+ def initialize(text_document:, range:, options:)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+ @attributes[:range] = range
10
+ @attributes[:options] = options
11
+
12
+ @attributes.freeze
13
+ end
14
+
15
+ #
16
+ # The document to format.
17
+ #
18
+ # @return [TextDocumentIdentifier]
19
+ def text_document
20
+ attributes.fetch(:textDocument)
21
+ end
22
+
23
+ #
24
+ # The range to format
25
+ #
26
+ # @return [Range]
27
+ def range
28
+ attributes.fetch(:range)
29
+ end
30
+
31
+ #
32
+ # The format options
33
+ #
34
+ # @return [FormattingOptions]
35
+ def options
36
+ attributes.fetch(:options)
37
+ end
38
+
39
+ attr_reader :attributes
40
+
41
+ def to_json(*args)
42
+ attributes.to_json(*args)
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,29 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class DocumentSymbolParams
5
+ def initialize(text_document:)
6
+ @attributes = {}
7
+
8
+ @attributes[:textDocument] = text_document
9
+
10
+ @attributes.freeze
11
+ end
12
+
13
+ #
14
+ # The text document.
15
+ #
16
+ # @return [TextDocumentIdentifier]
17
+ def text_document
18
+ attributes.fetch(:textDocument)
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,32 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Execute command options.
6
+ #
7
+ class ExecuteCommandOptions
8
+ def initialize(commands:)
9
+ @attributes = {}
10
+
11
+ @attributes[:commands] = commands
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # The commands to be executed on the server
18
+ #
19
+ # @return [string[]]
20
+ def commands
21
+ attributes.fetch(:commands)
22
+ end
23
+
24
+ attr_reader :attributes
25
+
26
+ def to_json(*args)
27
+ attributes.to_json(*args)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,38 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ class ExecuteCommandParams
5
+ def initialize(command:, arguments: nil)
6
+ @attributes = {}
7
+
8
+ @attributes[:command] = command
9
+ @attributes[:arguments] = arguments if arguments
10
+
11
+ @attributes.freeze
12
+ end
13
+
14
+ #
15
+ # The identifier of the actual command handler.
16
+ #
17
+ # @return [string]
18
+ def command
19
+ attributes.fetch(:command)
20
+ end
21
+
22
+ #
23
+ # Arguments that the command should be invoked with.
24
+ #
25
+ # @return [any[]]
26
+ def arguments
27
+ attributes.fetch(:arguments)
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,32 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Execute command registration options.
6
+ #
7
+ class ExecuteCommandRegistrationOptions
8
+ def initialize(commands:)
9
+ @attributes = {}
10
+
11
+ @attributes[:commands] = commands
12
+
13
+ @attributes.freeze
14
+ end
15
+
16
+ #
17
+ # The commands to be executed on the server
18
+ #
19
+ # @return [string[]]
20
+ def commands
21
+ attributes.fetch(:commands)
22
+ end
23
+
24
+ attr_reader :attributes
25
+
26
+ def to_json(*args)
27
+ attributes.to_json(*args)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,41 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # An event describing a file change.
6
+ #
7
+ class FileEvent
8
+ def initialize(uri:, type:)
9
+ @attributes = {}
10
+
11
+ @attributes[:uri] = uri
12
+ @attributes[:type] = type
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # The file's URI.
19
+ #
20
+ # @return [string]
21
+ def uri
22
+ attributes.fetch(:uri)
23
+ end
24
+
25
+ #
26
+ # The change type.
27
+ #
28
+ # @return [number]
29
+ def type
30
+ attributes.fetch(:type)
31
+ end
32
+
33
+ attr_reader :attributes
34
+
35
+ def to_json(*args)
36
+ attributes.to_json(*args)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,41 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # Value-object describing what options formatting should use.
6
+ #
7
+ class FormattingOptions
8
+ def initialize(tab_size:, insert_spaces:)
9
+ @attributes = {}
10
+
11
+ @attributes[:tabSize] = tab_size
12
+ @attributes[:insertSpaces] = insert_spaces
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # Size of a tab in spaces.
19
+ #
20
+ # @return [number]
21
+ def tab_size
22
+ attributes.fetch(:tabSize)
23
+ end
24
+
25
+ #
26
+ # Prefer spaces over tabs.
27
+ #
28
+ # @return [boolean]
29
+ def insert_spaces
30
+ attributes.fetch(:insertSpaces)
31
+ end
32
+
33
+ attr_reader :attributes
34
+
35
+ def to_json(*args)
36
+ attributes.to_json(*args)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,42 @@
1
+ module LanguageServer
2
+ module Protocol
3
+ module Interfaces
4
+ #
5
+ # The result of a hover request.
6
+ #
7
+ class Hover
8
+ def initialize(contents:, range: nil)
9
+ @attributes = {}
10
+
11
+ @attributes[:contents] = contents
12
+ @attributes[:range] = range if range
13
+
14
+ @attributes.freeze
15
+ end
16
+
17
+ #
18
+ # The hover's content
19
+ #
20
+ # @return [string | { language: string; value: string; } | MarkedString[]]
21
+ def contents
22
+ attributes.fetch(:contents)
23
+ end
24
+
25
+ #
26
+ # An optional range is a range inside a text document
27
+ # that is used to visualize a hover, e.g. by changing the background color.
28
+ #
29
+ # @return [Range]
30
+ def range
31
+ attributes.fetch(:range)
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