puppet-editor-services 2.0.4

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 (109) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +510 -0
  3. data/CODEOWNERS +2 -0
  4. data/CODE_OF_CONDUCT.md +46 -0
  5. data/CONTRIBUTING.md +54 -0
  6. data/Gemfile +53 -0
  7. data/LICENSE +201 -0
  8. data/README.md +308 -0
  9. data/Rakefile +185 -0
  10. data/bin/puppet-debugserver +8 -0
  11. data/bin/puppet-languageserver +7 -0
  12. data/bin/puppet-languageserver-sidecar +7 -0
  13. data/lib/dsp/dsp.rb +7 -0
  14. data/lib/dsp/dsp_base.rb +62 -0
  15. data/lib/dsp/dsp_protocol.rb +4619 -0
  16. data/lib/lsp/lsp.rb +10 -0
  17. data/lib/lsp/lsp_base.rb +63 -0
  18. data/lib/lsp/lsp_custom.rb +170 -0
  19. data/lib/lsp/lsp_enums.rb +143 -0
  20. data/lib/lsp/lsp_protocol.rb +2785 -0
  21. data/lib/lsp/lsp_protocol_callhierarchy.proposed.rb +239 -0
  22. data/lib/lsp/lsp_protocol_colorprovider.rb +100 -0
  23. data/lib/lsp/lsp_protocol_configuration.rb +82 -0
  24. data/lib/lsp/lsp_protocol_declaration.rb +73 -0
  25. data/lib/lsp/lsp_protocol_foldingrange.rb +129 -0
  26. data/lib/lsp/lsp_protocol_implementation.rb +75 -0
  27. data/lib/lsp/lsp_protocol_progress.rb +200 -0
  28. data/lib/lsp/lsp_protocol_selectionrange.rb +79 -0
  29. data/lib/lsp/lsp_protocol_sematictokens.proposed.rb +340 -0
  30. data/lib/lsp/lsp_protocol_typedefinition.rb +75 -0
  31. data/lib/lsp/lsp_protocol_workspacefolders.rb +174 -0
  32. data/lib/lsp/lsp_types.rb +1534 -0
  33. data/lib/puppet-debugserver/debug_session/break_points.rb +137 -0
  34. data/lib/puppet-debugserver/debug_session/flow_control.rb +161 -0
  35. data/lib/puppet-debugserver/debug_session/hook_handlers.rb +295 -0
  36. data/lib/puppet-debugserver/debug_session/puppet_session_run_mode.rb +66 -0
  37. data/lib/puppet-debugserver/debug_session/puppet_session_state.rb +122 -0
  38. data/lib/puppet-debugserver/hooks.rb +132 -0
  39. data/lib/puppet-debugserver/message_handler.rb +277 -0
  40. data/lib/puppet-debugserver/puppet_debug_session.rb +541 -0
  41. data/lib/puppet-debugserver/puppet_monkey_patches.rb +118 -0
  42. data/lib/puppet-languageserver/client_session_state.rb +119 -0
  43. data/lib/puppet-languageserver/crash_dump.rb +50 -0
  44. data/lib/puppet-languageserver/epp/validation_provider.rb +34 -0
  45. data/lib/puppet-languageserver/facter_helper.rb +25 -0
  46. data/lib/puppet-languageserver/global_queues/sidecar_queue.rb +205 -0
  47. data/lib/puppet-languageserver/global_queues/single_instance_queue.rb +126 -0
  48. data/lib/puppet-languageserver/global_queues/validation_queue.rb +102 -0
  49. data/lib/puppet-languageserver/global_queues.rb +16 -0
  50. data/lib/puppet-languageserver/manifest/completion_provider.rb +331 -0
  51. data/lib/puppet-languageserver/manifest/definition_provider.rb +99 -0
  52. data/lib/puppet-languageserver/manifest/document_symbol_provider.rb +228 -0
  53. data/lib/puppet-languageserver/manifest/folding_provider.rb +226 -0
  54. data/lib/puppet-languageserver/manifest/format_on_type_provider.rb +143 -0
  55. data/lib/puppet-languageserver/manifest/hover_provider.rb +221 -0
  56. data/lib/puppet-languageserver/manifest/signature_provider.rb +169 -0
  57. data/lib/puppet-languageserver/manifest/validation_provider.rb +127 -0
  58. data/lib/puppet-languageserver/message_handler.rb +462 -0
  59. data/lib/puppet-languageserver/providers.rb +18 -0
  60. data/lib/puppet-languageserver/puppet_helper.rb +108 -0
  61. data/lib/puppet-languageserver/puppet_lexer_helper.rb +55 -0
  62. data/lib/puppet-languageserver/puppet_monkey_patches.rb +39 -0
  63. data/lib/puppet-languageserver/puppet_parser_helper.rb +212 -0
  64. data/lib/puppet-languageserver/puppetfile/validation_provider.rb +185 -0
  65. data/lib/puppet-languageserver/server_capabilities.rb +48 -0
  66. data/lib/puppet-languageserver/session_state/document_store.rb +272 -0
  67. data/lib/puppet-languageserver/session_state/language_client.rb +239 -0
  68. data/lib/puppet-languageserver/session_state/object_cache.rb +162 -0
  69. data/lib/puppet-languageserver/sidecar_protocol.rb +532 -0
  70. data/lib/puppet-languageserver/uri_helper.rb +46 -0
  71. data/lib/puppet-languageserver-sidecar/cache/base.rb +36 -0
  72. data/lib/puppet-languageserver-sidecar/cache/filesystem.rb +111 -0
  73. data/lib/puppet-languageserver-sidecar/cache/null.rb +27 -0
  74. data/lib/puppet-languageserver-sidecar/facter_helper.rb +41 -0
  75. data/lib/puppet-languageserver-sidecar/puppet_environment_monkey_patches.rb +52 -0
  76. data/lib/puppet-languageserver-sidecar/puppet_helper.rb +281 -0
  77. data/lib/puppet-languageserver-sidecar/puppet_modulepath_monkey_patches.rb +146 -0
  78. data/lib/puppet-languageserver-sidecar/puppet_monkey_patches.rb +9 -0
  79. data/lib/puppet-languageserver-sidecar/puppet_parser_helper.rb +77 -0
  80. data/lib/puppet-languageserver-sidecar/puppet_strings_helper.rb +399 -0
  81. data/lib/puppet-languageserver-sidecar/puppet_strings_monkey_patches.rb +16 -0
  82. data/lib/puppet-languageserver-sidecar/sidecar_protocol_extensions.rb +16 -0
  83. data/lib/puppet-languageserver-sidecar/workspace.rb +89 -0
  84. data/lib/puppet_debugserver.rb +164 -0
  85. data/lib/puppet_editor_services/connection/base.rb +62 -0
  86. data/lib/puppet_editor_services/connection/stdio.rb +25 -0
  87. data/lib/puppet_editor_services/connection/tcp.rb +34 -0
  88. data/lib/puppet_editor_services/handler/base.rb +16 -0
  89. data/lib/puppet_editor_services/handler/debug_adapter.rb +63 -0
  90. data/lib/puppet_editor_services/handler/json_rpc.rb +133 -0
  91. data/lib/puppet_editor_services/logging.rb +45 -0
  92. data/lib/puppet_editor_services/protocol/base.rb +27 -0
  93. data/lib/puppet_editor_services/protocol/debug_adapter.rb +135 -0
  94. data/lib/puppet_editor_services/protocol/debug_adapter_messages.rb +171 -0
  95. data/lib/puppet_editor_services/protocol/json_rpc.rb +241 -0
  96. data/lib/puppet_editor_services/protocol/json_rpc_messages.rb +200 -0
  97. data/lib/puppet_editor_services/server/base.rb +42 -0
  98. data/lib/puppet_editor_services/server/stdio.rb +85 -0
  99. data/lib/puppet_editor_services/server/tcp.rb +349 -0
  100. data/lib/puppet_editor_services/server.rb +15 -0
  101. data/lib/puppet_editor_services/version.rb +36 -0
  102. data/lib/puppet_editor_services.rb +8 -0
  103. data/lib/puppet_languageserver.rb +263 -0
  104. data/lib/puppet_languageserver_sidecar.rb +361 -0
  105. data/puppet-debugserver +11 -0
  106. data/puppet-editor-services.gemspec +29 -0
  107. data/puppet-languageserver +15 -0
  108. data/puppet-languageserver-sidecar +14 -0
  109. metadata +240 -0
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+ require_relative 'lib/puppet_editor_services/version'
3
+ require 'rake'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'puppet-editor-services'
7
+ s.version = PuppetEditorServices.version
8
+ s.authors = ['Puppet']
9
+ s.email = ['support@puppet.com']
10
+ s.summary = 'Puppet Language Server for editors'
11
+ s.description = <<~EOF
12
+ A ruby based implementation of a Language Server and Debug Server for the
13
+ Puppet Language. Integrate this into your editor to benefit from full Puppet
14
+ Language support, such as syntax hightlighting, linting, hover support and more.
15
+ EOF
16
+ s.homepage = 'https://github.com/puppetlabs/puppet-editor-services'
17
+ s.required_ruby_version = '>= 2.7.0'
18
+ s.executables = %w[ puppet-debugserver puppet-languageserver puppet-languageserver-sidecar ]
19
+ s.files = FileList['lib/**/*.rb',
20
+ 'bin/*',
21
+ '[A-Z]*'].to_a
22
+ s.license = 'Apache-2.0'
23
+ s.add_runtime_dependency 'puppet-lint'
24
+ s.add_runtime_dependency 'hiera-eyaml'
25
+ s.add_runtime_dependency 'puppetfile-resolver'
26
+ s.add_runtime_dependency 'molinillo'
27
+ s.add_runtime_dependency 'puppet-strings'
28
+ s.add_runtime_dependency 'yard'
29
+ end
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ # Add the language server into the load path
5
+ $LOAD_PATH.unshift(File.join(__dir__, 'lib'))
6
+
7
+ # Add the vendored gems into the load path
8
+ $LOAD_PATH.unshift(File.join(__dir__, 'vendor', 'puppet-lint', 'lib'))
9
+ $LOAD_PATH.unshift(File.join(__dir__, 'vendor', 'molinillo', 'lib'))
10
+ $LOAD_PATH.unshift(File.join(__dir__, 'vendor', 'puppetfile-resolver', 'lib'))
11
+
12
+ require 'puppet_languageserver'
13
+
14
+ PuppetLanguageServer.init_puppet(PuppetLanguageServer::CommandLineParser.parse(ARGV))
15
+ PuppetLanguageServer.rpc_server(PuppetLanguageServer::CommandLineParser.parse(ARGV))
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ # Add the language server into the load path
5
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
6
+ # Add the vendored gems into the load path
7
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'vendor', 'hiera-eyaml', 'lib'))
8
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'vendor', 'yard', 'lib'))
9
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'vendor', 'puppet-strings', 'lib'))
10
+
11
+ require 'puppet_languageserver_sidecar'
12
+
13
+ PuppetLanguageServerSidecar.init_puppet_sidecar(PuppetLanguageServerSidecar::CommandLineParser.parse(ARGV))
14
+ PuppetLanguageServerSidecar.execute_and_output(PuppetLanguageServerSidecar::CommandLineParser.parse(ARGV))
metadata ADDED
@@ -0,0 +1,240 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: puppet-editor-services
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.4
5
+ platform: ruby
6
+ authors:
7
+ - Puppet
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-07-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: puppet-lint
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: hiera-eyaml
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: puppetfile-resolver
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: molinillo
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: puppet-strings
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: yard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: |
98
+ A ruby based implementation of a Language Server and Debug Server for the
99
+ Puppet Language. Integrate this into your editor to benefit from full Puppet
100
+ Language support, such as syntax hightlighting, linting, hover support and more.
101
+ email:
102
+ - support@puppet.com
103
+ executables:
104
+ - puppet-debugserver
105
+ - puppet-languageserver
106
+ - puppet-languageserver-sidecar
107
+ extensions: []
108
+ extra_rdoc_files: []
109
+ files:
110
+ - CHANGELOG.md
111
+ - CODEOWNERS
112
+ - CODE_OF_CONDUCT.md
113
+ - CONTRIBUTING.md
114
+ - Gemfile
115
+ - LICENSE
116
+ - README.md
117
+ - Rakefile
118
+ - bin/puppet-debugserver
119
+ - bin/puppet-languageserver
120
+ - bin/puppet-languageserver-sidecar
121
+ - lib/dsp/dsp.rb
122
+ - lib/dsp/dsp_base.rb
123
+ - lib/dsp/dsp_protocol.rb
124
+ - lib/lsp/lsp.rb
125
+ - lib/lsp/lsp_base.rb
126
+ - lib/lsp/lsp_custom.rb
127
+ - lib/lsp/lsp_enums.rb
128
+ - lib/lsp/lsp_protocol.rb
129
+ - lib/lsp/lsp_protocol_callhierarchy.proposed.rb
130
+ - lib/lsp/lsp_protocol_colorprovider.rb
131
+ - lib/lsp/lsp_protocol_configuration.rb
132
+ - lib/lsp/lsp_protocol_declaration.rb
133
+ - lib/lsp/lsp_protocol_foldingrange.rb
134
+ - lib/lsp/lsp_protocol_implementation.rb
135
+ - lib/lsp/lsp_protocol_progress.rb
136
+ - lib/lsp/lsp_protocol_selectionrange.rb
137
+ - lib/lsp/lsp_protocol_sematictokens.proposed.rb
138
+ - lib/lsp/lsp_protocol_typedefinition.rb
139
+ - lib/lsp/lsp_protocol_workspacefolders.rb
140
+ - lib/lsp/lsp_types.rb
141
+ - lib/puppet-debugserver/debug_session/break_points.rb
142
+ - lib/puppet-debugserver/debug_session/flow_control.rb
143
+ - lib/puppet-debugserver/debug_session/hook_handlers.rb
144
+ - lib/puppet-debugserver/debug_session/puppet_session_run_mode.rb
145
+ - lib/puppet-debugserver/debug_session/puppet_session_state.rb
146
+ - lib/puppet-debugserver/hooks.rb
147
+ - lib/puppet-debugserver/message_handler.rb
148
+ - lib/puppet-debugserver/puppet_debug_session.rb
149
+ - lib/puppet-debugserver/puppet_monkey_patches.rb
150
+ - lib/puppet-languageserver-sidecar/cache/base.rb
151
+ - lib/puppet-languageserver-sidecar/cache/filesystem.rb
152
+ - lib/puppet-languageserver-sidecar/cache/null.rb
153
+ - lib/puppet-languageserver-sidecar/facter_helper.rb
154
+ - lib/puppet-languageserver-sidecar/puppet_environment_monkey_patches.rb
155
+ - lib/puppet-languageserver-sidecar/puppet_helper.rb
156
+ - lib/puppet-languageserver-sidecar/puppet_modulepath_monkey_patches.rb
157
+ - lib/puppet-languageserver-sidecar/puppet_monkey_patches.rb
158
+ - lib/puppet-languageserver-sidecar/puppet_parser_helper.rb
159
+ - lib/puppet-languageserver-sidecar/puppet_strings_helper.rb
160
+ - lib/puppet-languageserver-sidecar/puppet_strings_monkey_patches.rb
161
+ - lib/puppet-languageserver-sidecar/sidecar_protocol_extensions.rb
162
+ - lib/puppet-languageserver-sidecar/workspace.rb
163
+ - lib/puppet-languageserver/client_session_state.rb
164
+ - lib/puppet-languageserver/crash_dump.rb
165
+ - lib/puppet-languageserver/epp/validation_provider.rb
166
+ - lib/puppet-languageserver/facter_helper.rb
167
+ - lib/puppet-languageserver/global_queues.rb
168
+ - lib/puppet-languageserver/global_queues/sidecar_queue.rb
169
+ - lib/puppet-languageserver/global_queues/single_instance_queue.rb
170
+ - lib/puppet-languageserver/global_queues/validation_queue.rb
171
+ - lib/puppet-languageserver/manifest/completion_provider.rb
172
+ - lib/puppet-languageserver/manifest/definition_provider.rb
173
+ - lib/puppet-languageserver/manifest/document_symbol_provider.rb
174
+ - lib/puppet-languageserver/manifest/folding_provider.rb
175
+ - lib/puppet-languageserver/manifest/format_on_type_provider.rb
176
+ - lib/puppet-languageserver/manifest/hover_provider.rb
177
+ - lib/puppet-languageserver/manifest/signature_provider.rb
178
+ - lib/puppet-languageserver/manifest/validation_provider.rb
179
+ - lib/puppet-languageserver/message_handler.rb
180
+ - lib/puppet-languageserver/providers.rb
181
+ - lib/puppet-languageserver/puppet_helper.rb
182
+ - lib/puppet-languageserver/puppet_lexer_helper.rb
183
+ - lib/puppet-languageserver/puppet_monkey_patches.rb
184
+ - lib/puppet-languageserver/puppet_parser_helper.rb
185
+ - lib/puppet-languageserver/puppetfile/validation_provider.rb
186
+ - lib/puppet-languageserver/server_capabilities.rb
187
+ - lib/puppet-languageserver/session_state/document_store.rb
188
+ - lib/puppet-languageserver/session_state/language_client.rb
189
+ - lib/puppet-languageserver/session_state/object_cache.rb
190
+ - lib/puppet-languageserver/sidecar_protocol.rb
191
+ - lib/puppet-languageserver/uri_helper.rb
192
+ - lib/puppet_debugserver.rb
193
+ - lib/puppet_editor_services.rb
194
+ - lib/puppet_editor_services/connection/base.rb
195
+ - lib/puppet_editor_services/connection/stdio.rb
196
+ - lib/puppet_editor_services/connection/tcp.rb
197
+ - lib/puppet_editor_services/handler/base.rb
198
+ - lib/puppet_editor_services/handler/debug_adapter.rb
199
+ - lib/puppet_editor_services/handler/json_rpc.rb
200
+ - lib/puppet_editor_services/logging.rb
201
+ - lib/puppet_editor_services/protocol/base.rb
202
+ - lib/puppet_editor_services/protocol/debug_adapter.rb
203
+ - lib/puppet_editor_services/protocol/debug_adapter_messages.rb
204
+ - lib/puppet_editor_services/protocol/json_rpc.rb
205
+ - lib/puppet_editor_services/protocol/json_rpc_messages.rb
206
+ - lib/puppet_editor_services/server.rb
207
+ - lib/puppet_editor_services/server/base.rb
208
+ - lib/puppet_editor_services/server/stdio.rb
209
+ - lib/puppet_editor_services/server/tcp.rb
210
+ - lib/puppet_editor_services/version.rb
211
+ - lib/puppet_languageserver.rb
212
+ - lib/puppet_languageserver_sidecar.rb
213
+ - puppet-debugserver
214
+ - puppet-editor-services.gemspec
215
+ - puppet-languageserver
216
+ - puppet-languageserver-sidecar
217
+ homepage: https://github.com/puppetlabs/puppet-editor-services
218
+ licenses:
219
+ - Apache-2.0
220
+ metadata: {}
221
+ post_install_message:
222
+ rdoc_options: []
223
+ require_paths:
224
+ - lib
225
+ required_ruby_version: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: 2.7.0
230
+ required_rubygems_version: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: '0'
235
+ requirements: []
236
+ rubygems_version: 3.4.10
237
+ signing_key:
238
+ specification_version: 4
239
+ summary: Puppet Language Server for editors
240
+ test_files: []